src/Pure/variable.ML
changeset 20797 c1f0bc7e7d80
parent 20579 4dc799edef89
child 21287 a713ae348e8a
--- a/src/Pure/variable.ML	Sat Sep 30 20:54:34 2006 +0200
+++ b/src/Pure/variable.ML	Sat Sep 30 21:39:17 2006 +0200
@@ -33,7 +33,7 @@
   val add_fixes: string list -> Proof.context -> string list * Proof.context
   val add_fixes_direct: string list -> Proof.context -> Proof.context
   val fix_frees: term -> Proof.context -> Proof.context
-  val invent_fixes: string list -> Proof.context -> string list * Proof.context
+  val variant_fixes: string list -> Proof.context -> string list * Proof.context
   val invent_types: sort list -> Proof.context -> (string * sort) list * Proof.context
   val export_inst: Proof.context -> Proof.context -> string list * string list
   val exportT_inst: Proof.context -> Proof.context -> string list
@@ -199,7 +199,7 @@
 
 val declare_prf = Proofterm.fold_proof_terms declare_internal (declare_internal o Logic.mk_type);
 
-fun declare_thm th = fold declare_internal (Thm.full_prop_of th :: Thm.hyps_of th);
+val declare_thm = Drule.fold_terms declare_internal;
 fun thm_context th = declare_thm th (Context.init_proof (Thm.theory_of_thm th));
 
 
@@ -274,7 +274,7 @@
         (xs, fold Name.declare xs names));
   in ctxt |> new_fixes names' xs xs' end;
 
-fun invent_fixes raw_xs ctxt =
+fun variant_fixes raw_xs ctxt =
   let
     val names = names_of ctxt;
     val xs = map Name.clean raw_xs;
@@ -360,7 +360,7 @@
     val ren = if is_open then I else Name.internal;
     val (instT, ctxt') = importT_inst ts ctxt;
     val vars = map (apsnd (TermSubst.instantiateT instT)) (rev (fold Term.add_vars ts []));
-    val (xs, ctxt'') = invent_fixes (map (ren o #1 o #1) vars) ctxt';
+    val (xs, ctxt'') = variant_fixes (map (ren o #1 o #1) vars) ctxt';
     val inst = vars ~~ map Free (xs ~~ map #2 vars);
   in ((instT, inst), ctxt'') end;
 
@@ -421,7 +421,7 @@
     val t = Thm.term_of goal;
     val ps = Term.variant_frees t (Term.strip_all_vars t);   (*as they are printed :-*)
     val (xs, Ts) = split_list ps;
-    val (xs', ctxt') = invent_fixes xs ctxt;
+    val (xs', ctxt') = variant_fixes xs ctxt;
     val ps' = ListPair.map (cert o Free) (xs', Ts);
     val goal' = fold forall_elim_prop ps' goal;
   in ((ps', goal'), ctxt') end;