src/Pure/variable.ML
changeset 70843 cc987440d776
parent 70733 ce1afe0f3071
child 71316 3fc2def62547
equal deleted inserted replaced
70842:c5caf81aa523 70843:cc987440d776
   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