src/Tools/induct.ML
changeset 43326 47cf4bc789aa
parent 43278 1fbdcebb364b
child 43333 2bdec7f430d3
equal deleted inserted replaced
43325:4384f4ae0574 43326:47cf4bc789aa
   690             Local_Defs.add_defs [((x, NoSyn), (Thm.empty_binding, t))] ctxt
   690             Local_Defs.add_defs [((x, NoSyn), (Thm.empty_binding, t))] ctxt
   691           in ((SOME lhs, [th]), ctxt') end
   691           in ((SOME lhs, [th]), ctxt') end
   692       | add (SOME (NONE, (t as Free _, _))) ctxt = ((SOME t, []), ctxt)
   692       | add (SOME (NONE, (t as Free _, _))) ctxt = ((SOME t, []), ctxt)
   693       | add (SOME (NONE, (t, _))) ctxt =
   693       | add (SOME (NONE, (t, _))) ctxt =
   694           let
   694           let
   695             val ([s], _) = Name.variants ["x"] (Variable.names_of ctxt);
   695             val (s, _) = Name.variant "x" (Variable.names_of ctxt);
   696             val ([(lhs, (_, th))], ctxt') =
   696             val ([(lhs, (_, th))], ctxt') =
   697               Local_Defs.add_defs [((Binding.name s, NoSyn),
   697               Local_Defs.add_defs [((Binding.name s, NoSyn),
   698                 (Thm.empty_binding, t))] ctxt
   698                 (Thm.empty_binding, t))] ctxt
   699           in ((SOME lhs, [th]), ctxt') end
   699           in ((SOME lhs, [th]), ctxt') end
   700       | add NONE ctxt = ((NONE, []), ctxt);
   700       | add NONE ctxt = ((NONE, []), ctxt);