equal
deleted
inserted
replaced
83 SIGMA cl: CompleteLattice. |
83 SIGMA cl: CompleteLattice. |
84 {S. S \<subseteq> pset cl & |
84 {S. S \<subseteq> pset cl & |
85 (| pset = S, order = induced S (order cl) |): CompleteLattice }" |
85 (| pset = S, order = induced S (order cl) |): CompleteLattice }" |
86 |
86 |
87 syntax |
87 syntax |
88 "@SL" :: "['a set, 'a potype] => bool" ("_ <\<subseteq> _" [51,50]50) |
88 "@SL" :: "['a set, 'a potype] => bool" ("_ <<= _" [51,50]50) |
89 |
89 |
90 translations |
90 translations |
91 "S <\<subseteq> cl" == "S : sublattice `` {cl}" |
91 "S <<= cl" == "S : sublattice `` {cl}" |
92 |
92 |
93 constdefs |
93 constdefs |
94 dual :: "'a potype => 'a potype" |
94 dual :: "'a potype => 'a potype" |
95 "dual po == (| pset = pset po, order = converse (order po) |)" |
95 "dual po == (| pset = pset po, order = converse (order po) |)" |
96 |
96 |
301 |
301 |
302 |
302 |
303 subsection {* sublattice *} |
303 subsection {* sublattice *} |
304 |
304 |
305 lemma (in PO) sublattice_imp_CL: |
305 lemma (in PO) sublattice_imp_CL: |
306 "S <\<subseteq> cl ==> (| pset = S, order = induced S r |) \<in> CompleteLattice" |
306 "S <<= cl ==> (| pset = S, order = induced S r |) \<in> CompleteLattice" |
307 by (simp add: sublattice_def CompleteLattice_def A_def r_def) |
307 by (simp add: sublattice_def CompleteLattice_def A_def r_def) |
308 |
308 |
309 lemma (in CL) sublatticeI: |
309 lemma (in CL) sublatticeI: |
310 "[| S \<subseteq> A; (| pset = S, order = induced S r |) \<in> CompleteLattice |] |
310 "[| S \<subseteq> A; (| pset = S, order = induced S r |) \<in> CompleteLattice |] |
311 ==> S <\<subseteq> cl" |
311 ==> S <<= cl" |
312 by (simp add: sublattice_def A_def r_def) |
312 by (simp add: sublattice_def A_def r_def) |
313 |
313 |
314 |
314 |
315 subsection {* lub *} |
315 subsection {* lub *} |
316 |
316 |
657 |
657 |
658 lemmas (in CLF) intv_CL_glb = intv_CL_lub [THEN Rdual] |
658 lemmas (in CLF) intv_CL_glb = intv_CL_lub [THEN Rdual] |
659 |
659 |
660 lemma (in CLF) interval_is_sublattice: |
660 lemma (in CLF) interval_is_sublattice: |
661 "[| a \<in> A; b \<in> A; interval r a b \<noteq> {} |] |
661 "[| a \<in> A; b \<in> A; interval r a b \<noteq> {} |] |
662 ==> interval r a b <\<subseteq> cl" |
662 ==> interval r a b <<= cl" |
663 apply (rule sublatticeI) |
663 apply (rule sublatticeI) |
664 apply (simp add: interval_subset) |
664 apply (simp add: interval_subset) |
665 apply (rule CompleteLatticeI) |
665 apply (rule CompleteLatticeI) |
666 apply (simp add: intervalPO) |
666 apply (simp add: intervalPO) |
667 apply (simp add: intv_CL_lub) |
667 apply (simp add: intv_CL_lub) |
735 apply (rule subset_trans [OF _ fix_subset]) |
735 apply (rule subset_trans [OF _ fix_subset]) |
736 apply (rule Y_ss [simplified P_def]) |
736 apply (rule Y_ss [simplified P_def]) |
737 done |
737 done |
738 |
738 |
739 lemma (in Tarski) lubY_in_A: "lub Y cl \<in> A" |
739 lemma (in Tarski) lubY_in_A: "lub Y cl \<in> A" |
740 by (simp add: Y_subset_A [THEN lub_in_lattice]) |
740 by (rule Y_subset_A [THEN lub_in_lattice]) |
741 |
741 |
742 lemma (in Tarski) lubY_le_flubY: "(lub Y cl, f (lub Y cl)) \<in> r" |
742 lemma (in Tarski) lubY_le_flubY: "(lub Y cl, f (lub Y cl)) \<in> r" |
743 apply (rule lub_least) |
743 apply (rule lub_least) |
744 apply (rule Y_subset_A) |
744 apply (rule Y_subset_A) |
745 apply (rule f_in_funcset [THEN funcset_mem]) |
745 apply (rule f_in_funcset [THEN funcset_mem]) |