equal
deleted
inserted
replaced
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 |