equal
deleted
inserted
replaced
61 fun after_qed results = |
61 fun after_qed results = |
62 Proof.end_block #> |
62 Proof.end_block #> |
63 Seq.map (Proof.map_context (fn ctxt => |
63 Seq.map (Proof.map_context (fn ctxt => |
64 let |
64 let |
65 val ([res_types, res_params, res_prems], ctxt'') = |
65 val ([res_types, res_params, res_prems], ctxt'') = |
66 fold_burrow (Variable.import false) results ctxt'; |
66 fold_burrow (apfst snd oo Variable.import false) results ctxt'; |
67 |
67 |
68 val types'' = map (Logic.dest_type o Thm.term_of o Drule.dest_term) res_types; |
68 val types'' = map (Logic.dest_type o Thm.term_of o Drule.dest_term) res_types; |
69 val params'' = map (Thm.term_of o Drule.dest_term) res_params; |
69 val params'' = map (Thm.term_of o Drule.dest_term) res_params; |
70 val elems' = elems |> map (Element.inst_ctxt thy |
70 val elems' = elems |> map (Element.inst_ctxt thy |
71 (Symtab.make (map #1 types ~~ types''), Symtab.make (map #1 params ~~ params''))); |
71 (Symtab.make (map #1 types ~~ types''), Symtab.make (map #1 params ~~ params''))); |