Theory Measure_Space_Supplement
theory Measure_Space_Supplement
imports "HOL-Analysis.Measure_Space"
begin
section ‹Supplementary Lemmas for Measure Spaces›
subsection ‹‹σ›-Algebra Generated by a Family of Functions›
definition family_vimage_algebra :: "'a set ⇒ ('a ⇒ 'b) set ⇒ 'b measure ⇒ 'a measure" where
"family_vimage_algebra Ω S M ≡ sigma Ω (⋃f ∈ S. {f -` A ∩ Ω | A. A ∈ M})"
text ‹For singleton \<^term>‹S›, i.e. \<^term>‹S = {f}› for some \<^term>‹f›, the definition simplifies to that of \<^term>‹vimage_algebra›.›
lemma family_vimage_algebra_singleton: "family_vimage_algebra Ω {f} M = vimage_algebra Ω f M" unfolding family_vimage_algebra_def vimage_algebra_def by simp
lemma
shows sets_family_vimage_algebra: "sets (family_vimage_algebra Ω S M) = sigma_sets Ω (⋃f ∈ S. {f -` A ∩ Ω | A. A ∈ M})"
and space_family_vimage_algebra[simp]: "space (family_vimage_algebra Ω S M) = Ω"
by (auto simp add: family_vimage_algebra_def sets_measure_of_conv space_measure_of_conv)
lemma measurable_family_vimage_algebra:
assumes "f ∈ S" "f ∈ Ω → space M"
shows "f ∈ family_vimage_algebra Ω S M →⇩M M"
using assms by (intro measurableI, auto simp add: sets_family_vimage_algebra)
lemma measurable_family_vimage_algebra_singleton:
assumes "f ∈ Ω → space M"
shows "f ∈ family_vimage_algebra Ω {f} M →⇩M M"
using assms measurable_family_vimage_algebra by blast
text ‹A collection of functions are measurable with respect to some ‹σ›-algebra \<^term>‹N›, if and only if the ‹σ›-algebra they generate is contained in \<^term>‹N›.›
lemma measurable_family_iff_sets:
shows "(S ⊆ N →⇩M M) ⟷ S ⊆ space N → space M ∧ family_vimage_algebra (space N) S M ⊆ N"
proof (standard, goal_cases)
case 1
hence subset: "S ⊆ space N → space M" using measurable_space by fast
have "{f -` A ∩ space N |A. A ∈ M} ⊆ N" if "f ∈ S" for f using measurable_iff_sets[unfolded family_vimage_algebra_singleton[symmetric], of f] 1 subset that by (fastforce simp add: sets_family_vimage_algebra)
then show ?case unfolding sets_family_vimage_algebra using sets.sigma_algebra_axioms by (simp add: subset, intro sigma_algebra.sigma_sets_subset, blast+)
next
case 2
hence subset: "S ⊆ space N → space M" by simp
show ?case
proof (standard, goal_cases)
case (1 x)
have "family_vimage_algebra (space N) {x} M ⊆ N" by (metis (no_types, lifting) 1 2 sets_family_vimage_algebra SUP_le_iff sigma_sets_le_sets_iff singletonD)
thus ?case using measurable_iff_sets[unfolded family_vimage_algebra_singleton[symmetric]] subset[THEN subsetD, OF 1] by fast
qed
qed
lemma family_vimage_algebra_diff:
shows "family_vimage_algebra Ω S M = sigma Ω (sets (family_vimage_algebra Ω (S - I) M) ∪ family_vimage_algebra Ω (S ∩ I) M)"
using sets.space_closed space_measure_of_conv
unfolding family_vimage_algebra_def sets_family_vimage_algebra
by (intro sigma_eqI, blast, fastforce)
(intro sigma_sets_eqI, blast, simp add: sets_measure_of_conv split: if_splits,
meson Diff_subset Sup_subset_mono in_mono inf_sup_ord(1) sigma_sets_subseteq subset_image_iff, fastforce+)
end