124 "(\<exists>x. P x) \<and> R \<longleftrightarrow> (\<exists>x. P x \<and> R)" |
124 "(\<exists>x. P x) \<and> R \<longleftrightarrow> (\<exists>x. P x \<and> R)" |
125 "(\<exists>x y z. S x z) \<longleftrightarrow> (\<exists>x z. S x z)" |
125 "(\<exists>x y z. S x z) \<longleftrightarrow> (\<exists>x z. S x z)" |
126 "\<not>((\<exists>x. \<not>P x) \<and> ((\<exists>x. P x) \<or> (\<exists>x. P x \<and> Q x)) \<and> \<not>(\<exists>x. P x))" |
126 "\<not>((\<exists>x. \<not>P x) \<and> ((\<exists>x. P x) \<or> (\<exists>x. P x \<and> Q x)) \<and> \<not>(\<exists>x. P x))" |
127 by smt+ |
127 by smt+ |
128 |
128 |
129 lemma (* only without proofs: *) |
129 lemma |
130 "\<exists>x y. x = y" |
130 "\<exists>x y. x = y" |
131 "\<exists>x. P x \<longrightarrow> (\<exists>y. P x \<and> P y)" |
131 "\<exists>x. P x \<longrightarrow> (\<exists>y. P x \<and> P y)" |
132 "(\<exists>x. P x) \<or> R \<longleftrightarrow> (\<exists>x. P x \<or> R)" |
132 "(\<exists>x. P x) \<or> R \<longleftrightarrow> (\<exists>x. P x \<or> R)" |
133 "\<exists>x. P x \<longrightarrow> P a \<and> P b" |
133 "\<exists>x. P x \<longrightarrow> P a \<and> P b" |
134 "\<exists>x. (\<exists>y. P y) \<longrightarrow> P x" |
134 "\<exists>x. (\<exists>y. P y) \<longrightarrow> P x" |
135 "(\<exists>x. Q \<longrightarrow> P x) \<longleftrightarrow> (Q \<longrightarrow> (\<exists>x. P x))" |
135 "(\<exists>x. Q \<longrightarrow> P x) \<longleftrightarrow> (Q \<longrightarrow> (\<exists>x. P x))" |
136 using [[smt_oracle=true, z3_options="AUTO_CONFIG=false SATURATE=true"]] |
136 by smt+ |
137 by smt+ |
|
138 |
137 |
139 lemma |
138 lemma |
140 "(\<not>(\<exists>x. P x)) \<longleftrightarrow> (\<forall>x. \<not> P x)" |
139 "(\<not>(\<exists>x. P x)) \<longleftrightarrow> (\<forall>x. \<not> P x)" |
141 "(\<exists>x. P x \<longrightarrow> Q) \<longleftrightarrow> (\<forall>x. P x) \<longrightarrow> Q" |
140 "(\<exists>x. P x \<longrightarrow> Q) \<longleftrightarrow> (\<forall>x. P x) \<longrightarrow> Q" |
142 "(\<forall>x y. R x y = x) \<longrightarrow> (\<exists>y. R x y) = R x c" |
141 "(\<forall>x y. R x y = x) \<longrightarrow> (\<exists>y. R x y) = R x c" |
143 "(if P x then \<not>(\<exists>y. P y) else (\<forall>y. \<not>P y)) \<longrightarrow> P x \<longrightarrow> P y" |
142 "(if P x then \<not>(\<exists>y. P y) else (\<forall>y. \<not>P y)) \<longrightarrow> P x \<longrightarrow> P y" |
144 "(\<forall>x y. R x y = x) \<and> (\<forall>x. \<exists>y. R x y) = (\<forall>x. R x c) \<longrightarrow> (\<exists>y. R x y) = R x c" |
143 "(\<forall>x y. R x y = x) \<and> (\<forall>x. \<exists>y. R x y) = (\<forall>x. R x c) \<longrightarrow> (\<exists>y. R x y) = R x c" |
145 by smt+ |
144 by smt+ |
146 |
145 |
147 lemma (* only without proofs: *) |
146 lemma |
148 "\<forall>x. \<exists>y. f x y = f x (g x)" |
147 "\<forall>x. \<exists>y. f x y = f x (g x)" |
149 "(\<not>\<not>(\<exists>x. P x)) \<longleftrightarrow> (\<not>(\<forall>x. \<not> P x))" |
148 "(\<not>\<not>(\<exists>x. P x)) \<longleftrightarrow> (\<not>(\<forall>x. \<not> P x))" |
150 "\<forall>u. \<exists>v. \<forall>w. \<exists>x. f u v w x = f u (g u) w (h u w)" |
149 "\<forall>u. \<exists>v. \<forall>w. \<exists>x. f u v w x = f u (g u) w (h u w)" |
151 "\<exists>x. if x = y then (\<forall>y. y = x \<or> y \<noteq> x) else (\<forall>y. y = (x, x) \<or> y \<noteq> (x, x))" |
150 "\<exists>x. if x = y then (\<forall>y. y = x \<or> y \<noteq> x) else (\<forall>y. y = (x, x) \<or> y \<noteq> (x, x))" |
152 "\<exists>x. if x = y then (\<exists>y. y = x \<or> y \<noteq> x) else (\<exists>y. y = (x, x) \<or> y \<noteq> (x, x))" |
151 "\<exists>x. if x = y then (\<exists>y. y = x \<or> y \<noteq> x) else (\<exists>y. y = (x, x) \<or> y \<noteq> (x, x))" |
153 "(\<exists>x. \<forall>y. P x \<longleftrightarrow> P y) \<longrightarrow> ((\<exists>x. P x) \<longleftrightarrow> (\<forall>y. P y))" |
152 "(\<exists>x. \<forall>y. P x \<longleftrightarrow> P y) \<longrightarrow> ((\<exists>x. P x) \<longleftrightarrow> (\<forall>y. P y))" |
154 "\<exists>z. P z \<longrightarrow> (\<forall>x. P x)" |
153 "\<exists>z. P z \<longrightarrow> (\<forall>x. P x)" |
155 "(\<exists>y. \<forall>x. R x y) \<longrightarrow> (\<forall>x. \<exists>y. R x y)" |
154 "(\<exists>y. \<forall>x. R x y) \<longrightarrow> (\<forall>x. \<exists>y. R x y)" |
156 using [[smt_oracle=true]] |
|
157 by smt+ |
155 by smt+ |
158 |
156 |
159 lemma |
157 lemma |
160 "(\<exists>! x. P x) \<longrightarrow> (\<exists>x. P x)" |
158 "(\<exists>! x. P x) \<longrightarrow> (\<exists>x. P x)" |
161 "(\<exists>!x. P x) \<longleftrightarrow> (\<exists>x. P x \<and> (\<forall>y. y \<noteq> x \<longrightarrow> \<not>P y))" |
159 "(\<exists>!x. P x) \<longleftrightarrow> (\<exists>x. P x \<and> (\<forall>y. y \<noteq> x \<longrightarrow> \<not>P y))" |