Nominal-General/nominal_library.ML
changeset 1871 c704d129862b
parent 1834 9909cc3566c5
child 1896 996d4411e95e
--- a/Nominal-General/nominal_library.ML	Sun Apr 18 17:57:27 2010 +0200
+++ b/Nominal-General/nominal_library.ML	Sun Apr 18 17:58:45 2010 +0200
@@ -7,6 +7,7 @@
 signature NOMINAL_LIBRARY =
 sig
   val mk_minus: term -> term
+  val mk_perm_ty: typ -> term -> term -> term
   val mk_perm: term -> term -> term
   val dest_perm: term -> term * term
 
@@ -21,12 +22,10 @@
 fun mk_minus p = 
  Const (@{const_name "uminus"}, @{typ "perm => perm"}) $ p
 
-fun mk_perm p trm =
-let
-  val ty = fastype_of trm
-in
+fun mk_perm_ty ty p trm =
   Const (@{const_name "permute"}, @{typ "perm"} --> ty --> ty) $ p $ trm
-end
+
+fun mk_perm p trm = mk_perm_ty (fastype_of trm) p trm
 
 fun dest_perm (Const (@{const_name "permute"}, _) $ p $ t) = (p, t)
   | dest_perm t = raise TERM ("dest_perm", [t])