--- 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])