# HG changeset patch # User haftmann # Date 1192815929 -7200 # Node ID db3e412c4cb19fc3f3c30889a7d32c27c9a61a9a # Parent cae0f68b693b864cfdb45e7b141a8b306da63db2 antisymmetry not a default intro rule any longer diff -r cae0f68b693b -r db3e412c4cb1 src/HOL/Lattices.thy --- a/src/HOL/Lattices.thy Fri Oct 19 16:20:27 2007 +0200 +++ b/src/HOL/Lattices.thy Fri Oct 19 19:45:29 2007 +0200 @@ -30,9 +30,6 @@ context lower_semilattice begin -lemmas antisym_intro [intro!] = antisym -lemmas (in -) [rule del] = antisym_intro - lemma le_infI1[intro]: assumes "a \ x" shows "a \ b \ x" @@ -58,11 +55,11 @@ lemmas (in -) [rule del] = le_infE lemma le_inf_iff [simp]: - "x \ y \ z = (x \ y \ x \ z)" + "x \ y \ z = (x \ y \ x \ z)" by blast lemma le_iff_inf: "(x \ y) = (x \ y = x)" -by(blast dest:eq_iff[THEN iffD1]) + by (blast intro: antisym dest: eq_iff [THEN iffD1]) end @@ -73,9 +70,6 @@ context upper_semilattice begin -lemmas antisym_intro [intro!] = antisym -lemmas (in -) [rule del] = antisym_intro - lemma le_supI1[intro]: "x \ a \ x \ a \ b" by (rule order_trans) auto lemmas (in -) [rule del] = le_supI1 @@ -92,13 +86,12 @@ by (blast intro: order_trans) lemmas (in -) [rule del] = le_supE - lemma ge_sup_conv[simp]: - "x \ y \ z = (x \ z \ y \ z)" + "x \ y \ z = (x \ z \ y \ z)" by blast lemma le_iff_sup: "(x \ y) = (x \ y = y)" -by(blast dest:eq_iff[THEN iffD1]) + by (blast intro: antisym dest: eq_iff [THEN iffD1]) end @@ -113,25 +106,25 @@ begin lemma inf_commute: "(x \ y) = (y \ x)" -by blast + by (blast intro: antisym) lemma inf_assoc: "(x \ y) \ z = x \ (y \ z)" -by blast + by (blast intro: antisym) lemma inf_idem[simp]: "x \ x = x" -by blast + by (blast intro: antisym) lemma inf_left_idem[simp]: "x \ (x \ y) = x \ y" -by blast + by (blast intro: antisym) lemma inf_absorb1: "x \ y \ x \ y = x" -by blast + by (blast intro: antisym) lemma inf_absorb2: "y \ x \ x \ y = y" -by blast + by (blast intro: antisym) lemma inf_left_commute: "x \ (y \ z) = y \ (x \ z)" -by blast + by (blast intro: antisym) lemmas inf_ACI = inf_commute inf_assoc inf_left_commute inf_left_idem @@ -142,25 +135,25 @@ begin lemma sup_commute: "(x \ y) = (y \ x)" -by blast + by (blast intro: antisym) lemma sup_assoc: "(x \ y) \ z = x \ (y \ z)" -by blast + by (blast intro: antisym) lemma sup_idem[simp]: "x \ x = x" -by blast + by (blast intro: antisym) lemma sup_left_idem[simp]: "x \ (x \ y) = x \ y" -by blast + by (blast intro: antisym) lemma sup_absorb1: "y \ x \ x \ y = x" -by blast + by (blast intro: antisym) lemma sup_absorb2: "x \ y \ x \ y = y" -by blast + by (blast intro: antisym) lemma sup_left_commute: "x \ (y \ z) = y \ (x \ z)" -by blast + by (blast intro: antisym) lemmas sup_ACI = sup_commute sup_assoc sup_left_commute sup_left_idem @@ -170,10 +163,10 @@ begin lemma inf_sup_absorb: "x \ (x \ y) = x" -by(blast intro: antisym inf_le1 inf_greatest sup_ge1) + by (blast intro: antisym inf_le1 inf_greatest sup_ge1) lemma sup_inf_absorb: "x \ (x \ y) = x" -by(blast intro: antisym sup_ge1 sup_least inf_le1) + by (blast intro: antisym sup_ge1 sup_least inf_le1) lemmas ACI = inf_ACI sup_ACI @@ -182,10 +175,10 @@ text{* Towards distributivity *} lemma distrib_sup_le: "x \ (y \ z) \ (x \ y) \ (x \ z)" -by blast + by blast lemma distrib_inf_le: "(x \ y) \ (x \ z) \ x \ (y \ z)" -by blast + by blast text{* If you have one of them, you have them all. *} @@ -293,10 +286,10 @@ by (rule distrib_lattice_min_max) lemma inf_min: "inf = (min \ 'a\{lower_semilattice, linorder} \ 'a \ 'a)" - by (rule ext)+ auto + by (rule ext)+ (auto intro: antisym) lemma sup_max: "sup = (max \ 'a\{upper_semilattice, linorder} \ 'a \ 'a)" - by (rule ext)+ auto + by (rule ext)+ (auto intro: antisym) lemmas le_maxI1 = min_max.sup_ge1 lemmas le_maxI2 = min_max.sup_ge2 @@ -313,7 +306,7 @@ undesirable. *} -lemmas [rule del] = min_max.antisym_intro min_max.le_infI min_max.le_supI +lemmas [rule del] = min_max.le_infI min_max.le_supI min_max.le_supE min_max.le_infE min_max.le_supI1 min_max.le_supI2 min_max.le_infI1 min_max.le_infI2 @@ -330,10 +323,10 @@ begin lemma Inf_Sup: "\A = \{b. \a \ A. b \ a}" - by (auto intro: Inf_lower Inf_greatest Sup_upper Sup_least) + by (auto intro: antisym Inf_lower Inf_greatest Sup_upper Sup_least) lemma Sup_Inf: "\A = \{b. \a \ A. a \ b}" - by (auto intro: Inf_lower Inf_greatest Sup_upper Sup_least) + by (auto intro: antisym Inf_lower Inf_greatest Sup_upper Sup_least) lemma Inf_Univ: "\UNIV = \{}" unfolding Sup_Inf by auto @@ -453,6 +446,9 @@ end *} +context complete_lattice +begin + lemma le_SUPI: "i : A \ M i \ (SUP i:A. M i)" by (auto simp add: SUPR_def intro: Sup_upper) @@ -466,10 +462,12 @@ by (auto simp add: INFI_def intro: Inf_greatest) lemma SUP_const[simp]: "A \ {} \ (SUP i:A. M) = M" - by (auto intro: order_antisym SUP_leI le_SUPI) + by (auto intro: antisym SUP_leI le_SUPI) lemma INF_const[simp]: "A \ {} \ (INF i:A. M) = M" - by (auto intro: order_antisym INF_leI le_INFI) + by (auto intro: antisym INF_leI le_INFI) + +end subsection {* Bool as lattice *} diff -r cae0f68b693b -r db3e412c4cb1 src/HOL/OrderedGroup.thy --- a/src/HOL/OrderedGroup.thy Fri Oct 19 16:20:27 2007 +0200 +++ b/src/HOL/OrderedGroup.thy Fri Oct 19 19:45:29 2007 +0200 @@ -879,7 +879,7 @@ then have "a + a + - a = - a" by simp then have "a + (a + - a) = - a" by (simp only: add_assoc) then have a: "- a = a" by simp (*FIXME tune proof*) - show "a = 0" apply rule + show "a = 0" apply (rule antisym) apply (unfold neg_le_iff_le [symmetric, of a]) unfolding a apply simp unfolding zero_le_double_add_iff_zero_le_single_add [symmetric, of a]