added variant_abs (from term.ML);
authorwenzelm
Tue, 25 Jul 2006 21:18:09 +0200
changeset 20202 87205ea2af06
parent 20201 24b49cbd438b
child 20203 914433927687
added variant_abs (from term.ML); tuned;
src/Pure/Syntax/syn_trans.ML
--- a/src/Pure/Syntax/syn_trans.ML	Tue Jul 25 21:18:08 2006 +0200
+++ b/src/Pure/Syntax/syn_trans.ML	Tue Jul 25 21:18:09 2006 +0200
@@ -21,6 +21,7 @@
   val mark_bound: string -> term
   val mark_boundT: string * typ -> term
   val bound_vars: (string * typ) list -> term -> term
+  val variant_abs: string * typ * term -> string * term
   val variant_abs': string * typ * term -> string * term
 end;
 
@@ -383,10 +384,12 @@
 
 (* dependent / nondependent quantifiers *)
 
-fun variant_abs' (x, T, b) =
-  let val ([x'], _) = Name.variants [x] (Term.declare_term_names b Name.context) in
-    (x', subst_bound (mark_boundT (x', T), b))
-  end;
+fun var_abs mark (x, T, b) =
+  let val ([x'], _) = Name.variants [x] (Term.declare_term_names b Name.context)
+  in (x', subst_bound (mark (x', T), b)) end;
+
+val variant_abs = var_abs Free;
+val variant_abs' = var_abs mark_boundT;
 
 fun dependent_tr' (q, r) (A :: Abs (x, T, B) :: ts) =
       if Term.loose_bvar1 (B, 0) then