equal
deleted
inserted
replaced
230 lemma rall_triv [simp]: "(ALL x[M]. P) <-> ((EX x. M(x)) --> P)" |
230 lemma rall_triv [simp]: "(ALL x[M]. P) <-> ((EX x. M(x)) --> P)" |
231 by (simp add: rall_def) |
231 by (simp add: rall_def) |
232 |
232 |
233 (*Congruence rule for rewriting*) |
233 (*Congruence rule for rewriting*) |
234 lemma rall_cong [cong]: |
234 lemma rall_cong [cong]: |
235 "(!!x. M(x) ==> P(x) <-> P'(x)) |
235 "(!!x. M(x) ==> P(x) <-> P'(x)) ==> (ALL x[M]. P(x)) <-> (ALL x[M]. P'(x))" |
236 ==> rall(M, %x. P(x)) <-> rall(M, %x. P'(x))" |
|
237 by (simp add: rall_def) |
236 by (simp add: rall_def) |
238 |
237 |
239 |
238 |
240 subsubsection{*Relativized existential quantifier*} |
239 subsubsection{*Relativized existential quantifier*} |
241 |
240 |
256 (*We do not even have (EX x[M]. True) <-> True unless A is nonempty!!*) |
255 (*We do not even have (EX x[M]. True) <-> True unless A is nonempty!!*) |
257 lemma rex_triv [simp]: "(EX x[M]. P) <-> ((EX x. M(x)) & P)" |
256 lemma rex_triv [simp]: "(EX x[M]. P) <-> ((EX x. M(x)) & P)" |
258 by (simp add: rex_def) |
257 by (simp add: rex_def) |
259 |
258 |
260 lemma rex_cong [cong]: |
259 lemma rex_cong [cong]: |
261 "(!!x. M(x) ==> P(x) <-> P'(x)) |
260 "(!!x. M(x) ==> P(x) <-> P'(x)) ==> (EX x[M]. P(x)) <-> (EX x[M]. P'(x))" |
262 ==> rex(M, %x. P(x)) <-> rex(M, %x. P'(x))" |
|
263 by (simp add: rex_def cong: conj_cong) |
261 by (simp add: rex_def cong: conj_cong) |
264 |
262 |
265 lemma rall_is_ball [simp]: "(\<forall>x[%z. z\<in>A]. P(x)) <-> (\<forall>x\<in>A. P(x))" |
263 lemma rall_is_ball [simp]: "(\<forall>x[%z. z\<in>A]. P(x)) <-> (\<forall>x\<in>A. P(x))" |
266 by blast |
264 by blast |
267 |
265 |