src/ZF/OrdQuant.thy
changeset 13339 0f89104dd377
parent 13302 98ce70e7d1f7
child 13362 cd7f9ea58338
equal deleted inserted replaced
13338:20ca66539bef 13339:0f89104dd377
   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