@@ -923,15 +923,21 @@ begin
923
923
apply measure_union_le
924
924
end
925
925
926
- lemma restrict_Union_apply [encodable ι] {s : ι → set α} (hd : pairwise (disjoint on s))
926
+ lemma restrict_Union_apply_ae [encodable ι] {s : ι → set α}
927
+ (hd : pairwise (λ i j, μ (s i ∩ s j) = 0 ))
927
928
(hm : ∀ i, measurable_set (s i)) {t : set α} (ht : measurable_set t) :
928
929
μ.restrict (⋃ i, s i) t = ∑' i, μ.restrict (s i) t :=
929
930
begin
930
931
simp only [restrict_apply, ht, inter_Union],
931
- exact measure_Union (λ i j hij, (hd i j hij).mono inf_le_right inf_le_right)
932
- (λ i, ht.inter (hm i ))
932
+ exact measure_Union_of_null_inter (λ i, ht.inter (hm _)) (λ i j hne, measure_mono_null
933
+ (inter_subset_inter (inter_subset_right _ _) (inter_subset_right _ _)) (hd i j hne ))
933
934
end
934
935
936
+ lemma restrict_Union_apply [encodable ι] {s : ι → set α} (hd : pairwise (disjoint on s))
937
+ (hm : ∀ i, measurable_set (s i)) {t : set α} (ht : measurable_set t) :
938
+ μ.restrict (⋃ i, s i) t = ∑' i, μ.restrict (s i) t :=
939
+ restrict_Union_apply_ae (λ i j hij, by simp [set.disjoint_iff_inter_eq_empty.1 (hd i j hij)]) hm ht
940
+
935
941
lemma restrict_Union_apply_eq_supr [encodable ι] {s : ι → set α}
936
942
(hm : ∀ i, measurable_set (s i)) (hd : directed (⊆) s) {t : set α} (ht : measurable_set t) :
937
943
μ.restrict (⋃ i, s i) t = ⨆ i, μ.restrict (s i) t :=
@@ -1196,6 +1202,30 @@ to_measure_apply _ _ hs
1196
1202
lemma le_sum (μ : ι → measure α) (i : ι) : μ i ≤ sum μ :=
1197
1203
λ s hs, by simp only [sum_apply μ hs, ennreal.le_tsum i]
1198
1204
1205
+ @[simp] lemma sum_apply_eq_zero [encodable ι] {μ : ι → measure α} {s : set α} :
1206
+ sum μ s = 0 ↔ ∀ i, μ i s = 0 :=
1207
+ begin
1208
+ refine ⟨λ h i, nonpos_iff_eq_zero.1 $ h ▸ le_iff'.1 (le_sum μ i) _, λ h, nonpos_iff_eq_zero.1 _⟩,
1209
+ rcases exists_measurable_superset_forall_eq μ s with ⟨t, hst, htm, ht⟩,
1210
+ calc sum μ s ≤ sum μ t : measure_mono hst
1211
+ ... = 0 : by simp *
1212
+ end
1213
+
1214
+ lemma sum_apply_eq_zero' {μ : ι → measure α} {s : set α} (hs : measurable_set s) :
1215
+ sum μ s = 0 ↔ ∀ i, μ i s = 0 :=
1216
+ by simp [hs]
1217
+
1218
+ lemma ae_sum_iff [encodable ι] {μ : ι → measure α} {p : α → Prop } :
1219
+ (∀ᵐ x ∂(sum μ), p x) ↔ ∀ i, ∀ᵐ x ∂(μ i), p x :=
1220
+ sum_apply_eq_zero
1221
+
1222
+ lemma ae_sum_iff' {μ : ι → measure α} {p : α → Prop } (h : measurable_set {x | p x}) :
1223
+ (∀ᵐ x ∂(sum μ), p x) ↔ ∀ i, ∀ᵐ x ∂(μ i), p x :=
1224
+ sum_apply_eq_zero' h.compl
1225
+
1226
+ @[simp] lemma ae_sum_eq [encodable ι] (μ : ι → measure α) : (sum μ).ae = ⨆ i, (μ i).ae :=
1227
+ filter.ext $ λ s, ae_sum_iff.trans mem_supr.symm
1228
+
1199
1229
@[simp] lemma sum_bool (f : bool → measure α) : sum f = f tt + f ff :=
1200
1230
ext $ λ s hs, by simp [hs, tsum_fintype]
1201
1231
@@ -1237,6 +1267,11 @@ by simpa using (map_eq_sum μ id measurable_id).symm
1237
1267
omit m0
1238
1268
end sum
1239
1269
1270
+ lemma restrict_Union_ae [encodable ι] {s : ι → set α} (hd : pairwise (λ i j, μ (s i ∩ s j) = 0 ))
1271
+ (hm : ∀ i, measurable_set (s i)) :
1272
+ μ.restrict (⋃ i, s i) = sum (λ i, μ.restrict (s i)) :=
1273
+ ext $ λ t ht, by simp only [sum_apply _ ht, restrict_Union_apply_ae hd hm ht]
1274
+
1240
1275
lemma restrict_Union [encodable ι] {s : ι → set α} (hd : pairwise (disjoint on s))
1241
1276
(hm : ∀ i, measurable_set (s i)) :
1242
1277
μ.restrict (⋃ i, s i) = sum (λ i, μ.restrict (s i)) :=
@@ -2702,6 +2737,10 @@ variables [measurable_space α] [measurable_space β]
2702
2737
lemma subsingleton.ae_measurable [subsingleton α] : ae_measurable f μ :=
2703
2738
subsingleton.measurable.ae_measurable
2704
2739
2740
+ @[nontriviality, measurability]
2741
+ lemma ae_measurable_of_subsingleton_codomain [subsingleton β] : ae_measurable f μ :=
2742
+ (measurable_of_subsingleton_codomain f).ae_measurable
2743
+
2705
2744
@[simp, measurability] lemma ae_measurable_zero_measure : ae_measurable f (0 : measure α) :=
2706
2745
begin
2707
2746
nontriviality α, inhabit α,
@@ -2728,34 +2767,57 @@ lemma ae_inf_principal_eq_mk {s} (h : ae_measurable f (μ.restrict s)) :
2728
2767
f =ᶠ[μ.ae ⊓ 𝓟 s] h.mk f :=
2729
2768
le_ae_restrict h.ae_eq_mk
2730
2769
2770
+ @[measurability]
2771
+ lemma sum_measure [encodable ι] {μ : ι → measure α} (h : ∀ i, ae_measurable f (μ i)) :
2772
+ ae_measurable f (sum μ) :=
2773
+ begin
2774
+ nontriviality β, inhabit β,
2775
+ set s : ι → set α := λ i, to_measurable (μ i) {x | f x ≠ (h i).mk f x},
2776
+ have hsμ : ∀ i, μ i (s i) = 0 ,
2777
+ { intro i, rw measure_to_measurable, exact (h i).ae_eq_mk },
2778
+ have hsm : measurable_set (⋂ i, s i),
2779
+ from measurable_set.Inter (λ i, measurable_set_to_measurable _ _),
2780
+ have hs : ∀ i x, x ∉ s i → f x = (h i).mk f x,
2781
+ { intros i x hx, contrapose! hx, exact subset_to_measurable _ _ hx },
2782
+ set g : α → β := (⋂ i, s i).piecewise (const α (default β)) f,
2783
+ refine ⟨g, measurable_of_restrict_of_restrict_compl hsm _ _, ae_sum_iff.mpr $ λ i, _⟩,
2784
+ { rw [restrict_piecewise], simp only [set.restrict, const], exact measurable_const },
2785
+ { rw [restrict_piecewise_compl, compl_Inter],
2786
+ intros t ht,
2787
+ refine ⟨⋃ i, ((h i).mk f ⁻¹' t) ∩ (s i)ᶜ, measurable_set.Union $
2788
+ λ i, (measurable_mk _ ht).inter (measurable_set_to_measurable _ _).compl, _⟩,
2789
+ ext ⟨x, hx⟩,
2790
+ simp only [mem_preimage, mem_Union, subtype.coe_mk, set.restrict, mem_inter_eq,
2791
+ mem_compl_iff] at hx ⊢,
2792
+ split,
2793
+ { rintro ⟨i, hxt, hxs⟩, rwa hs _ _ hxs },
2794
+ { rcases hx with ⟨i, hi⟩, rw hs _ _ hi, exact λ h, ⟨i, h, hi⟩ } },
2795
+ { refine measure_mono_null (λ x (hx : f x ≠ g x), _) (hsμ i),
2796
+ contrapose! hx, refine (piecewise_eq_of_not_mem _ _ _ _).symm,
2797
+ exact λ h, hx (mem_Inter.1 h i) }
2798
+ end
2799
+
2800
+ @[simp] lemma _root_.ae_measurable_sum_measure_iff [encodable ι] {μ : ι → measure α} :
2801
+ ae_measurable f (sum μ) ↔ ∀ i, ae_measurable f (μ i) :=
2802
+ ⟨λ h i, h.mono_measure (le_sum _ _), sum_measure⟩
2803
+
2804
+ @[simp] lemma _root_.ae_measurable_add_measure_iff :
2805
+ ae_measurable f (μ + ν) ↔ ae_measurable f μ ∧ ae_measurable f ν :=
2806
+ by { rw [← sum_cond, ae_measurable_sum_measure_iff, bool.forall_bool, and.comm], refl }
2807
+
2731
2808
@[measurability]
2732
2809
lemma add_measure {f : α → β} (hμ : ae_measurable f μ) (hν : ae_measurable f ν) :
2733
2810
ae_measurable f (μ + ν) :=
2734
- begin
2735
- let s := {x | f x ≠ hμ.mk f x},
2736
- have : μ s = 0 := hμ.ae_eq_mk,
2737
- obtain ⟨t, st, t_meas, μt⟩ : ∃ t, s ⊆ t ∧ measurable_set t ∧ μ t = 0 :=
2738
- exists_measurable_superset_of_null this ,
2739
- let g : α → β := t.piecewise (hν.mk f) (hμ.mk f),
2740
- refine ⟨g, measurable.piecewise t_meas hν.measurable_mk hμ.measurable_mk, _⟩,
2741
- change μ {x | f x ≠ g x} + ν {x | f x ≠ g x} = 0 ,
2742
- suffices : μ {x | f x ≠ g x} = 0 ∧ ν {x | f x ≠ g x} = 0 , by simp [this.1 , this.2 ],
2743
- have ht : {x | f x ≠ g x} ⊆ t,
2744
- { assume x hx,
2745
- by_contra h,
2746
- simp only [g, h, mem_set_of_eq, ne.def, not_false_iff, piecewise_eq_of_not_mem] at hx,
2747
- exact h (st hx) },
2748
- split,
2749
- { have : μ {x | f x ≠ g x} ≤ μ t := measure_mono ht,
2750
- rw μt at this ,
2751
- exact le_antisymm this bot_le },
2752
- { have : {x | f x ≠ g x} ⊆ {x | f x ≠ hν.mk f x},
2753
- { assume x hx,
2754
- simpa [ht hx, g] using hx },
2755
- apply le_antisymm _ bot_le,
2756
- calc ν {x | f x ≠ g x} ≤ ν {x | f x ≠ hν.mk f x} : measure_mono this
2757
- ... = 0 : hν.ae_eq_mk }
2758
- end
2811
+ ae_measurable_add_measure_iff.2 ⟨hμ, hν⟩
2812
+
2813
+ @[measurability]
2814
+ protected lemma Union [encodable ι] {s : ι → set α} (h : ∀ i, ae_measurable f (μ.restrict (s i))) :
2815
+ ae_measurable f (μ.restrict (⋃ i, s i)) :=
2816
+ (sum_measure h).mono_measure $ restrict_Union_le
2817
+
2818
+ @[simp] lemma _root_.ae_measurable_Union_iff [encodable ι] {s : ι → set α} :
2819
+ ae_measurable f (μ.restrict (⋃ i, s i)) ↔ ∀ i, ae_measurable f (μ.restrict (s i)) :=
2820
+ ⟨λ h i, h.mono_measure $ restrict_mono (subset_Union _ _) le_rfl, ae_measurable.Union⟩
2759
2821
2760
2822
@[measurability]
2761
2823
lemma smul_measure (h : ae_measurable f μ) (c : ℝ≥0 ∞) :
@@ -2779,7 +2841,7 @@ lemma prod_mk {γ : Type*} [measurable_space γ] {f : α → β} {g : α → γ}
2779
2841
lemma subtype_mk (h : ae_measurable f μ) {s : set β} {hfs : ∀ x, f x ∈ s} (hs : measurable_set s) :
2780
2842
ae_measurable (cod_restrict f s hfs) μ :=
2781
2843
begin
2782
- casesI is_empty_or_nonempty α, { exact (measurable_of_empty _).ae_measurable } , inhabit α,
2844
+ nontriviality α , inhabit α,
2783
2845
rcases h with ⟨g, hgm, hg⟩,
2784
2846
rcases hs.exists_measurable_proj ⟨f (default α), hfs _⟩ with ⟨π, hπm, hπ⟩,
2785
2847
refine ⟨π ∘ g, hπm.comp hgm, hg.mono $ λ x hx, _⟩,
@@ -2820,12 +2882,6 @@ lemma ae_measurable_restrict_iff_comap_subtype {s : set α} (hs : measurable_set
2820
2882
ae_measurable f (μ.restrict s) ↔ ae_measurable (f ∘ coe : s → β) (comap coe μ) :=
2821
2883
by rw [← map_comap_subtype_coe hs, (measurable_embedding.subtype_coe hs).ae_measurable_map_iff]
2822
2884
2823
- @[simp] lemma ae_measurable_add_measure_iff :
2824
- ae_measurable f (μ + ν) ↔ ae_measurable f μ ∧ ae_measurable f ν :=
2825
- ⟨λ h, ⟨h.mono_measure (measure.le_add_right (le_refl _)),
2826
- h.mono_measure (measure.le_add_left (le_refl _))⟩,
2827
- λ h, h.1 .add_measure h.2 ⟩
2828
-
2829
2885
@[simp, to_additive] lemma ae_measurable_one [has_one β] : ae_measurable (λ a : α, (1 : β)) μ :=
2830
2886
measurable_one.ae_measurable
2831
2887
0 commit comments