src/HOL/HOL.thy
changeset 965 24eef3860714
parent 923 ff1574a81019
child 973 f57fb576520f
equal deleted inserted replaced
964:5f690b184f91 965:24eef3860714
    36   (* Constants *)
    36   (* Constants *)
    37 
    37 
    38   Trueprop      :: "bool => prop"                     ("(_)" 5)
    38   Trueprop      :: "bool => prop"                     ("(_)" 5)
    39   not           :: "bool => bool"                     ("~ _" [40] 40)
    39   not           :: "bool => bool"                     ("~ _" [40] 40)
    40   True, False   :: "bool"
    40   True, False   :: "bool"
    41   if            :: "[bool, 'a, 'a] => 'a"
    41   If            :: "[bool, 'a, 'a] => 'a"   ("(if (_)/ then (_)/ else (_))" 10)
    42   Inv           :: "('a => 'b) => ('b => 'a)"
    42   Inv           :: "('a => 'b) => ('b => 'a)"
    43 
    43 
    44   (* Binders *)
    44   (* Binders *)
    45 
    45 
    46   Eps           :: "('a => bool) => 'a"               (binder "@" 10)
    46   Eps           :: "('a => bool) => 'a"               (binder "@" 10)
   137   (* Misc Definitions *)
   137   (* Misc Definitions *)
   138 
   138 
   139   Let_def       "Let s f == f(s)"
   139   Let_def       "Let s f == f(s)"
   140   Inv_def       "Inv(f::'a=>'b)  == (% y. @x. f(x)=y)"
   140   Inv_def       "Inv(f::'a=>'b)  == (% y. @x. f(x)=y)"
   141   o_def         "(f::'b=>'c) o g == (%(x::'a). f(g(x)))"
   141   o_def         "(f::'b=>'c) o g == (%(x::'a). f(g(x)))"
   142   if_def        "if P x y == @z::'a. (P=True --> z=x) & (P=False --> z=y)"
   142   if_def   "if P then x else y == @z::'a. (P=True --> z=x) & (P=False --> z=y)"
   143 
   143 
   144 end
   144 end
   145 
   145 
   146 
   146 
   147 ML
   147 ML