equal
deleted
inserted
replaced
79 by (simp add: Sup_Inf Sup_empty [symmetric]) |
79 by (simp add: Sup_Inf Sup_empty [symmetric]) |
80 |
80 |
81 lemma Sup_UNIV: |
81 lemma Sup_UNIV: |
82 "\<Squnion>UNIV = top" |
82 "\<Squnion>UNIV = top" |
83 by (simp add: Inf_Sup Inf_empty [symmetric]) |
83 by (simp add: Inf_Sup Inf_empty [symmetric]) |
|
84 |
|
85 lemma Sup_le_iff: "Sup A \<sqsubseteq> b \<longleftrightarrow> (\<forall>a\<in>A. a \<sqsubseteq> b)" |
|
86 by (auto intro: Sup_least dest: Sup_upper) |
|
87 |
|
88 lemma le_Inf_iff: "b \<sqsubseteq> Inf A \<longleftrightarrow> (\<forall>a\<in>A. b \<sqsubseteq> a)" |
|
89 by (auto intro: Inf_greatest dest: Inf_lower) |
84 |
90 |
85 definition SUPR :: "'b set \<Rightarrow> ('b \<Rightarrow> 'a) \<Rightarrow> 'a" where |
91 definition SUPR :: "'b set \<Rightarrow> ('b \<Rightarrow> 'a) \<Rightarrow> 'a" where |
86 "SUPR A f = \<Squnion> (f ` A)" |
92 "SUPR A f = \<Squnion> (f ` A)" |
87 |
93 |
88 definition INFI :: "'b set \<Rightarrow> ('b \<Rightarrow> 'a) \<Rightarrow> 'a" where |
94 definition INFI :: "'b set \<Rightarrow> ('b \<Rightarrow> 'a) \<Rightarrow> 'a" where |
123 lemma INF_leI: "i : A \<Longrightarrow> (INF i:A. M i) \<sqsubseteq> M i" |
129 lemma INF_leI: "i : A \<Longrightarrow> (INF i:A. M i) \<sqsubseteq> M i" |
124 by (auto simp add: INFI_def intro: Inf_lower) |
130 by (auto simp add: INFI_def intro: Inf_lower) |
125 |
131 |
126 lemma le_INFI: "(\<And>i. i : A \<Longrightarrow> u \<sqsubseteq> M i) \<Longrightarrow> u \<sqsubseteq> (INF i:A. M i)" |
132 lemma le_INFI: "(\<And>i. i : A \<Longrightarrow> u \<sqsubseteq> M i) \<Longrightarrow> u \<sqsubseteq> (INF i:A. M i)" |
127 by (auto simp add: INFI_def intro: Inf_greatest) |
133 by (auto simp add: INFI_def intro: Inf_greatest) |
|
134 |
|
135 lemma SUP_le_iff: "(SUP i:A. M i) \<sqsubseteq> u \<longleftrightarrow> (\<forall>i \<in> A. M i \<sqsubseteq> u)" |
|
136 unfolding SUPR_def by (auto simp add: Sup_le_iff) |
|
137 |
|
138 lemma le_INF_iff: "u \<sqsubseteq> (INF i:A. M i) \<longleftrightarrow> (\<forall>i \<in> A. u \<sqsubseteq> M i)" |
|
139 unfolding INFI_def by (auto simp add: le_Inf_iff) |
128 |
140 |
129 lemma SUP_const[simp]: "A \<noteq> {} \<Longrightarrow> (SUP i:A. M) = M" |
141 lemma SUP_const[simp]: "A \<noteq> {} \<Longrightarrow> (SUP i:A. M) = M" |
130 by (auto intro: antisym SUP_leI le_SUPI) |
142 by (auto intro: antisym SUP_leI le_SUPI) |
131 |
143 |
132 lemma INF_const[simp]: "A \<noteq> {} \<Longrightarrow> (INF i:A. M) = M" |
144 lemma INF_const[simp]: "A \<noteq> {} \<Longrightarrow> (INF i:A. M) = M" |
382 |
394 |
383 lemma UN_UN_flatten: "(\<Union>x \<in> (\<Union>y\<in>A. B y). C x) = (\<Union>y\<in>A. \<Union>x\<in>B y. C x)" |
395 lemma UN_UN_flatten: "(\<Union>x \<in> (\<Union>y\<in>A. B y). C x) = (\<Union>y\<in>A. \<Union>x\<in>B y. C x)" |
384 by blast |
396 by blast |
385 |
397 |
386 lemma UN_subset_iff: "((\<Union>i\<in>I. A i) \<subseteq> B) = (\<forall>i\<in>I. A i \<subseteq> B)" |
398 lemma UN_subset_iff: "((\<Union>i\<in>I. A i) \<subseteq> B) = (\<forall>i\<in>I. A i \<subseteq> B)" |
387 by blast |
399 by (fact SUP_le_iff) |
388 |
400 |
389 lemma image_Union: "f ` \<Union>S = (\<Union>x\<in>S. f ` x)" |
401 lemma image_Union: "f ` \<Union>S = (\<Union>x\<in>S. f ` x)" |
390 by blast |
402 by blast |
391 |
403 |
392 lemma UN_constant [simp]: "(\<Union>y\<in>A. c) = (if A = {} then {} else c)" |
404 lemma UN_constant [simp]: "(\<Union>y\<in>A. c) = (if A = {} then {} else c)" |
589 |
601 |
590 lemma INT_absorb: "k \<in> I ==> A k \<inter> (\<Inter>i\<in>I. A i) = (\<Inter>i\<in>I. A i)" |
602 lemma INT_absorb: "k \<in> I ==> A k \<inter> (\<Inter>i\<in>I. A i) = (\<Inter>i\<in>I. A i)" |
591 by blast |
603 by blast |
592 |
604 |
593 lemma INT_subset_iff: "(B \<subseteq> (\<Inter>i\<in>I. A i)) = (\<forall>i\<in>I. B \<subseteq> A i)" |
605 lemma INT_subset_iff: "(B \<subseteq> (\<Inter>i\<in>I. A i)) = (\<forall>i\<in>I. B \<subseteq> A i)" |
594 by blast |
606 by (fact le_INF_iff) |
595 |
607 |
596 lemma INT_insert [simp]: "(\<Inter>x \<in> insert a A. B x) = B a \<inter> INTER A B" |
608 lemma INT_insert [simp]: "(\<Inter>x \<in> insert a A. B x) = B a \<inter> INTER A B" |
597 by blast |
609 by blast |
598 |
610 |
599 lemma INT_Un: "(\<Inter>i \<in> A \<union> B. M i) = (\<Inter>i \<in> A. M i) \<inter> (\<Inter>i\<in>B. M i)" |
611 lemma INT_Un: "(\<Inter>i \<in> A \<union> B. M i) = (\<Inter>i \<in> A. M i) \<inter> (\<Inter>i\<in>B. M i)" |