Added strong_ball_cong and strong_bex_cong (these are now the standard
authorberghofe
Fri, 01 Jul 2005 13:57:53 +0200
changeset 16636 1ed737a98198
parent 16635 bf7de5723c60
child 16637 62dff56b43d3
Added strong_ball_cong and strong_bex_cong (these are now the standard congruence rules for Ball and Bex).
src/HOL/Set.thy
--- a/src/HOL/Set.thy	Fri Jul 01 13:56:34 2005 +0200
+++ b/src/HOL/Set.thy	Fri Jul 01 13:57:53 2005 +0200
@@ -444,16 +444,26 @@
 
 subsubsection {* Congruence rules *}
 
-lemma ball_cong [cong]:
+lemma ball_cong:
   "A = B ==> (!!x. x:B ==> P x = Q x) ==>
     (ALL x:A. P x) = (ALL x:B. Q x)"
   by (simp add: Ball_def)
 
-lemma bex_cong [cong]:
+lemma strong_ball_cong [cong]:
+  "A = B ==> (!!x. x:B =simp=> P x = Q x) ==>
+    (ALL x:A. P x) = (ALL x:B. Q x)"
+  by (simp add: simp_implies_def Ball_def)
+
+lemma bex_cong:
   "A = B ==> (!!x. x:B ==> P x = Q x) ==>
     (EX x:A. P x) = (EX x:B. Q x)"
   by (simp add: Bex_def cong: conj_cong)
 
+lemma strong_bex_cong [cong]:
+  "A = B ==> (!!x. x:B =simp=> P x = Q x) ==>
+    (EX x:A. P x) = (EX x:B. Q x)"
+  by (simp add: simp_implies_def Bex_def cong: conj_cong)
+
 
 subsubsection {* Subsets *}