deglobalized named HOL constants
authorhaftmann
Thu, 19 Aug 2010 16:03:07 +0200
changeset 38555 bd6359ed1636
parent 38554 f8999e19dd49
child 38556 dc92eee56ed7
deglobalized named HOL constants
src/HOL/HOL.thy
src/HOL/Tools/hologic.ML
--- a/src/HOL/HOL.thy	Thu Aug 19 16:03:01 2010 +0200
+++ b/src/HOL/HOL.thy	Thu Aug 19 16:03:07 2010 +0200
@@ -47,8 +47,6 @@
   "fun" :: (type, type) type
   itself :: (type) type
 
-global
-
 typedecl bool
 
 judgment
@@ -58,19 +56,20 @@
   True          :: bool
   False         :: bool
   Not           :: "bool => bool"                   ("~ _" [40] 40)
+
+global consts
   "op &"        :: "[bool, bool] => bool"           (infixr "&" 35)
   "op |"        :: "[bool, bool] => bool"           (infixr "|" 30)
   "op -->"      :: "[bool, bool] => bool"           (infixr "-->" 25)
 
   "op ="        :: "['a, 'a] => bool"               (infixl "=" 50)
 
+local consts
   The           :: "('a => bool) => 'a"
   All           :: "('a => bool) => bool"           (binder "ALL " 10)
   Ex            :: "('a => bool) => bool"           (binder "EX " 10)
   Ex1           :: "('a => bool) => bool"           (binder "EX! " 10)
 
-local
-
 
 subsubsection {* Additional concrete syntax *}
 
@@ -1575,7 +1574,7 @@
   val atomize_conjL = @{thm atomize_conjL}
   val atomize_disjL = @{thm atomize_disjL}
   val operator_names =
-    [@{const_name "op |"}, @{const_name "op &"}, @{const_name "Ex"}]
+    [@{const_name "op |"}, @{const_name "op &"}, @{const_name Ex}]
 );
 *}
 
--- a/src/HOL/Tools/hologic.ML	Thu Aug 19 16:03:01 2010 +0200
+++ b/src/HOL/Tools/hologic.ML	Thu Aug 19 16:03:07 2010 +0200
@@ -143,15 +143,15 @@
 
 (* bool and set *)
 
-val boolN = "bool";
+val boolN = "HOL.bool";
 val boolT = Type (boolN, []);
 
-val true_const =  Const ("True", boolT);
-val false_const = Const ("False", boolT);
+val true_const =  Const ("HOL.True", boolT);
+val false_const = Const ("HOL.False", boolT);
 
 fun mk_setT T = T --> boolT;
 
-fun dest_setT (Type ("fun", [T, Type ("bool", [])])) = T
+fun dest_setT (Type ("fun", [T, Type ("HOL.bool", [])])) = T
   | dest_setT T = raise TYPE ("dest_setT: set type expected", [T], []);
 
 fun mk_set T ts =
@@ -181,11 +181,11 @@
 
 (* logic *)
 
-val Trueprop = Const ("Trueprop", boolT --> propT);
+val Trueprop = Const ("HOL.Trueprop", boolT --> propT);
 
 fun mk_Trueprop P = Trueprop $ P;
 
-fun dest_Trueprop (Const ("Trueprop", _) $ P) = P
+fun dest_Trueprop (Const ("HOL.Trueprop", _) $ P) = P
   | dest_Trueprop t = raise TERM ("dest_Trueprop", [t]);
 
 fun conj_intr thP thQ =
@@ -233,7 +233,7 @@
 fun dest_imp (Const ("op -->", _) $ A $ B) = (A, B)
   | dest_imp  t = raise TERM ("dest_imp", [t]);
 
-fun dest_not (Const ("Not", _) $ t) = t
+fun dest_not (Const ("HOL.Not", _) $ t) = t
   | dest_not t = raise TERM ("dest_not", [t]);
 
 fun eq_const T = Const ("op =", T --> T --> boolT);
@@ -242,11 +242,11 @@
 fun dest_eq (Const ("op =", _) $ lhs $ rhs) = (lhs, rhs)
   | dest_eq t = raise TERM ("dest_eq", [t])
 
-fun all_const T = Const ("All", [T --> boolT] ---> boolT);
+fun all_const T = Const ("HOL.All", [T --> boolT] ---> boolT);
 fun mk_all (x, T, P) = all_const T $ absfree (x, T, P);
 fun list_all (xs, t) = fold_rev (fn (x, T) => fn P => all_const T $ Abs (x, T, P)) xs t;
 
-fun exists_const T = Const ("Ex", [T --> boolT] ---> boolT);
+fun exists_const T = Const ("HOL.Ex", [T --> boolT] ---> boolT);
 fun mk_exists (x, T, P) = exists_const T $ absfree (x, T, P);
 
 fun choice_const T = Const("Hilbert_Choice.Eps", (T --> boolT) --> T);