# HG changeset patch # User haftmann # Date 1310846030 -7200 # Node ID 7411fbf0a325ae595919f9a6e7e5b8ee0a991cee # Parent 16f2fd9103bda139690439a1d04039dd254a25aa tuned notation diff -r 16f2fd9103bd -r 7411fbf0a325 src/HOL/Complete_Lattice.thy --- a/src/HOL/Complete_Lattice.thy Sat Jul 16 00:01:17 2011 +0200 +++ b/src/HOL/Complete_Lattice.thy Sat Jul 16 21:53:50 2011 +0200 @@ -256,7 +256,7 @@ "\A \ (\x\A. x)" instance proof -qed (auto simp add: Inf_bool_def Sup_bool_def le_bool_def) +qed (auto simp add: Inf_bool_def Sup_bool_def) end @@ -475,15 +475,15 @@ lemma INT_I [intro!]: "(\x. x \ A \ b \ B x) \ b \ (\x\A. B x)" by (unfold INTER_def) blast -lemma INT_D [elim, Pure.elim]: "b : (\x\A. B x) \ a:A \ b: B a" +lemma INT_D [elim, Pure.elim]: "b \ (\x\A. B x) \ a \ A \ b \ B a" by auto -lemma INT_E [elim]: "b : (\x\A. B x) \ (b: B a \ R) \ (a~:A \ R) \ R" - -- {* "Classical" elimination -- by the Excluded Middle on @{prop "a:A"}. *} +lemma INT_E [elim]: "b \ (\x\A. B x) \ (b \ B a \ R) \ (a \ A \ R) \ R" + -- {* "Classical" elimination -- by the Excluded Middle on @{prop "a\A"}. *} by (unfold INTER_def) blast lemma INT_cong [cong]: - "A = B \ (\x. x:B \ C x = D x) \ (\x\A. C x) = (\x\B. D x)" + "A = B \ (\x. x \ B \ C x = D x) \ (\x\A. C x) = (\x\B. D x)" by (simp add: INTER_def) lemma Collect_ball_eq: "{x. \y\A. P x y} = (\y\A. {x. P x y})" @@ -672,23 +672,23 @@ "\(B ` A) = (\x\A. B x)" by (rule sym) (fact UNION_eq_Union_image) -lemma UN_iff [simp]: "(b: (\x\A. B x)) = (\x\A. b: B x)" +lemma UN_iff [simp]: "(b \ (\x\A. B x)) = (\x\A. b \ B x)" by (unfold UNION_def) blast -lemma UN_I [intro]: "a:A \ b: B a \ b: (\x\A. B x)" +lemma UN_I [intro]: "a \ A \ b \ B a \ b \ (\x\A. B x)" -- {* The order of the premises presupposes that @{term A} is rigid; @{term b} may be flexible. *} by auto -lemma UN_E [elim!]: "b : (\x\A. B x) \ (\x. x:A \ b: B x \ R) \ R" +lemma UN_E [elim!]: "b \ (\x\A. B x) \ (\x. x\A \ b \ B x \ R) \ R" by (unfold UNION_def) blast lemma UN_cong [cong]: - "A = B \ (\x. x:B \ C x = D x) \ (\x\A. C x) = (\x\B. D x)" + "A = B \ (\x. x \ B \ C x = D x) \ (\x\A. C x) = (\x\B. D x)" by (simp add: UNION_def) lemma strong_UN_cong: - "A = B \ (\x. x:B =simp=> C x = D x) \ (\x\A. C x) = (\x\B. D x)" + "A = B \ (\x. x \ B =simp=> C x = D x) \ (\x\A. C x) = (\x\B. D x)" by (simp add: UNION_def simp_implies_def) lemma image_eq_UN: "f ` A = (\x\A. {f x})" @@ -838,84 +838,84 @@ lemma UN_simps [simp]: "\a B C. (\x\C. insert a (B x)) = (if C={} then {} else insert a (\x\C. B x))" - "\A B C. (\x\C. A x \ B) = ((if C={} then {} else (\x\C. A x) \ B))" - "\A B C. (\x\C. A \ B x) = ((if C={} then {} else A \ (\x\C. B x)))" - "\A B C. (\x\C. A x \ B) = ((\x\C. A x) \B)" - "\A B C. (\x\C. A \ B x) = (A \(\x\C. B x))" - "\A B C. (\x\C. A x - B) = ((\x\C. A x) - B)" - "\A B C. (\x\C. A - B x) = (A - (\x\C. B x))" - "\A B. (UN x: \A. B x) = (\y\A. UN x:y. B x)" - "\A B C. (UN z: UNION A B. C z) = (\x\A. UN z: B(x). C z)" + "\A B C. (\x\C. A x \ B) = ((if C={} then {} else (\x\C. A x) \ B))" + "\A B C. (\x\C. A \ B x) = ((if C={} then {} else A \ (\x\C. B x)))" + "\A B C. (\x\C. A x \ B) = ((\x\C. A x) \B)" + "\A B C. (\x\C. A \ B x) = (A \(\x\C. B x))" + "\A B C. (\x\C. A x - B) = ((\x\C. A x) - B)" + "\A B C. (\x\C. A - B x) = (A - (\x\C. B x))" + "\A B. (\x\\A. B x) = (\y\A. \x\y. B x)" + "\A B C. (\z\UNION A B. C z) = (\x\A. \z\B x. C z)" "\A B f. (\x\f`A. B x) = (\a\A. B (f a))" by auto lemma INT_simps [simp]: "\A B C. (\x\C. A x \ B) = (if C={} then UNIV else (\x\C. A x) \B)" "\A B C. (\x\C. A \ B x) = (if C={} then UNIV else A \(\x\C. B x))" - "\A B C. (\x\C. A x - B) = (if C={} then UNIV else (\x\C. A x) - B)" - "\A B C. (\x\C. A - B x) = (if C={} then UNIV else A - (\x\C. B x))" + "\A B C. (\x\C. A x - B) = (if C={} then UNIV else (\x\C. A x) - B)" + "\A B C. (\x\C. A - B x) = (if C={} then UNIV else A - (\x\C. B x))" "\a B C. (\x\C. insert a (B x)) = insert a (\x\C. B x)" - "\A B C. (\x\C. A x \ B) = ((\x\C. A x) \ B)" - "\A B C. (\x\C. A \ B x) = (A \ (\x\C. B x))" - "\A B. (INT x: \A. B x) = (\y\A. INT x:y. B x)" - "\A B C. (INT z: UNION A B. C z) = (\x\A. INT z: B(x). C z)" - "\A B f. (INT x:f`A. B x) = (INT a:A. B (f a))" + "\A B C. (\x\C. A x \ B) = ((\x\C. A x) \ B)" + "\A B C. (\x\C. A \ B x) = (A \ (\x\C. B x))" + "\A B. (\x\\A. B x) = (\y\A. \x\y. B x)" + "\A B C. (\z\UNION A B. C z) = (\x\A. \z\B x. C z)" + "\A B f. (\x\f`A. B x) = (\a\A. B (f a))" by auto lemma ball_simps [simp,no_atp]: - "\A P Q. (\x\A. P x | Q) = ((\x\A. P x) | Q)" - "\A P Q. (\x\A. P | Q x) = (P | (\x\A. Q x))" - "\A P Q. (\x\A. P --> Q x) = (P --> (\x\A. Q x))" - "\A P Q. (\x\A. P x --> Q) = ((\x\A. P x) --> Q)" - "\P. (\ x\{}. P x) = True" - "\P. (\ x\UNIV. P x) = (ALL x. P x)" - "\a B P. (\ x\insert a B. P x) = (P a & (\ x\B. P x))" - "\A P. (\ x\\A. P x) = (\y\A. \ x\y. P x)" - "\A B P. (\ x\ UNION A B. P x) = (\a\A. \ x\ B a. P x)" - "\P Q. (\ x\Collect Q. P x) = (ALL x. Q x --> P x)" - "\A P f. (\ x\f`A. P x) = (\x\A. P (f x))" - "\A P. (~(\x\A. P x)) = (\x\A. ~P x)" + "\A P Q. (\x\A. P x \ Q) \ ((\x\A. P x) \ Q)" + "\A P Q. (\x\A. P \ Q x) \ (P \ (\x\A. Q x))" + "\A P Q. (\x\A. P \ Q x) \ (P \ (\x\A. Q x))" + "\A P Q. (\x\A. P x \ Q) \ ((\x\A. P x) \ Q)" + "\P. (\x\{}. P x) \ True" + "\P. (\x\UNIV. P x) \ (\x. P x)" + "\a B P. (\x\insert a B. P x) \ (P a \ (\x\B. P x))" + "\A P. (\x\\A. P x) \ (\y\A. \x\y. P x)" + "\A B P. (\x\ UNION A B. P x) = (\a\A. \x\ B a. P x)" + "\P Q. (\x\Collect Q. P x) \ (\x. Q x \ P x)" + "\A P f. (\x\f`A. P x) \ (\x\A. P (f x))" + "\A P. (\ (\x\A. P x)) \ (\x\A. \ P x)" by auto lemma bex_simps [simp,no_atp]: - "\A P Q. (\x\A. P x & Q) = ((\x\A. P x) & Q)" - "\A P Q. (\x\A. P & Q x) = (P & (\x\A. Q x))" - "\P. (EX x:{}. P x) = False" - "\P. (EX x:UNIV. P x) = (EX x. P x)" - "\a B P. (EX x:insert a B. P x) = (P(a) | (EX x:B. P x))" - "\A P. (EX x:\A. P x) = (EX y:A. EX x:y. P x)" - "\A B P. (EX x: UNION A B. P x) = (EX a:A. EX x:B a. P x)" - "\P Q. (EX x:Collect Q. P x) = (EX x. Q x & P x)" - "\A P f. (EX x:f`A. P x) = (\x\A. P (f x))" - "\A P. (~(\x\A. P x)) = (\x\A. ~P x)" + "\A P Q. (\x\A. P x \ Q) \ ((\x\A. P x) \ Q)" + "\A P Q. (\x\A. P \ Q x) \ (P \ (\x\A. Q x))" + "\P. (\x\{}. P x) \ False" + "\P. (\x\UNIV. P x) \ (\x. P x)" + "\a B P. (\x\insert a B. P x) \ (P a | (\x\B. P x))" + "\A P. (\x\\A. P x) \ (\y\A. \x\y. P x)" + "\A B P. (\x\UNION A B. P x) \ (\a\A. \x\B a. P x)" + "\P Q. (\x\Collect Q. P x) \ (\x. Q x \ P x)" + "\A P f. (\x\f`A. P x) \ (\x\A. P (f x))" + "\A P. (\(\x\A. P x)) \ (\x\A. \ P x)" by auto text {* \medskip Maxiscoping: pulling out big Unions and Intersections. *} lemma UN_extend_simps: "\a B C. insert a (\x\C. B x) = (if C={} then {a} else (\x\C. insert a (B x)))" - "\A B C. (\x\C. A x) \ B = (if C={} then B else (\x\C. A x \ B))" - "\A B C. A \ (\x\C. B x) = (if C={} then A else (\x\C. A \ B x))" - "\A B C. ((\x\C. A x) \B) = (\x\C. A x \ B)" - "\A B C. (A \(\x\C. B x)) = (\x\C. A \ B x)" + "\A B C. (\x\C. A x) \ B = (if C={} then B else (\x\C. A x \ B))" + "\A B C. A \ (\x\C. B x) = (if C={} then A else (\x\C. A \ B x))" + "\A B C. ((\x\C. A x) \ B) = (\x\C. A x \ B)" + "\A B C. (A \ (\x\C. B x)) = (\x\C. A \ B x)" "\A B C. ((\x\C. A x) - B) = (\x\C. A x - B)" "\A B C. (A - (\x\C. B x)) = (\x\C. A - B x)" - "\A B. (\y\A. UN x:y. B x) = (UN x: \A. B x)" - "\A B C. (\x\A. UN z: B(x). C z) = (UN z: UNION A B. C z)" + "\A B. (\y\A. \x\y. B x) = (\x\\A. B x)" + "\A B C. (\x\A. \z\B x. C z) = (\z\UNION A B. C z)" "\A B f. (\a\A. B (f a)) = (\x\f`A. B x)" by auto lemma INT_extend_simps: - "\A B C. (\x\C. A x) \B = (if C={} then B else (\x\C. A x \ B))" - "\A B C. A \(\x\C. B x) = (if C={} then A else (\x\C. A \ B x))" - "\A B C. (\x\C. A x) - B = (if C={} then UNIV - B else (\x\C. A x - B))" - "\A B C. A - (\x\C. B x) = (if C={} then A else (\x\C. A - B x))" + "\A B C. (\x\C. A x) \ B = (if C={} then B else (\x\C. A x \ B))" + "\A B C. A \ (\x\C. B x) = (if C={} then A else (\x\C. A \ B x))" + "\A B C. (\x\C. A x) - B = (if C={} then UNIV - B else (\x\C. A x - B))" + "\A B C. A - (\x\C. B x) = (if C={} then A else (\x\C. A - B x))" "\a B C. insert a (\x\C. B x) = (\x\C. insert a (B x))" - "\A B C. ((\x\C. A x) \ B) = (\x\C. A x \ B)" - "\A B C. A \ (\x\C. B x) = (\x\C. A \ B x)" - "\A B. (\y\A. INT x:y. B x) = (INT x: \A. B x)" - "\A B C. (\x\A. INT z: B(x). C z) = (INT z: UNION A B. C z)" - "\A B f. (INT a:A. B (f a)) = (INT x:f`A. B x)" + "\A B C. ((\x\C. A x) \ B) = (\x\C. A x \ B)" + "\A B C. A \ (\x\C. B x) = (\x\C. A \ B x)" + "\A B. (\y\A. \x\y. B x) = (\x\\A. B x)" + "\A B C. (\x\A. \z\B x. C z) = (\z\UNION A B. C z)" + "\A B f. (\a\A. B (f a)) = (\x\f`A. B x)" by auto