149 by simp |
149 by simp |
150 |
150 |
151 lemma spair_sfst_ssnd: "(:sfst\<cdot>p, ssnd\<cdot>p:) = p" |
151 lemma spair_sfst_ssnd: "(:sfst\<cdot>p, ssnd\<cdot>p:) = p" |
152 by (cases p, simp_all) |
152 by (cases p, simp_all) |
153 |
153 |
154 lemma below_sprod: "x \<sqsubseteq> y = (sfst\<cdot>x \<sqsubseteq> sfst\<cdot>y \<and> ssnd\<cdot>x \<sqsubseteq> ssnd\<cdot>y)" |
154 lemma below_sprod: "(x \<sqsubseteq> y) = (sfst\<cdot>x \<sqsubseteq> sfst\<cdot>y \<and> ssnd\<cdot>x \<sqsubseteq> ssnd\<cdot>y)" |
155 by (simp add: Rep_sprod_simps sfst_def ssnd_def cont_Rep_sprod) |
155 by (simp add: Rep_sprod_simps sfst_def ssnd_def cont_Rep_sprod) |
156 |
156 |
157 lemma eq_sprod: "(x = y) = (sfst\<cdot>x = sfst\<cdot>y \<and> ssnd\<cdot>x = ssnd\<cdot>y)" |
157 lemma eq_sprod: "(x = y) = (sfst\<cdot>x = sfst\<cdot>y \<and> ssnd\<cdot>x = ssnd\<cdot>y)" |
158 by (auto simp add: po_eq_conv below_sprod) |
158 by (auto simp add: po_eq_conv below_sprod) |
159 |
159 |
160 lemma sfst_below_iff: "sfst\<cdot>x \<sqsubseteq> y = x \<sqsubseteq> (:y, ssnd\<cdot>x:)" |
160 lemma sfst_below_iff: "sfst\<cdot>x \<sqsubseteq> y \<longleftrightarrow> x \<sqsubseteq> (:y, ssnd\<cdot>x:)" |
161 apply (cases "x = \<bottom>", simp, cases "y = \<bottom>", simp) |
161 apply (cases "x = \<bottom>", simp, cases "y = \<bottom>", simp) |
162 apply (simp add: below_sprod) |
162 apply (simp add: below_sprod) |
163 done |
163 done |
164 |
164 |
165 lemma ssnd_below_iff: "ssnd\<cdot>x \<sqsubseteq> y = x \<sqsubseteq> (:sfst\<cdot>x, y:)" |
165 lemma ssnd_below_iff: "ssnd\<cdot>x \<sqsubseteq> y \<longleftrightarrow> x \<sqsubseteq> (:sfst\<cdot>x, y:)" |
166 apply (cases "x = \<bottom>", simp, cases "y = \<bottom>", simp) |
166 apply (cases "x = \<bottom>", simp, cases "y = \<bottom>", simp) |
167 apply (simp add: below_sprod) |
167 apply (simp add: below_sprod) |
168 done |
168 done |
169 |
169 |
170 subsection {* Compactness *} |
170 subsection {* Compactness *} |