src/HOL/HOL.thy
changeset 11432 8a203ae6efe3
parent 10489 a4684cf28edf
child 11438 3d9222b80989
     1.1 --- a/src/HOL/HOL.thy	Fri Jul 20 17:49:21 2001 +0200
     1.2 +++ b/src/HOL/HOL.thy	Fri Jul 20 21:52:54 2001 +0200
     1.3 @@ -38,6 +38,7 @@
     1.4    (* Binders *)
     1.5  
     1.6    Eps           :: "('a => bool) => 'a"
     1.7 +  The           :: "('a => bool) => 'a"
     1.8    All           :: "('a => bool) => bool"           (binder "ALL " 10)
     1.9    Ex            :: "('a => bool) => bool"           (binder "EX " 10)
    1.10    Ex1           :: "('a => bool) => bool"           (binder "EX! " 10)
    1.11 @@ -97,6 +98,7 @@
    1.12  syntax
    1.13    ~=            :: "['a, 'a] => bool"                    (infixl 50)
    1.14    "_Eps"        :: "[pttrn, bool] => 'a"                 ("(3SOME _./ _)" [0, 10] 10)
    1.15 +  "_The"        :: "[pttrn, bool] => 'a"                 ("(3THE _./ _)" [0, 10] 10)
    1.16  
    1.17    (* Let expressions *)
    1.18  
    1.19 @@ -115,6 +117,7 @@
    1.20  translations
    1.21    "x ~= y"                == "~ (x = y)"
    1.22    "SOME x. P"             == "Eps (%x. P)"
    1.23 +  "THE x. P"              == "The (%x. P)"
    1.24    "_Let (_binds b bs) e"  == "_Let b (_Let bs e)"
    1.25    "let x = a in e"        == "Let a (%x. e)"
    1.26  
    1.27 @@ -171,6 +174,7 @@
    1.28    ext:          "(!!x::'a. (f x ::'b) = g x) ==> (%x. f x) = (%x. g x)"
    1.29  
    1.30    someI:        "P (x::'a) ==> P (SOME x. P x)"
    1.31 +  the_eq_trivial: "(THE x. x = a) = (a::'a)"
    1.32  
    1.33    impI:         "(P ==> Q) ==> P-->Q"
    1.34    mp:           "[| P-->Q;  P |] ==> Q"