
diff -r a910a65478be -r d199410f1db1 HOL.thy
--- a/HOL.thy	Tue Sep 28 14:27:31 1993 +0100
+++ b/HOL.thy	Mon Oct 04 15:43:54 1993 +0100
@@ -28,41 +28,42 @@
 
   (* Constants *)
 
-  Trueprop      :: "bool => prop"                       ("(_)" [0] 5)
-  not           :: "bool => bool"                       ("~ _" [40] 40)
+  Trueprop      :: "bool => prop"                     ("(_)" 5)
+  not           :: "bool => bool"                     ("~ _" [40] 40)
   True, False   :: "bool"
   if            :: "[bool, 'a, 'a] => 'a"
   Inv           :: "('a => 'b) => ('b => 'a)"
 
   (* Binders *)
 
-  Eps           :: "('a => bool) => 'a"                 (binder "@" 10)
-  All           :: "('a => bool) => bool"               (binder "! " 10)
-  Ex            :: "('a => bool) => bool"               (binder "? " 10)
-  Ex1           :: "('a => bool) => bool"               (binder "?! " 10)
+  Eps           :: "('a => bool) => 'a"               (binder "@" 10)
+  All           :: "('a => bool) => bool"             (binder "! " 10)
+  Ex            :: "('a => bool) => bool"             (binder "? " 10)
+  Ex1           :: "('a => bool) => bool"             (binder "?! " 10)
 
-  Let		:: "['a, 'a=>'b] => 'b"
-  "@let"	:: "[idt,'a,'b] => 'b"		("(let _ = (2_)/ in (2_))" 10)
+  Let           :: "['a, 'a => 'b] => 'b"
+  "@Let"        :: "[idt, 'a, 'b] => 'b"              ("(let _ = (2_)/ in (2_))" 10)
 
   (* Alternative Quantifiers *)
 
-  "*All"        :: "[idts, bool] => bool"             ("(3ALL _./ _)" [0,0] 10)
-  "*Ex"         :: "[idts, bool] => bool"             ("(3EX _./ _)" [0,0] 10)
-  "*Ex1"        :: "[idts, bool] => bool"             ("(3EX! _./ _)" [0,0] 10)
+  "*The"        :: "[idts, bool] => 'a"               ("(3THE _./ _)" 10)
+  "*All"        :: "[idts, bool] => bool"             ("(3ALL _./ _)" 10)
+  "*Ex"         :: "[idts, bool] => bool"             ("(3EX _./ _)" 10)
+  "*Ex1"        :: "[idts, bool] => bool"             ("(3EX! _./ _)" 10)
 
   (* Infixes *)
 
-  o             :: "['b => 'c, 'a => 'b, 'a] => 'c"     (infixr 50)
-  "="           :: "['a, 'a] => bool"                   (infixl 50)
-  "&"           :: "[bool, bool] => bool"               (infixr 35)
-  "|"           :: "[bool, bool] => bool"               (infixr 30)
-  "-->"         :: "[bool, bool] => bool"               (infixr 25)
+  o             :: "['b => 'c, 'a => 'b, 'a] => 'c"   (infixr 50)
+  "="           :: "['a, 'a] => bool"                 (infixl 50)
+  "&"           :: "[bool, bool] => bool"             (infixr 35)
+  "|"           :: "[bool, bool] => bool"             (infixr 30)
+  "-->"         :: "[bool, bool] => bool"             (infixr 25)
 
   (* Overloaded Constants *)
 
-  "+"           :: "['a::plus, 'a] => 'a"               (infixl 65)
-  "-"           :: "['a::minus, 'a] => 'a"              (infixl 65)
-  "*"           :: "['a::times, 'a] => 'a"              (infixl 70)
+  "+"           :: "['a::plus, 'a] => 'a"             (infixl 65)
+  "-"           :: "['a::minus, 'a] => 'a"            (infixl 65)
+  "*"           :: "['a::times, 'a] => 'a"            (infixl 70)
 
   (* Rewriting Gadget *)
 
@@ -70,11 +71,12 @@
 
 
 translations
+  "THE xs. P"   => "@ xs. P"
   "ALL xs. P"   => "! xs. P"
   "EX xs. P"    => "? xs. P"
   "EX! xs. P"   => "?! xs. P"
 
-  "let x = s in t" == "Let(s,%x.t)"
+  "let x = s in t" == "Let(s, %x. t)"
 
 rules
 
@@ -100,7 +102,7 @@
   and_def       "op & = (%P Q. !R. (P-->Q-->R) --> R)"
   or_def        "op | = (%P Q. !R. (P-->R) --> (Q-->R) --> R)"
   Ex1_def       "Ex1  = (%P. ? x. P(x) & (! y. P(y) --> y=x))"
-  Let_def	"Let(s,f) = f(s)"
+  Let_def       "Let(s, f) = f(s)"
 
   (* Axioms *)
 
@@ -127,16 +129,16 @@
 
 val HOL_quantifiers = ref true;
 
-fun mk_alt_ast_tr' (name, alt_name) =
+fun alt_ast_tr' (name, alt_name) =
   let
     fun ast_tr' (*name*) args =
       if ! HOL_quantifiers then raise Match
-      else Ast.mk_appl (Ast.Constant alt_name) args;
+      else Syntax.mk_appl (Syntax.Constant alt_name) args;
   in
     (name, ast_tr')
   end;
 
 
 val print_ast_translation =
-  map mk_alt_ast_tr' [("! ", "*All"), ("? ", "*Ex"), ("?! ", "*Ex1")];
+  map alt_ast_tr' [("@", "*The"), ("! ", "*All"), ("? ", "*Ex"), ("?! ", "*Ex1")];
 




