equal
deleted
inserted
replaced
263 declare_internal t #> |
263 declare_internal t #> |
264 declare_constraints t; |
264 declare_constraints t; |
265 |
265 |
266 val declare_typ = declare_term o Logic.mk_type; |
266 val declare_typ = declare_term o Logic.mk_type; |
267 |
267 |
268 val declare_prf = Proofterm.fold_proof_terms declare_internal (declare_internal o Logic.mk_type); |
268 val declare_prf = |
|
269 Proofterm.fold_proof_terms_types declare_internal (declare_internal o Logic.mk_type); |
269 |
270 |
270 val declare_thm = Thm.fold_terms declare_internal; |
271 val declare_thm = Thm.fold_terms declare_internal; |
271 |
272 |
272 |
273 |
273 (* renaming term/type frees *) |
274 (* renaming term/type frees *) |
614 val ths' = map (Thm.instantiate (instT', [])) ths; |
615 val ths' = map (Thm.instantiate (instT', [])) ths; |
615 in ((instT', ths'), ctxt') end; |
616 in ((instT', ths'), ctxt') end; |
616 |
617 |
617 fun import_prf is_open prf ctxt = |
618 fun import_prf is_open prf ctxt = |
618 let |
619 let |
619 val ts = rev (Proofterm.fold_proof_terms cons (cons o Logic.mk_type) prf []); |
620 val ts = rev (Proofterm.fold_proof_terms_types cons (cons o Logic.mk_type) prf []); |
620 val (insts, ctxt') = import_inst is_open ts ctxt; |
621 val (insts, ctxt') = import_inst is_open ts ctxt; |
621 in (Proofterm.instantiate insts prf, ctxt') end; |
622 in (Proofterm.instantiate insts prf, ctxt') end; |
622 |
623 |
623 fun import is_open ths ctxt = |
624 fun import is_open ths ctxt = |
624 let |
625 let |