--- a/Nominal-General/nominal_library.ML Sun Aug 29 00:36:47 2010 +0800
+++ b/Nominal-General/nominal_library.ML Sun Aug 29 01:17:36 2010 +0800
@@ -37,6 +37,11 @@
val mk_supports_ty: typ -> term -> term -> term
val mk_supports: term -> term -> term
+ val finite_const: typ -> term
+ val mk_finite_ty: typ -> term -> term
+ val mk_finite: term -> term
+
+
val mk_equiv: thm -> thm
val safe_mk_equiv: thm -> thm
@@ -117,14 +122,19 @@
fun supp_ty ty = ty --> @{typ "atom set"};
-fun supp_const ty = Const (@{const_name "supp"}, supp_ty ty)
+fun supp_const ty = Const (@{const_name supp}, supp_ty ty)
fun mk_supp_ty ty t = supp_const ty $ t;
fun mk_supp t = mk_supp_ty (fastype_of t) t;
-fun supports_const ty = Const (@{const_name "supports"}, [@{typ "atom set"}, ty] ---> @{typ bool});
+fun supports_const ty = Const (@{const_name supports}, [@{typ "atom set"}, ty] ---> @{typ bool});
fun mk_supports_ty ty t1 t2 = supports_const ty $ t1 $ t2;
fun mk_supports t1 t2 = mk_supports_ty (fastype_of t2) t1 t2;
+fun finite_const ty = Const (@{const_name finite}, ty --> @{typ bool})
+fun mk_finite_ty ty t = finite_const ty $ t
+fun mk_finite t = mk_finite_ty (fastype_of t) t
+
+
fun mk_equiv r = r RS @{thm eq_reflection};
fun safe_mk_equiv r = mk_equiv r handle Thm.THM _ => r;