@@ -645,87 +645,87 @@ open intervalIntegral
645645
646646variable {E : Type *} [NormedAddCommGroup E] [NormedSpace ℝ E] {μ : Measure ℝ} {f : ℝ → E}
647647
648- theorem continuousWithinAt_Ici_primitive_Ioi {a b ₀ : ℝ} (hf : IntegrableOn f (Ioi a) μ)
649- (hb₀ : a ≤ b₀) : ContinuousWithinAt (fun b ↦ ∫ x in Ioi b, f x ∂μ) (Ici b ₀) b ₀ := by
648+ theorem continuousWithinAt_Ici_primitive_Ioi {a₀ : ℝ} (hf : IntegrableOn f (Ioi a₀ ) μ)
649+ : ContinuousWithinAt (fun b ↦ ∫ x in Ioi b, f x ∂μ) (Ici a ₀) a ₀ := by
650650 simp_rw [← integral_indicator measurableSet_Ioi]
651- refine tendsto_integral_filter_of_dominated_convergence ((Ioi a).indicator (norm ∘ f)) ?_ ?_ ?_ ?_
652- · filter_upwards [self_mem_nhdsWithin] with b hb
651+ apply tendsto_integral_filter_of_dominated_convergence ((Ioi a₀ ).indicator (norm ∘ f))
652+ · filter_upwards [self_mem_nhdsWithin] with a ha
653653 rw [aestronglyMeasurable_indicator_iff measurableSet_Ioi]
654- exact (hf.mono_set (Ioi_subset_Ioi (hb₀.trans hb) )).aestronglyMeasurable
655- · filter_upwards [self_mem_nhdsWithin] with b hb
654+ exact (hf.mono_set (Ioi_subset_Ioi ha )).aestronglyMeasurable
655+ · filter_upwards [self_mem_nhdsWithin] with a ha
656656 refine ae_of_all _ fun x ↦ ?_
657657 rw [norm_indicator_eq_indicator_norm]
658658 apply indicator_le_indicator_of_subset (Ioi_subset_Ioi (by grind)) (fun a ↦ norm_nonneg (f a))
659659 · simpa [integrable_indicator_iff measurableSet_Ioi] using hf.norm
660660 · refine ae_of_all _ fun x ↦ ?_
661661 simp only [indicator_apply, mem_Ioi]
662- by_cases hx : b ₀ < x <;> apply tendsto_const_nhds.congr'
663- · filter_upwards [mem_nhdsWithin_of_mem_nhds (Iio_mem_nhds hx)] with b hb using by grind
664- · filter_upwards [self_mem_nhdsWithin] with b hb using by grind
665-
666- theorem continuousOn_Ici_primitive_Ioi [NoAtoms μ] {a : ℝ} (hf : IntegrableOn f (Ioi a) μ) :
667- ContinuousOn (fun b ↦ ∫ x in Ioi b, f x ∂μ) (Ici a) := by
668- intro b₀ hb₀
669- rw [mem_Ici] at hb₀
662+ by_cases hx : a ₀ < x <;> apply tendsto_const_nhds.congr'
663+ · filter_upwards [mem_nhdsWithin_of_mem_nhds (Iio_mem_nhds hx)] with a ha using by grind
664+ · filter_upwards [self_mem_nhdsWithin] with a ha using by grind
665+
666+ theorem continuousOn_Ici_primitive_Ioi [NoAtoms μ] {a₀ : ℝ} (hf : IntegrableOn f (Ioi a₀ ) μ) :
667+ ContinuousOn (fun b ↦ ∫ x in Ioi b, f x ∂μ) (Ici a₀ ) := by
668+ intro a ha
669+ rw [mem_Ici] at ha
670670 rw [continuousWithinAt_iff_continuous_left_right]
671671 constructor
672672 · rw [Ici_inter_Iic]
673- have h_int : IntervalIntegrable f μ a b₀ := by
674- rw [intervalIntegrable_iff_integrableOn_Ioc_of_le hb₀ ]
673+ have h_int : IntervalIntegrable f μ a₀ a := by
674+ rw [intervalIntegrable_iff_integrableOn_Ioc_of_le ha ]
675675 exact hf.mono_set Ioc_subset_Ioi_self
676- have h_split : ∀ b ∈ Icc a b₀ , ∫ x in Ioi b, f x ∂μ =
677- (∫ x in Ioi a, f x ∂μ) - ∫ x in a..b, f x ∂μ := by
676+ have h_split : ∀ b ∈ Icc a₀ a , ∫ x in Ioi b, f x ∂μ =
677+ (∫ x in Ioi a₀ , f x ∂μ) - ∫ x in a₀ ..b, f x ∂μ := by
678678 intro b hb
679679 simp [← integral_Ioi_sub_Ioi hf hb.1 ]
680- have h_cwa : ContinuousWithinAt (fun b ↦ ∫ x in a..b, f x ∂μ) (Icc a b₀) b₀ :=
681- continuousWithinAt_primitive (measure_singleton b₀ ) (by simpa [hb₀ ])
682- exact (continuousWithinAt_const.sub h_cwa).congr h_split (h_split b₀ (right_mem_Icc.2 hb₀ ))
683- · simpa [hb₀ ] using hf.continuousWithinAt_Ici_primitive_Ioi hb₀
680+ have h_cwa : ContinuousWithinAt (fun b ↦ ∫ x in a₀ ..b, f x ∂μ) (Icc a₀ a) a :=
681+ continuousWithinAt_primitive (measure_singleton a ) (by simpa [ha ])
682+ exact (continuousWithinAt_const.sub h_cwa).congr h_split (h_split a (right_mem_Icc.2 ha ))
683+ · simpa [ha ] using ( hf.mono_set (Ioi_subset_Ioi ha)).continuousWithinAt_Ici_primitive_Ioi
684684
685- theorem continuousWithinAt_Iic_primitive_Iio {a b ₀ : ℝ} (hf : IntegrableOn f (Iio a) μ)
686- (hb₀ : b₀ ≤ a) : ContinuousWithinAt (fun b ↦ ∫ x in Iio b, f x ∂μ) (Iic b ₀) b ₀ := by
685+ theorem continuousWithinAt_Iic_primitive_Iio {a₀ : ℝ} (hf : IntegrableOn f (Iio a₀ ) μ)
686+ : ContinuousWithinAt (fun b ↦ ∫ x in Iio b, f x ∂μ) (Iic a ₀) a ₀ := by
687687 simp_rw [← integral_indicator measurableSet_Iio]
688- refine tendsto_integral_filter_of_dominated_convergence ((Iio a).indicator (norm ∘ f)) ?_ ?_ ?_ ?_
689- · filter_upwards [self_mem_nhdsWithin] with b hb
688+ apply tendsto_integral_filter_of_dominated_convergence ((Iio a₀ ).indicator (norm ∘ f))
689+ · filter_upwards [self_mem_nhdsWithin] with a ha
690690 rw [aestronglyMeasurable_indicator_iff measurableSet_Iio]
691- exact (hf.mono_set (Iio_subset_Iio (hb.trans hb₀) )).aestronglyMeasurable
692- · filter_upwards [self_mem_nhdsWithin] with b hb
691+ exact (hf.mono_set (Iio_subset_Iio ha )).aestronglyMeasurable
692+ · filter_upwards [self_mem_nhdsWithin] with a ha
693693 refine ae_of_all _ fun x ↦ ?_
694694 rw [norm_indicator_eq_indicator_norm]
695695 apply indicator_le_indicator_of_subset (Iio_subset_Iio (by grind)) (fun a ↦ norm_nonneg (f a))
696696 · simpa [integrable_indicator_iff measurableSet_Iio] using hf.norm
697697 · refine ae_of_all _ fun x ↦ ?_
698698 simp only [indicator_apply, mem_Iio]
699- by_cases hx : x < b ₀ <;> apply tendsto_const_nhds.congr'
700- · filter_upwards [mem_nhdsWithin_of_mem_nhds (Ioi_mem_nhds hx)] with b hb using by grind
701- · filter_upwards [self_mem_nhdsWithin] with b hb using by grind
702-
703- theorem continuousOn_Iic_primitive_Iio [NoAtoms μ] {a : ℝ} (hf : IntegrableOn f (Iio a) μ) :
704- ContinuousOn (fun b ↦ ∫ x in Iio b, f x ∂μ) (Iic a) := by
705- intro b₀ hb₀
706- rw [mem_Iic] at hb₀
699+ by_cases hx : x < a ₀ <;> apply tendsto_const_nhds.congr'
700+ · filter_upwards [mem_nhdsWithin_of_mem_nhds (Ioi_mem_nhds hx)] with a ha using by grind
701+ · filter_upwards [self_mem_nhdsWithin] with a ha using by grind
702+
703+ theorem continuousOn_Iic_primitive_Iio [NoAtoms μ] {a₀ : ℝ} (hf : IntegrableOn f (Iio a₀ ) μ) :
704+ ContinuousOn (fun b ↦ ∫ x in Iio b, f x ∂μ) (Iic a₀ ) := by
705+ intro a ha
706+ rw [mem_Iic] at ha
707707 rw [continuousWithinAt_iff_continuous_left_right]
708708 constructor
709- · simpa [hb₀ ] using hf.continuousWithinAt_Iic_primitive_Iio hb₀
709+ · simpa [ha ] using ( hf.mono_set (Iio_subset_Iio ha)).continuousWithinAt_Iic_primitive_Iio
710710 · rw [Iic_inter_Ici]
711- have h_int : IntervalIntegrable f μ b₀ a := by
712- rw [intervalIntegrable_iff_integrableOn_Ico_of_le hb₀ ]
711+ have h_int : IntervalIntegrable f μ a a₀ := by
712+ rw [intervalIntegrable_iff_integrableOn_Ico_of_le ha ]
713713 exact hf.mono_set Ico_subset_Iio_self
714- have h_split : ∀ b ∈ Icc b₀ a , ∫ x in Iio b, f x ∂μ =
715- (∫ x in Iio a, f x ∂μ) + ∫ x in a..b, f x ∂μ := by
714+ have h_split : ∀ b ∈ Icc a a₀ , ∫ x in Iio b, f x ∂μ =
715+ (∫ x in Iio a₀ , f x ∂μ) + ∫ x in a₀ ..b, f x ∂μ := by
716716 intro b hb
717- simp [integral_symm b a, ← integral_Iio_sub_Iio hf hb.2 ]
718- have h_cwa : ContinuousWithinAt (fun b ↦ ∫ x in a..b, f x ∂μ) (Icc b₀ a) b₀ := by
719- exact continuousWithinAt_primitive (measure_singleton b₀ ) (by simpa [hb₀ ])
720- apply (continuousWithinAt_const.add h_cwa).congr h_split (h_split b₀ (left_mem_Icc.2 hb₀ ))
717+ simp [integral_symm b a₀ , ← integral_Iio_sub_Iio' hf (hf.mono_set (Iio_subset_Iio hb.2 )) ]
718+ have h_cwa : ContinuousWithinAt (fun b ↦ ∫ x in a₀ ..b, f x ∂μ) (Icc a a₀) a := by
719+ exact continuousWithinAt_primitive (measure_singleton a ) (by simpa [ha ])
720+ exact (continuousWithinAt_const.add h_cwa).congr h_split (h_split a (left_mem_Icc.2 ha ))
721721
722- theorem continuousOn_Ici_primitive_Ici [NoAtoms μ] {a : ℝ} (hf : IntegrableOn f (Ici a) μ) :
723- ContinuousOn (fun b ↦ ∫ x in Ici b, f x ∂μ) (Ici a) := by
722+ theorem continuousOn_Ici_primitive_Ici [NoAtoms μ] {a₀ : ℝ} (hf : IntegrableOn f (Ici a₀ ) μ) :
723+ ContinuousOn (fun b ↦ ∫ x in Ici b, f x ∂μ) (Ici a₀ ) := by
724724 simp_rw [integral_Ici_eq_integral_Ioi]
725725 exact (hf.mono_set Ioi_subset_Ici_self).continuousOn_Ici_primitive_Ioi
726726
727- theorem continuousOn_Iic_primitive_Iic [NoAtoms μ] {a : ℝ} (hf : IntegrableOn f (Iic a) μ) :
728- ContinuousOn (fun b ↦ ∫ x in Iic b, f x ∂μ) (Iic a) := by
727+ theorem continuousOn_Iic_primitive_Iic [NoAtoms μ] {a₀ : ℝ} (hf : IntegrableOn f (Iic a₀ ) μ) :
728+ ContinuousOn (fun b ↦ ∫ x in Iic b, f x ∂μ) (Iic a₀ ) := by
729729 simp_rw [integral_Iic_eq_integral_Iio]
730730 exact (hf.mono_set Iio_subset_Iic_self).continuousOn_Iic_primitive_Iio
731731
0 commit comments