equal
deleted
inserted
replaced
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 |