QuotMain.thy
changeset 1 8d0fad689dce
parent 0 ebe0ea8fe247
child 2 e0b4bca46c6a
--- a/QuotMain.thy	Tue Aug 11 12:29:15 2009 +0200
+++ b/QuotMain.thy	Tue Aug 18 14:04:51 2009 +0200
@@ -71,24 +71,19 @@
 
 end
 
-ML {*
-  Variable.variant_frees
-*}
-
-
 section {* type definition for the quotient type *}
 
 ML {*
-(* constructs the term \<lambda>(c::ty\<Rightarrow>bool). \<exists>x. c = rel x *)
+(* constructs the term \<lambda>(c::ty \<Rightarrow> bool). \<exists>x. c = rel x *)
 fun typedef_term rel ty lthy =
 let 
   val [x, c] = [("x", ty), ("c", ty --> @{typ bool})] 
                |> Variable.variant_frees lthy [rel]
                |> map Free
 in
-  lambda c  
-    ((HOLogic.exists_const ty) $ 
-      (lambda x (HOLogic.mk_eq (c, (rel $ x)))))
+  lambda c 
+    (HOLogic.mk_exists 
+       ("x", ty, HOLogic.mk_eq (c, (rel $ x))))
 end
 *}
 
@@ -102,7 +97,7 @@
 (* makes the new type definitions *)
 fun typedef_make (qty_name, rel, ty) lthy =
   LocalTheory.theory_result
-  (TypedefPackage.add_typedef false NONE 
+  (Typedef.add_typedef false NONE 
      (qty_name, map fst (Term.add_tfreesT ty []), NoSyn)
        (typedef_term rel ty lthy)
          NONE typedef_tac) lthy
@@ -110,7 +105,7 @@
 
 text {* proves the QUOTIENT theorem for the new type *}
 ML {*
-fun typedef_quot_type_tac equiv_thm (typedef_info: TypedefPackage.info) = 
+fun typedef_quot_type_tac equiv_thm (typedef_info: Typedef.info) = 
 let
   val rep_thm = #Rep typedef_info
   val rep_inv = #Rep_inverse typedef_info