diff -r ebe0ea8fe247 -r 8d0fad689dce QuotMain.thy --- 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 \(c::ty\bool). \x. c = rel x *) +(* constructs the term \(c::ty \ bool). \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