# HG changeset patch # User ballarin # Date 1217341159 -7200 # Node ID ef4b26efa8b6dfbd13a37bf8f09622b983159788 # Parent 489e3f33af0e3d64e12fe4201417f01bc323b6b2 Renamed theorems; New theory on divisibility. diff -r 489e3f33af0e -r ef4b26efa8b6 src/HOL/Algebra/Lattice.thy --- a/src/HOL/Algebra/Lattice.thy Tue Jul 29 16:17:45 2008 +0200 +++ b/src/HOL/Algebra/Lattice.thy Tue Jul 29 16:19:19 2008 +0200 @@ -5,17 +5,11 @@ Copyright: Clemens Ballarin *) -theory Lattice imports Main begin +theory Lattice imports Congruence begin section {* Orders and Lattices *} -text {* Object with a carrier set. *} - -record 'a partial_object = - carrier :: "'a set" - - subsection {* Partial Orders *} record 'a order = "'a partial_object" + @@ -71,7 +65,7 @@ "Upper L A \ carrier L" by (unfold Upper_def) clarify -lemma UpperD [dest]: +lemma Upper_memD [dest]: fixes L (structure) shows "[| u \ Upper L A; x \ A; A \ carrier L |] ==> x \ u" by (unfold Upper_def) blast @@ -92,7 +86,7 @@ "Lower L A \ carrier L" by (unfold Lower_def) clarify -lemma LowerD [dest]: +lemma Lower_memD [dest]: fixes L (structure) shows "[| l \ Lower L A; x \ A; A \ carrier L |] ==> l \ x" by (unfold Lower_def) blast @@ -109,7 +103,7 @@ subsubsection {* least *} -lemma least_carrier [intro, simp]: +lemma least_closed [intro, simp]: shows "least L l A ==> l \ carrier L" by (unfold least_def) fast @@ -142,7 +136,7 @@ subsubsection {* greatest *} -lemma greatest_carrier [intro, simp]: +lemma greatest_closed [intro, simp]: shows "greatest L l A ==> l \ carrier L" by (unfold greatest_def) fast @@ -186,7 +180,7 @@ shows "[| least L s (Upper L A); x \ A; A \ carrier L |] ==> x \ s" by (unfold least_def) blast -lemma greatest_Lower_above: +lemma greatest_Lower_below: fixes L (structure) shows "[| greatest L i (Lower L A); x \ A; A \ carrier L |] ==> i \ x" by (unfold greatest_def) blast @@ -207,7 +201,7 @@ lemma (in lattice) join_closed [simp]: "[| x \ carrier L; y \ carrier L |] ==> x \ y \ carrier L" - by (rule joinI) (rule least_carrier) + by (rule joinI) (rule least_closed) lemma (in partial_order) sup_of_singletonI: (* only reflexivity needed ? *) "x \ carrier L ==> least L x (Upper L {x})" @@ -402,7 +396,7 @@ from sup L show "s \ x \ (y \ z)" by (erule_tac least_le) (blast intro!: Upper_memI intro: trans join_left join_right join_closed) - qed (simp_all add: L least_carrier [OF sup]) + qed (simp_all add: L least_closed [OF sup]) qed (simp_all add: L) lemma join_comm: @@ -438,7 +432,7 @@ lemma (in lattice) meet_closed [simp]: "[| x \ carrier L; y \ carrier L |] ==> x \ y \ carrier L" - by (rule meetI) (rule greatest_carrier) + by (rule meetI) (rule greatest_closed) lemma (in partial_order) inf_of_singletonI: (* only reflexivity needed ? *) "x \ carrier L ==> greatest L x (Lower L {x})" @@ -470,11 +464,11 @@ then show "i \ z" proof assume "z = x" then show ?thesis - by (simp add: greatest_Lower_above [OF greatest_i] L La) + by (simp add: greatest_Lower_below [OF greatest_i] L La) next assume "z \ A" with L greatest_i greatest_a show ?thesis - by (rule_tac trans [where y = a]) (auto dest: greatest_Lower_above) + by (rule_tac trans [where y = a]) (auto dest: greatest_Lower_below) qed next fix y @@ -514,11 +508,11 @@ then show "i \ z" proof assume "z = x" then show ?thesis - by (simp add: greatest_Lower_above [OF greatest_i] L La) + by (simp add: greatest_Lower_below [OF greatest_i] L La) next assume "z \ A" with L greatest_i greatest_a show ?thesis - by (rule_tac trans [where y = a]) (auto dest: greatest_Lower_above) + by (rule_tac trans [where y = a]) (auto dest: greatest_Lower_below) qed next fix y @@ -629,12 +623,12 @@ show "x \ (y \ z) = i" proof (rule anti_sym) from inf L show "i \ x \ (y \ z)" - by (fastsimp intro!: meet_le elim: greatest_Lower_above) + by (fastsimp intro!: meet_le elim: greatest_Lower_below) next from inf L show "x \ (y \ z) \ i" by (erule_tac greatest_le) (blast intro!: Lower_memI intro: trans meet_left meet_right meet_closed) - qed (simp_all add: L greatest_carrier [OF inf]) + qed (simp_all add: L greatest_closed [OF inf]) qed (simp_all add: L) lemma meet_comm: @@ -809,14 +803,14 @@ apply (rule greatest_le [where A = "Lower L ?B"]) apply (rule b_inf_B) apply (rule Lower_memI) - apply (erule UpperD) + apply (erule Upper_memD) apply assumption apply (rule L) apply (fast intro: L [THEN subsetD]) - apply (erule greatest_Lower_above [OF b_inf_B]) + apply (erule greatest_Lower_below [OF b_inf_B]) apply simp apply (rule L) -apply (rule greatest_carrier [OF b_inf_B]) (* rename rule: _closed *) +apply (rule greatest_closed [OF b_inf_B]) done then show "EX s. least L s (Upper L A)" .. next