lemma arbitrary_union_of_alt: "(arbitrary union_of Q) S ⟷ (∀x ∈ S. ∃U. Q U ∧ x ∈ U ∧ U ⊆ S)"
(is"?lhs = ?rhs") proof assume ?lhs thenshow ?rhs by (force simp: union_of_def arbitrary_def) next assume ?rhs thenhave"{U. Q U ∧ U ⊆ S} ⊆ Collect Q""∪{U. Q U ∧ U ⊆ S} = S" by auto thenshow ?lhs unfolding union_of_def arbitrary_def by blast qed
lemma arbitrary_union_of_inc: "P S ==> (arbitrary union_of P) S" by (force simp: union_of_inc arbitrary_def)
lemma arbitrary_intersection_of_inc: "P S ==> (arbitrary intersection_of P) S" by (force simp: intersection_of_inc arbitrary_def)
lemma arbitrary_union_of_complement: "(arbitrary union_of P) S ⟷ (arbitrary intersection_of (λS. P(- S))) (- S)" (is"?lhs = ?rhs") proof assume ?lhs thenobtainUwhere"U⊆ Collect P""S = ∪U" by (auto simp: union_of_def arbitrary_def) thenshow ?rhs unfolding intersection_of_def arbitrary_def by (rule_tac x="uminus ` U"in exI) auto next assume ?rhs thenobtainUwhere"U⊆ {S. P (- S)}""∩U = - S" by (auto simp: union_of_def intersection_of_def arbitrary_def) thenshow ?lhs unfolding union_of_def arbitrary_def by (rule_tac x="uminus ` U"in exI) auto qed
lemma arbitrary_intersection_of_complement: "(arbitrary intersection_of P) S ⟷ (arbitrary union_of (λS. P(- S))) (- S)" by (simp add: arbitrary_union_of_complement)
lemma arbitrary_union_of_idempot [simp]: "arbitrary union_of arbitrary union_of P = arbitrary union_of P" proof - have 1: "∃U'⊆Collect P. ∪U' = ∪U"if"U⊆ {S. ∃V⊆Collect P. ∪V = S}"forU proof - let ?W = "{V. ∃V. V⊆Collect P ∧ V ∈V∧ (∃S ∈U. ∪V = S)}" have *: "∧x U. [x ∈ U; U ∈U]==> x ∈∪?W" using that apply simp apply (drule subsetD, assumption, auto) done show ?thesis apply (rule_tac x="{V. ∃V. V⊆Collect P ∧ V ∈V∧ (∃S ∈U. ∪V = S)}"in exI) using that by (blast intro: *) qed have 2: "∃U'⊆{S. ∃U⊆Collect P. ∪U = S}. ∪U' = ∪U"if"U⊆ Collect P"forU by (metis (mono_tags, lifting) union_of_def arbitrary_union_of_inc that) show ?thesis unfolding union_of_def arbitrary_def by (force simp: 1 2) qed
lemma arbitrary_intersection_of_idempot: "arbitrary intersection_of arbitrary intersection_of P = arbitrary intersection_of P" (is"?lhs = ?rhs") proof - have"- ?lhs = - ?rhs" unfolding arbitrary_intersection_of_complement by simp thenshow ?thesis by simp qed
lemma arbitrary_intersection_of_Int: "[(arbitrary intersection_of P) S; (arbitrary intersection_of P) T] ==> (arbitrary intersection_of P) (S ∩ T)" using arbitrary_intersection_of_Inter [of "{S,T}"] by auto
lemma arbitrary_union_of_Int_eq: "(∀S T. (arbitrary union_of P) S ∧ (arbitrary union_of P) T ⟶ (arbitrary union_of P) (S ∩ T)) ⟷ (∀S T. P S ∧ P T ⟶ (arbitrary union_of P) (S ∩ T))" (is"?lhs = ?rhs") proof assume ?lhs thenshow ?rhs by (simp add: arbitrary_union_of_inc) next assume R: ?rhs show ?lhs proof clarify fix S :: "'a set"and T :: "'a set" assume"(arbitrary union_of P) S"and"(arbitrary union_of P) T" thenobtainUVwhere *: "U⊆ Collect P""∪U = S""V⊆ Collect P""∪V = T" by (auto simp: union_of_def) thenhave"(arbitrary union_of P) (∪C∈U. ∪D∈V. C ∩ D)" using R by (blast intro: arbitrary_union_of_Union) thenshow"(arbitrary union_of P) (S ∩ T)" by (simp add: Int_UN_distrib2 *) qed qed
lemma arbitrary_intersection_of_Un_eq: "(∀S T. (arbitrary intersection_of P) S ∧ (arbitrary intersection_of P) T ⟶ (arbitrary intersection_of P) (S ∪ T)) ⟷ (∀S T. P S ∧ P T ⟶ (arbitrary intersection_of P) (S ∪ T))" apply (simp add: arbitrary_intersection_of_complement) using arbitrary_union_of_Int_eq [of "λS. P (- S)"] by (metis (no_types, lifting) arbitrary_def double_compl union_of_inc)
lemma finite_union_of_Int_eq: "(∀S T. (finite union_of P) S ∧ (finite union_of P) T ⟶ (finite union_of P) (S ∩ T)) ⟷ (∀S T. P S ∧ P T ⟶ (finite union_of P) (S ∩ T))"
(is"?lhs = ?rhs") proof assume ?lhs thenshow ?rhs by (simp add: finite_union_of_inc) next assume R: ?rhs show ?lhs proof clarify fix S :: "'a set"and T :: "'a set" assume"(finite union_of P) S"and"(finite union_of P) T" thenobtainUVwhere *: "U⊆ Collect P""∪U = S""finite U""V⊆ Collect P""∪V = T""finite V" by (auto simp: union_of_def) thenhave"(finite union_of P) (∪C∈U. ∪D∈V. C ∩ D)" using R by (blast intro: finite_union_of_Union) thenshow"(finite union_of P) (S ∩ T)" by (simp add: Int_UN_distrib2 *) qed qed
lemma finite_intersection_of_Un_eq: "(∀S T. (finite intersection_of P) S ∧ (finite intersection_of P) T ⟶ (finite intersection_of P) (S ∪ T)) ⟷ (∀S T. P S ∧ P T ⟶ (finite intersection_of P) (S ∪ T))" apply (simp add: finite_intersection_of_complement) using finite_union_of_Int_eq [of "λS. P (- S)"] by (metis (no_types, lifting) double_compl)
abbreviation finite' :: "'a set ==> bool" where"finite' A ≡ finite A ∧ A ≠ {}"
lemma finite'_intersection_of_inc: "P S ==> (finite' intersection_of P) S" by (simp add: intersection_of_inc)
subsection‹The ``Relative to'' operator›
text‹A somewhat cheap but handy way of getting localized forms of various topological concepts (open, closed, borel, fsigma, gdelta etc.)›
definition relative_to :: "['a set ==> bool, 'a set, 'a set] ==> bool" (infixl‹relative'_to› 55) where"P relative_to S ≡ λT. ∃U. P U ∧ S ∩ U = T"
lemma relative_to_UNIV [simp]: "(P relative_to UNIV) S ⟷ P S" by (simp add: relative_to_def)
lemma relative_to_imp_subset: "(P relative_to S) T ==> T ⊆ S" by (auto simp: relative_to_def)
lemma all_relative_to: "(∀S. (P relative_to U) S ⟶ Q S) ⟷ (∀S. P S ⟶ Q(U ∩ S))" by (auto simp: relative_to_def)
lemma relative_toE: "[(P relative_to U) S; ∧S. P S ==> Q(U ∩ S)]==> Q S" by (auto simp: relative_to_def)
lemma relative_to_inc: "P S ==> (P relative_to U) (U ∩ S)" by (auto simp: relative_to_def)
lemma relative_to_relative_to [simp]: "P relative_to S relative_to T = P relative_to (S ∩ T)" unfolding relative_to_def by auto
lemma relative_to_compl: "S ⊆ U ==> ((P relative_to U) (U - S) ⟷ ((λc. P(- c)) relative_to U) S)" unfolding relative_to_def by (metis Diff_Diff_Int Diff_eq double_compl inf.absorb_iff2)
lemma relative_to_subset_trans: "[(P relative_to U) S; S ⊆ T; T ⊆ U]==> (P relative_to T) S" unfolding relative_to_def by auto
lemma relative_to_mono: "[(P relative_to U) S; ∧S. P S ==> Q S]==> (Q relative_to U) S" unfolding relative_to_def by auto
lemma relative_to_subset_inc: "[S ⊆ U; P S]==> (P relative_to U) S" unfolding relative_to_def by auto
lemma relative_to_Int: "[(P relative_to S) C; (P relative_to S) D; ∧X Y. [P X; P Y]==> P(X ∩ Y)] ==> (P relative_to S) (C ∩ D)" unfolding relative_to_def by auto
lemma relative_to_Un: "[(P relative_to S) C; (P relative_to S) D; ∧X Y. [P X; P Y]==> P(X ∪ Y)] ==> (P relative_to S) (C ∪ D)" unfolding relative_to_def by auto
lemma arbitrary_union_of_relative_to: "((arbitrary union_of P) relative_to U) = (arbitrary union_of (P relative_to U))" (is"?lhs = ?rhs") proof - have"?rhs S"if L: "?lhs S"for S proof - obtainUwhere"S = U ∩∪U""U⊆ Collect P" using L unfolding relative_to_def union_of_def by auto thenshow ?thesis unfolding relative_to_def union_of_def arbitrary_def by (rule_tac x="(λX. U ∩ X) ` U"in exI) auto qed moreoverhave"?lhs S"if R: "?rhs S"for S proof - obtainUwhere"S = ∪U""∀T∈U. ∃V. P V ∧ U ∩ V = T" using R unfolding relative_to_def union_of_def by auto thenobtain f where f: "∧T. T ∈U==> P (f T)""∧T. T ∈U==> U ∩ (f T) = T" by metis thenhave"∃U'⊆Collect P. ∪U' = ∪ (f ` U)" by (metis image_subset_iff mem_Collect_eq) moreoverhave eq: "U ∩∪ (f ` U) = ∪U" using f by auto ultimatelyshow ?thesis unfolding relative_to_def union_of_def arbitrary_def ‹S = ∪U› by metis qed ultimatelyshow ?thesis by blast qed
lemma finite_union_of_relative_to: "((finite union_of P) relative_to U) = (finite union_of (P relative_to U))" (is"?lhs = ?rhs") proof - have"?rhs S"if L: "?lhs S"for S proof - obtainUwhere"S = U ∩∪U""U⊆ Collect P""finite U" using L unfolding relative_to_def union_of_def by auto thenshow ?thesis unfolding relative_to_def union_of_def by (rule_tac x="(λX. U ∩ X) ` U"in exI) auto qed moreoverhave"?lhs S"if R: "?rhs S"for S proof - obtainUwhere"S = ∪U""∀T∈U. ∃V. P V ∧ U ∩ V = T""finite U" using R unfolding relative_to_def union_of_def by auto thenobtain f where f: "∧T. T ∈U==> P (f T)""∧T. T ∈U==> U ∩ (f T) = T" by metis thenhave"∃U'⊆Collect P. ∪U' = ∪ (f ` U)" by (metis image_subset_iff mem_Collect_eq) moreoverhave eq: "U ∩∪ (f ` U) = ∪U" using f by auto ultimatelyshow ?thesis using‹finite U› f unfolding relative_to_def union_of_def ‹S = ∪U› by (rule_tac x="∪ (f ` U)"in exI) (metis finite_imageI image_subsetI mem_Collect_eq) qed ultimatelyshow ?thesis by blast qed
lemma countable_union_of_relative_to: "((countable union_of P) relative_to U) = (countable union_of (P relative_to U))" (is"?lhs = ?rhs") proof - have"?rhs S"if L: "?lhs S"for S proof - obtainUwhere"S = U ∩∪U""U⊆ Collect P""countable U" using L unfolding relative_to_def union_of_def by auto thenshow ?thesis unfolding relative_to_def union_of_def by (rule_tac x="(λX. U ∩ X) ` U"in exI) auto qed moreoverhave"?lhs S"if R: "?rhs S"for S proof - obtainUwhere"S = ∪U""∀T∈U. ∃V. P V ∧ U ∩ V = T""countable U" using R unfolding relative_to_def union_of_def by auto thenobtain f where f: "∧T. T ∈U==> P (f T)""∧T. T ∈U==> U ∩ (f T) = T" by metis thenhave"∃U'⊆Collect P. ∪U' = ∪ (f ` U)" by (metis image_subset_iff mem_Collect_eq) moreoverhave eq: "U ∩∪ (f ` U) = ∪U" using f by auto ultimatelyshow ?thesis using‹countable U› f unfolding relative_to_def union_of_def ‹S = ∪U› by (rule_tac x="∪ (f ` U)"in exI) (metis countable_image image_subsetI mem_Collect_eq) qed ultimatelyshow ?thesis by blast qed
lemma arbitrary_intersection_of_relative_to: "((arbitrary intersection_of P) relative_to U) = ((arbitrary intersection_of (P relative_to U)) relative_to U)" (is"?lhs = ?rhs") proof - have"?rhs S"if L: "?lhs S"for S proof - obtainUwhereU: "S = U ∩∩U""U⊆ Collect P" using L unfolding relative_to_def intersection_of_def by auto show ?thesis unfolding relative_to_def intersection_of_def arbitrary_def proof (intro exI conjI) show"U ∩ (∩X∈U. U ∩ X) = S""(∩) U ` U⊆ {T. ∃Ua. P Ua ∧ U ∩ Ua = T}" usingUby blast+ qed auto qed moreoverhave"?lhs S"if R: "?rhs S"for S proof - obtainUwhere"S = U ∩∩U""∀T∈U. ∃V. P V ∧ U ∩ V = T" using R unfolding relative_to_def intersection_of_def by auto thenobtain f where f: "∧T. T ∈U==> P (f T)""∧T. T ∈U==> U ∩ (f T) = T" by metis thenhave"f ` U⊆ Collect P" by auto moreoverhave eq: "U ∩∩(f ` U) = U ∩∩U" using f by auto ultimatelyshow ?thesis unfolding relative_to_def intersection_of_def arbitrary_def ‹S = U ∩∩U› by auto qed ultimatelyshow ?thesis by blast qed
lemma finite_intersection_of_relative_to: "((finite intersection_of P) relative_to U) = ((finite intersection_of (P relative_to U)) relative_to U)" (is"?lhs = ?rhs") proof - have"?rhs S"if L: "?lhs S"for S proof - obtainUwhereU: "S = U ∩∩U""U⊆ Collect P""finite U" using L unfolding relative_to_def intersection_of_def by auto show ?thesis unfolding relative_to_def intersection_of_def proof (intro exI conjI) show"U ∩ (∩X∈U. U ∩ X) = S""(∩) U ` U⊆ {T. ∃Ua. P Ua ∧ U ∩ Ua = T}" usingUby blast+ show"finite ((∩) U ` U)" by (simp add: ‹finite U›) qed auto qed moreoverhave"?lhs S"if R: "?rhs S"for S proof - obtainUwhere"S = U ∩∩U""∀T∈U. ∃V. P V ∧ U ∩ V = T""finite U" using R unfolding relative_to_def intersection_of_def by auto thenobtain f where f: "∧T. T ∈U==> P (f T)""∧T. T ∈U==> U ∩ (f T) = T" by metis thenhave"f ` U⊆ Collect P" by auto moreoverhave eq: "U ∩∩ (f ` U) = U ∩∩U" using f by auto ultimatelyshow ?thesis unfolding relative_to_def intersection_of_def ‹S = U ∩∩U› using‹finite U› by auto qed ultimatelyshow ?thesis by blast qed
lemma countable_intersection_of_relative_to: "((countable intersection_of P) relative_to U) = ((countable intersection_of (P relative_to U)) relative_to U)" (is"?lhs = ?rhs") proof - have"?rhs S"if L: "?lhs S"for S proof - obtainUwhereU: "S = U ∩∩U""U⊆ Collect P""countable U" using L unfolding relative_to_def intersection_of_def by auto show ?thesis unfolding relative_to_def intersection_of_def proof (intro exI conjI) show"U ∩ (∩X∈U. U ∩ X) = S""(∩) U ` U⊆ {T. ∃Ua. P Ua ∧ U ∩ Ua = T}" usingUby blast+ show"countable ((∩) U ` U)" by (simp add: ‹countable U›) qed auto qed moreoverhave"?lhs S"if R: "?rhs S"for S proof - obtainUwhere"S = U ∩∩U""∀T∈U. ∃V. P V ∧ U ∩ V = T""countable U" using R unfolding relative_to_def intersection_of_def by auto thenobtain f where f: "∧T. T ∈U==> P (f T)""∧T. T ∈U==> U ∩ (f T) = T" by metis thenhave"f ` U⊆ Collect P" by auto moreoverhave eq: "U ∩∩ (f ` U) = U ∩∩U" using f by auto ultimatelyshow ?thesis unfolding relative_to_def intersection_of_def ‹S = U ∩∩U› using‹countable U› countable_image by auto qed ultimatelyshow ?thesis by blast qed
lemma countable_union_of_inc: "P S ==> (countable union_of P) S" by (simp add: union_of_inc)
lemma countable_intersection_of_inc: "P S ==> (countable intersection_of P) S" by (simp add: intersection_of_inc)
lemma countable_union_of_complement: "(countable union_of P) S ⟷ (countable intersection_of (λS. P(-S))) (-S)"
(is"?lhs=?rhs") proof assume ?lhs thenobtainUwhere"countable U"andU: "U⊆ Collect P""∪U = S" by (metis union_of_def)
define U' where"U' ≡ (λC. -C) ` U" have"U' ⊆ {S. P (- S)}""∩U' = -S" usingU'_defUby auto thenshow ?rhs unfolding intersection_of_def by (metis U'_def‹countable U› countable_image) next assume ?rhs thenobtainUwhere"countable U"andU: "U⊆ {S. P (- S)}""∩U = -S" by (metis intersection_of_def)
define U' where"U' ≡ (λC. -C) ` U" have"U' ⊆ Collect P""∪U' = S" usingU'_defUby auto thenshow ?lhs unfolding union_of_def by (metis U'_def‹countable U› countable_image) qed
lemma countable_intersection_of_complement: "(countable intersection_of P) S ⟷ (countable union_of (λS. P(- S))) (- S)" by (simp add: countable_union_of_complement)
lemma countable_union_of_explicit: assumes"P {}" shows"(countable union_of P) S ⟷ (∃T. (∀n::nat. P(T n)) ∧∪(range T) = S)" (is"?lhs=?rhs") proof assume ?lhs thenobtainUwhere"countable U"andU: "U⊆ Collect P""∪U = S" by (metis union_of_def) thenshow ?rhs by (metis SUP_bot Sup_empty assms from_nat_into mem_Collect_eq range_from_nat_into subsetD) next assume ?rhs thenshow ?lhs by (metis countableI_type countable_image image_subset_iff mem_Collect_eq union_of_def) qed
lemma countable_union_of_ascending: assumes empty: "P {}"and Un: "∧T U. [P T; P U]==> P(T ∪ U)" shows"(countable union_of P) S ⟷ (∃T. (∀n. P(T n)) ∧ (∀n. T n ⊆ T(Suc n)) ∧∪(range T) = S)" (is"?lhs=?rhs") proof assume ?lhs thenobtain T where T: "∧n::nat. P(T n)""∪(range T) = S" by (meson empty countable_union_of_explicit) have"P (∪ (T ` {..n}))"for n by (induction n) (auto simp: atMost_Suc Un T) with T show ?rhs by (rule_tac x="λn. ∪k≤n. T k"in exI) force next assume ?rhs thenshow ?lhs using empty countable_union_of_explicit by auto qed
lemma countable_union_of_idem [simp]: "countable union_of countable union_of P = countable union_of P" (is"?lhs=?rhs") proof fix S show"(countable union_of countable union_of P) S = (countable union_of P) S" proof assume L: "?lhs S" thenobtainUwhere"countable U"andU: "U⊆ Collect (countable union_of P)""∪U = S" by (metis union_of_def) thenhave"∀U ∈U. ∃V. countable V∧V⊆ Collect P ∧ U = ∪V" by (metis Ball_Collect union_of_def) thenobtainFwhereF: "∀U ∈U. countable (F U) ∧F U ⊆ Collect P ∧ U = ∪(F U)" by metis have"countable (∪ (F ` U))" usingF‹countable U›by blast moreoverhave"∪ (F ` U) ⊆ Collect P" by (simp add: Sup_le_iff F) moreoverhave"∪ (∪ (F ` U)) = S" by auto (metis Union_iff FU(2))+ ultimatelyshow"?rhs S" by (meson union_of_def) qed (simp add: countable_union_of_inc) qed
lemma countable_intersection_of_idem [simp]: "countable intersection_of countable intersection_of P = countable intersection_of P" by (force simp: countable_intersection_of_complement)
lemma countable_union_of_Int: assumes S: "(countable union_of P) S"and T: "(countable union_of P) T" and Int: "∧S T. P S ∧ P T ==> P(S ∩ T)" shows"(countable union_of P) (S ∩ T)" proof - obtainUwhere"countable U"andU: "U⊆ Collect P""∪U = S" using S by (metis union_of_def) obtainVwhere"countable V"andV: "V⊆ Collect P""∪V = T" using T by (metis union_of_def) have"∧U V. [U ∈U; V ∈V]==> (countable union_of P) (U ∩ V)" usingUVby (metis Ball_Collect countable_union_of_inc local.Int) thenhave"(countable union_of P) (∪U∈U. ∪V∈V. U ∩ V)" by (meson ‹countable U›‹countable V› countable_union_of_UN) moreoverhave"S ∩ T = (∪U∈U. ∪V∈V. U ∩ V)" by (simp add: UV) ultimatelyshow ?thesis by presburger qed
lemma countable_intersection_of_union: assumes S: "(countable intersection_of P) S"and T: "(countable intersection_of P) T" and Un: "∧S T. P S ∧ P T ==> P(S ∪ T)" shows"(countable intersection_of P) (S ∪ T)" by (metis (mono_tags, lifting) Compl_Int S T Un compl_sup countable_intersection_of_complement countable_union_of_Int)
end
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.20 Sekunden
(vorverarbeitet am 2026-04-27)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.