src/Pure/Isar/generic_target.ML
changeset 74281 7829d6435c60
parent 74278 a123db647573
child 74282 c2ee8d993d6a
equal deleted inserted replaced
74280:7466b17b0820 74281:7829d6435c60
   304     val th = Goal.norm_result ctxt raw_th;
   304     val th = Goal.norm_result ctxt raw_th;
   305     val ((defs, asms), th') = Local_Defs.export ctxt thy_ctxt th;
   305     val ((defs, asms), th') = Local_Defs.export ctxt thy_ctxt th;
   306     val asms' = map (rewrite_rule ctxt (Drule.norm_hhf_eqs @ defs)) asms;
   306     val asms' = map (rewrite_rule ctxt (Drule.norm_hhf_eqs @ defs)) asms;
   307 
   307 
   308     (*export fixes*)
   308     (*export fixes*)
   309     val tfrees = map TFree (Thm.fold_terms {hyps = true} Term.add_tfrees th' []);
   309     val tfrees =
   310     val frees = map Free (Thm.fold_terms {hyps = true} Term.add_frees th' []);
   310       TFrees.build (Thm.fold_terms {hyps = true} TFrees.add_tfrees th')
       
   311       |> TFrees.list_set_rev |> map TFree;
       
   312     val frees =
       
   313       Frees.build (Thm.fold_terms {hyps = true} Frees.add_frees th')
       
   314       |> Frees.list_set_rev |> map Free;
   311     val (th'' :: vs) =
   315     val (th'' :: vs) =
   312       (th' :: map (Drule.mk_term o Thm.cterm_of ctxt) (map Logic.mk_type tfrees @ frees))
   316       (th' :: map (Drule.mk_term o Thm.cterm_of ctxt) (map Logic.mk_type tfrees @ frees))
   313       |> Variable.export ctxt thy_ctxt
   317       |> Variable.export ctxt thy_ctxt
   314       |> Drule.zero_var_indexes_list;
   318       |> Drule.zero_var_indexes_list;
   315 
   319