diff --git a/src/measure_theory/integral/integrable_on.lean b/src/measure_theory/integral/integrable_on.lean index ed0025710a85a..0da2f77c5e23e 100644 --- a/src/measure_theory/integral/integrable_on.lean +++ b/src/measure_theory/integral/integrable_on.lean @@ -110,6 +110,15 @@ lemma integrable_on.congr_set_ae (h : integrable_on f t μ) (hst : s =ᵐ[μ] t) integrable_on f s μ := h.mono_set_ae hst.le +lemma integrable_on.congr_fun' (h : integrable_on f s μ) (hst : f =ᵐ[μ.restrict s] g) : + integrable_on g s μ := +integrable.congr h hst + +lemma integrable_on.congr_fun (h : integrable_on f s μ) (hst : eq_on f g s) + (hs : measurable_set s) : + integrable_on g s μ := +h.congr_fun' ((ae_restrict_iff' hs).2 (eventually_of_forall hst)) + lemma integrable.integrable_on (h : integrable f μ) : integrable_on f s μ := h.mono_measure $ measure.restrict_le_self diff --git a/src/measure_theory/integral/interval_integral.lean b/src/measure_theory/integral/interval_integral.lean index 5e8be14e31677..8b8ddc3aebdbd 100644 --- a/src/measure_theory/integral/interval_integral.lean +++ b/src/measure_theory/integral/interval_integral.lean @@ -789,23 +789,6 @@ lemma interval_integrable_iff_integrable_Icc_of_le interval_integrable f μ a b ↔ integrable_on f (Icc a b) μ := by rw [interval_integrable_iff_integrable_Ioc_of_le hab, integrable_on_Icc_iff_integrable_on_Ioc] -lemma integral_Icc_eq_integral_Ioc' {f : α → E} {a b : α} (ha : μ {a} = 0) : - ∫ t in Icc a b, f t ∂μ = ∫ t in Ioc a b, f t ∂μ := -begin - cases le_or_lt a b with hab hab, - { have : μ.restrict (Icc a b) = μ.restrict (Ioc a b), - { rw [← Ioc_union_left hab, - measure_theory.measure.restrict_union _ measurable_set_Ioc (measurable_set_singleton a)], - { simp [measure_theory.measure.restrict_zero_set ha] }, - { simp } }, - rw this }, - { simp [hab, hab.le] } -end - -lemma integral_Icc_eq_integral_Ioc {f : α → E} {a b : α} [has_no_atoms μ] : - ∫ t in Icc a b, f t ∂μ = ∫ t in Ioc a b, f t ∂μ := -integral_Icc_eq_integral_Ioc' $ measure_singleton a - /-- If two functions are equal in the relevant interval, their interval integrals are also equal. -/ lemma integral_congr {a b : α} (h : eq_on f g (interval a b)) : ∫ x in a..b, f x ∂μ = ∫ x in a..b, g x ∂μ := diff --git a/src/measure_theory/integral/set_integral.lean b/src/measure_theory/integral/set_integral.lean index 44033d43c98d3..db33e43f8f819 100644 --- a/src/measure_theory/integral/set_integral.lean +++ b/src/measure_theory/integral/set_integral.lean @@ -384,6 +384,22 @@ lemma set_integral_trim {α} {m m0 : measurable_space α} {μ : measure α} (hm ∫ x in s, f x ∂μ = ∫ x in s, f x ∂(μ.trim hm) := by rwa [integral_trim hm hf_meas, restrict_trim hm μ] +lemma integral_Icc_eq_integral_Ioc' [partial_order α] {f : α → E} {a b : α} (ha : μ {a} = 0) : + ∫ t in Icc a b, f t ∂μ = ∫ t in Ioc a b, f t ∂μ := +set_integral_congr_set_ae (Ioc_ae_eq_Icc' ha).symm + +lemma integral_Ioc_eq_integral_Ioo' [partial_order α] {f : α → E} {a b : α} (hb : μ {b} = 0) : + ∫ t in Ioc a b, f t ∂μ = ∫ t in Ioo a b, f t ∂μ := +set_integral_congr_set_ae (Ioo_ae_eq_Ioc' hb).symm + +lemma integral_Icc_eq_integral_Ioc [partial_order α] {f : α → E} {a b : α} [has_no_atoms μ] : + ∫ t in Icc a b, f t ∂μ = ∫ t in Ioc a b, f t ∂μ := +integral_Icc_eq_integral_Ioc' $ measure_singleton a + +lemma integral_Ioc_eq_integral_Ioo [partial_order α] {f : α → E} {a b : α} [has_no_atoms μ] : + ∫ t in Ioc a b, f t ∂μ = ∫ t in Ioo a b, f t ∂μ := +integral_Ioc_eq_integral_Ioo' $ measure_singleton b + end normed_group section mono diff --git a/src/measure_theory/measure/measure_space.lean b/src/measure_theory/measure/measure_space.lean index 10f16e49ce5e8..6f0a11448c5ab 100644 --- a/src/measure_theory/measure/measure_space.lean +++ b/src/measure_theory/measure/measure_space.lean @@ -1649,6 +1649,35 @@ lemma ae_eventually_not_mem {s : ℕ → set α} (hs : ∑' i, μ (s i) ≠ ∞) ∀ᵐ x ∂ μ, ∀ᶠ n in at_top, x ∉ s n := measure_set_of_frequently_eq_zero hs +section intervals +variables [partial_order α] {a b : α} + +lemma Iio_ae_eq_Iic' (ha : μ {a} = 0) : Iio a =ᵐ[μ] Iic a := +by rw [←Iic_diff_right, diff_ae_eq_self, measure_mono_null (set.inter_subset_right _ _) ha] + +lemma Ioi_ae_eq_Ici' (ha : μ {a} = 0) : Ioi a =ᵐ[μ] Ici a := +@Iio_ae_eq_Iic' (order_dual α) ‹_› ‹_› _ _ ha + +lemma Ioo_ae_eq_Ioc' (hb : μ {b} = 0) : Ioo a b =ᵐ[μ] Ioc a b := +(ae_eq_refl _).inter (Iio_ae_eq_Iic' hb) + +lemma Ioc_ae_eq_Icc' (ha : μ {a} = 0) : Ioc a b =ᵐ[μ] Icc a b := +(Ioi_ae_eq_Ici' ha).inter (ae_eq_refl _) + +lemma Ioo_ae_eq_Ico' (ha : μ {a} = 0) : Ioo a b =ᵐ[μ] Ico a b := +(Ioi_ae_eq_Ici' ha).inter (ae_eq_refl _) + +lemma Ioo_ae_eq_Icc' (ha : μ {a} = 0) (hb : μ {b} = 0) : Ioo a b =ᵐ[μ] Icc a b := +(Ioi_ae_eq_Ici' ha).inter (Iio_ae_eq_Iic' hb) + +lemma Ico_ae_eq_Icc' (hb : μ {b} = 0) : Ico a b =ᵐ[μ] Icc a b := +(ae_eq_refl _).inter (Iio_ae_eq_Iic' hb) + +lemma Ico_ae_eq_Ioc' (ha : μ {a} = 0) (hb : μ {b} = 0) : Ico a b =ᵐ[μ] Ioc a b := +(Ioo_ae_eq_Ico' ha).symm.trans (Ioo_ae_eq_Ioc' hb) + +end intervals + section dirac variable [measurable_space α] @@ -1867,29 +1896,28 @@ union_ae_eq_right.2 $ measure_mono_null (diff_subset _ _) (measure_singleton _) variables [partial_order α] {a b : α} lemma Iio_ae_eq_Iic : Iio a =ᵐ[μ] Iic a := -by simp only [← Iic_diff_right, diff_ae_eq_self, - measure_mono_null (set.inter_subset_right _ _) (measure_singleton a)] +Iio_ae_eq_Iic' (measure_singleton a) lemma Ioi_ae_eq_Ici : Ioi a =ᵐ[μ] Ici a := -@Iio_ae_eq_Iic (order_dual α) ‹_› ‹_› _ _ _ +Ioi_ae_eq_Ici' (measure_singleton a) lemma Ioo_ae_eq_Ioc : Ioo a b =ᵐ[μ] Ioc a b := -(ae_eq_refl _).inter Iio_ae_eq_Iic +Ioo_ae_eq_Ioc' (measure_singleton b) lemma Ioc_ae_eq_Icc : Ioc a b =ᵐ[μ] Icc a b := -Ioi_ae_eq_Ici.inter (ae_eq_refl _) +Ioc_ae_eq_Icc' (measure_singleton a) lemma Ioo_ae_eq_Ico : Ioo a b =ᵐ[μ] Ico a b := -Ioi_ae_eq_Ici.inter (ae_eq_refl _) +Ioo_ae_eq_Ico' (measure_singleton a) lemma Ioo_ae_eq_Icc : Ioo a b =ᵐ[μ] Icc a b := -Ioi_ae_eq_Ici.inter Iio_ae_eq_Iic +Ioo_ae_eq_Icc' (measure_singleton a) (measure_singleton b) lemma Ico_ae_eq_Icc : Ico a b =ᵐ[μ] Icc a b := -(ae_eq_refl _).inter Iio_ae_eq_Iic +Ico_ae_eq_Icc' (measure_singleton b) lemma Ico_ae_eq_Ioc : Ico a b =ᵐ[μ] Ioc a b := -Ioo_ae_eq_Ico.symm.trans Ioo_ae_eq_Ioc +Ico_ae_eq_Ioc' (measure_singleton a) (measure_singleton b) end no_atoms