equal
deleted
inserted
replaced
14 lemma [import_const T]: |
14 lemma [import_const T]: |
15 "True = ((\<lambda>p :: bool. p) = (\<lambda>p. p))" |
15 "True = ((\<lambda>p :: bool. p) = (\<lambda>p. p))" |
16 by simp |
16 by simp |
17 |
17 |
18 lemma [import_const "/\\"]: |
18 lemma [import_const "/\\"]: |
19 "(op \<and>) = (\<lambda>p q. (\<lambda>f. f p q :: bool) = (\<lambda>f. f True True))" |
19 "(\<and>) = (\<lambda>p q. (\<lambda>f. f p q :: bool) = (\<lambda>f. f True True))" |
20 by metis |
20 by metis |
21 |
21 |
22 lemma [import_const "==>"]: |
22 lemma [import_const "==>"]: |
23 "(op \<longrightarrow>) = (\<lambda>(p::bool) q::bool. (p \<and> q) = p)" |
23 "(\<longrightarrow>) = (\<lambda>(p::bool) q::bool. (p \<and> q) = p)" |
24 by auto |
24 by auto |
25 |
25 |
26 lemma [import_const "!"]: |
26 lemma [import_const "!"]: |
27 "All = (\<lambda>P::'A \<Rightarrow> bool. P = (\<lambda>x::'A. True))" |
27 "All = (\<lambda>P::'A \<Rightarrow> bool. P = (\<lambda>x::'A. True))" |
28 by auto |
28 by auto |
30 lemma [import_const "?"]: |
30 lemma [import_const "?"]: |
31 "Ex = (\<lambda>P::'A \<Rightarrow> bool. All (\<lambda>q::bool. (All (\<lambda>x::'A::type. (P x) \<longrightarrow> q)) \<longrightarrow> q))" |
31 "Ex = (\<lambda>P::'A \<Rightarrow> bool. All (\<lambda>q::bool. (All (\<lambda>x::'A::type. (P x) \<longrightarrow> q)) \<longrightarrow> q))" |
32 by auto |
32 by auto |
33 |
33 |
34 lemma [import_const "\\/"]: |
34 lemma [import_const "\\/"]: |
35 "(op \<or>) = (\<lambda>p q. \<forall>r. (p \<longrightarrow> r) \<longrightarrow> (q \<longrightarrow> r) \<longrightarrow> r)" |
35 "(\<or>) = (\<lambda>p q. \<forall>r. (p \<longrightarrow> r) \<longrightarrow> (q \<longrightarrow> r) \<longrightarrow> r)" |
36 by auto |
36 by auto |
37 |
37 |
38 lemma [import_const F]: |
38 lemma [import_const F]: |
39 "False = (\<forall>p. p)" |
39 "False = (\<forall>p. p)" |
40 by auto |
40 by auto |
59 lemma [import_const COND]: |
59 lemma [import_const COND]: |
60 "If = (\<lambda>t (t1 :: 'A) t2. SOME x. (t = True \<longrightarrow> x = t1) \<and> (t = False \<longrightarrow> x = t2))" |
60 "If = (\<lambda>t (t1 :: 'A) t2. SOME x. (t = True \<longrightarrow> x = t1) \<and> (t = False \<longrightarrow> x = t2))" |
61 unfolding fun_eq_iff by auto |
61 unfolding fun_eq_iff by auto |
62 |
62 |
63 lemma [import_const o]: |
63 lemma [import_const o]: |
64 "(op \<circ>) = (\<lambda>(f::'B \<Rightarrow> 'C) g x::'A. f (g x))" |
64 "(\<circ>) = (\<lambda>(f::'B \<Rightarrow> 'C) g x::'A. f (g x))" |
65 unfolding fun_eq_iff by simp |
65 unfolding fun_eq_iff by simp |
66 |
66 |
67 lemma [import_const I]: "id = (\<lambda>x::'A. x)" |
67 lemma [import_const I]: "id = (\<lambda>x::'A. x)" |
68 by auto |
68 by auto |
69 |
69 |
164 lemma LT[import_const "<" : less]: |
164 lemma LT[import_const "<" : less]: |
165 "(\<forall>m :: nat. m < (id 0) = False) \<and> (\<forall>m n. m < (Suc n) = (m = n \<or> m < n))" |
165 "(\<forall>m :: nat. m < (id 0) = False) \<and> (\<forall>m n. m < (Suc n) = (m = n \<or> m < n))" |
166 by auto |
166 by auto |
167 |
167 |
168 lemma DEF_GE[import_const ">=" : greater_eq]: |
168 lemma DEF_GE[import_const ">=" : greater_eq]: |
169 "(op \<ge>) = (\<lambda>x y :: nat. y \<le> x)" |
169 "(\<ge>) = (\<lambda>x y :: nat. y \<le> x)" |
170 by simp |
170 by simp |
171 |
171 |
172 lemma DEF_GT[import_const ">" : greater]: |
172 lemma DEF_GT[import_const ">" : greater]: |
173 "(op >) = (\<lambda>x y :: nat. y < x)" |
173 "(>) = (\<lambda>x y :: nat. y < x)" |
174 by simp |
174 by simp |
175 |
175 |
176 lemma DEF_MAX[import_const "MAX"]: |
176 lemma DEF_MAX[import_const "MAX"]: |
177 "max = (\<lambda>x y :: nat. if x \<le> y then y else x)" |
177 "max = (\<lambda>x y :: nat. if x \<le> y then y else x)" |
178 by (auto simp add: max.absorb_iff2 fun_eq_iff) |
178 by (auto simp add: max.absorb_iff2 fun_eq_iff) |