Theorem: MeasureTheory.integral_trim
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: borelize F
state_before: α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
⊢ (∫ (x : β), f x ∂μ) = ∫ (x : β), f x ∂Measure.trim μ hm

tactic: by_cases hf_int : Integrable f μ
state_before: α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
⊢ (∫ (x : β), f x ∂μ) = ∫ (x : β), f x ∂Measure.trim μ hm

tactic: swap
state_before: case pos
α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
⊢ (∫ (x : β), f x ∂μ) = ∫ (x : β), f x ∂Measure.trim μ hm

case neg
α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : ¬Integrable f
⊢ (∫ (x : β), f x ∂μ) = ∫ (x : β), f x ∂Measure.trim μ hm

tactic: haveI : SeparableSpace (range f ∪ {0} : Set F) := hf.separableSpace_range_union_singleton
state_before: case pos
α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
⊢ (∫ (x : β), f x ∂μ) = ∫ (x : β), f x ∂Measure.trim μ hm

tactic: let f_seq := @SimpleFunc.approxOn F β _ _ _ m _ hf.measurable (range f ∪ {0}) 0 (by simp) _
state_before: case pos
α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
this : SeparableSpace ↑(range f ∪ {0})
⊢ (∫ (x : β), f x ∂μ) = ∫ (x : β), f x ∂Measure.trim μ hm

tactic: have hf_seq_meas : ∀ n, StronglyMeasurable[m] (f_seq n) := fun n =>
  @SimpleFunc.stronglyMeasurable β F m _ (f_seq n)
state_before: case pos
α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
this : SeparableSpace ↑(range f ∪ {0})
f_seq : ℕ → β →ₛ F := SimpleFunc.approxOn f (_ : Measurable f) (range f ∪ {0}) 0 (_ : 0 ∈ range f ∪ {0})
⊢ (∫ (x : β), f x ∂μ) = ∫ (x : β), f x ∂Measure.trim μ hm

tactic: have hf_seq_int : ∀ n, Integrable (f_seq n) μ :=
  SimpleFunc.integrable_approxOn_range (hf.mono hm).measurable hf_int
state_before: case pos
α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
this : SeparableSpace ↑(range f ∪ {0})
f_seq : ℕ → β →ₛ F := SimpleFunc.approxOn f (_ : Measurable f) (range f ∪ {0}) 0 (_ : 0 ∈ range f ∪ {0})
hf_seq_meas : ∀ (n : ℕ), StronglyMeasurable ↑(f_seq n)
⊢ (∫ (x : β), f x ∂μ) = ∫ (x : β), f x ∂Measure.trim μ hm

tactic: have hf_seq_int_m : ∀ n, Integrable (f_seq n) (μ.trim hm) := fun n =>
  (hf_seq_int n).trim hm (hf_seq_meas n)
state_before: case pos
α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
this : SeparableSpace ↑(range f ∪ {0})
f_seq : ℕ → β →ₛ F := SimpleFunc.approxOn f (_ : Measurable f) (range f ∪ {0}) 0 (_ : 0 ∈ range f ∪ {0})
hf_seq_meas : ∀ (n : ℕ), StronglyMeasurable ↑(f_seq n)
hf_seq_int : ∀ (n : ℕ), Integrable ↑(f_seq n)
⊢ (∫ (x : β), f x ∂μ) = ∫ (x : β), f x ∂Measure.trim μ hm

tactic: have hf_seq_eq : ∀ n, (∫ x, f_seq n x ∂μ) = ∫ x, f_seq n x ∂μ.trim hm := fun n =>
  integral_trim_simpleFunc hm (f_seq n) (hf_seq_int n)
state_before: case pos
α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
this : SeparableSpace ↑(range f ∪ {0})
f_seq : ℕ → β →ₛ F := SimpleFunc.approxOn f (_ : Measurable f) (range f ∪ {0}) 0 (_ : 0 ∈ range f ∪ {0})
hf_seq_meas : ∀ (n : ℕ), StronglyMeasurable ↑(f_seq n)
hf_seq_int : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_int_m : ∀ (n : ℕ), Integrable ↑(f_seq n)
⊢ (∫ (x : β), f x ∂μ) = ∫ (x : β), f x ∂Measure.trim μ hm

tactic: have h_lim_1 : atTop.Tendsto (fun n => ∫ x, f_seq n x ∂μ) (𝓝 (∫ x, f x ∂μ)) := by
  refine' tendsto_integral_of_L1 f hf_int (eventually_of_forall hf_seq_int) _
  exact SimpleFunc.tendsto_approxOn_range_L1_nnnorm (hf.mono hm).measurable hf_int
state_before: case pos
α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
this : SeparableSpace ↑(range f ∪ {0})
f_seq : ℕ → β →ₛ F := SimpleFunc.approxOn f (_ : Measurable f) (range f ∪ {0}) 0 (_ : 0 ∈ range f ∪ {0})
hf_seq_meas : ∀ (n : ℕ), StronglyMeasurable ↑(f_seq n)
hf_seq_int : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_int_m : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_eq : ∀ (n : ℕ), (∫ (x : β), ↑(f_seq n) x ∂μ) = ∫ (x : β), ↑(f_seq n) x ∂Measure.trim μ hm
⊢ (∫ (x : β), f x ∂μ) = ∫ (x : β), f x ∂Measure.trim μ hm

tactic: have h_lim_2 : atTop.Tendsto (fun n => ∫ x, f_seq n x ∂μ) (𝓝 (∫ x, f x ∂μ.trim hm)) := by
  simp_rw [hf_seq_eq]
  refine' @tendsto_integral_of_L1 β F _ _ _ m (μ.trim hm) _ f (hf_int.trim hm hf) _ _
    (eventually_of_forall hf_seq_int_m) _
  exact @SimpleFunc.tendsto_approxOn_range_L1_nnnorm β F m _ _ _ f _ _ hf.measurable
    (hf_int.trim hm hf)
state_before: case pos
α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
this : SeparableSpace ↑(range f ∪ {0})
f_seq : ℕ → β →ₛ F := SimpleFunc.approxOn f (_ : Measurable f) (range f ∪ {0}) 0 (_ : 0 ∈ range f ∪ {0})
hf_seq_meas : ∀ (n : ℕ), StronglyMeasurable ↑(f_seq n)
hf_seq_int : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_int_m : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_eq : ∀ (n : ℕ), (∫ (x : β), ↑(f_seq n) x ∂μ) = ∫ (x : β), ↑(f_seq n) x ∂Measure.trim μ hm
h_lim_1 : Tendsto (fun n => ∫ (x : β), ↑(f_seq n) x ∂μ) atTop (𝓝 (∫ (x : β), f x ∂μ))
⊢ (∫ (x : β), f x ∂μ) = ∫ (x : β), f x ∂Measure.trim μ hm

tactic: exact tendsto_nhds_unique h_lim_1 h_lim_2
state_before: case pos
α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
this : SeparableSpace ↑(range f ∪ {0})
f_seq : ℕ → β →ₛ F := SimpleFunc.approxOn f (_ : Measurable f) (range f ∪ {0}) 0 (_ : 0 ∈ range f ∪ {0})
hf_seq_meas : ∀ (n : ℕ), StronglyMeasurable ↑(f_seq n)
hf_seq_int : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_int_m : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_eq : ∀ (n : ℕ), (∫ (x : β), ↑(f_seq n) x ∂μ) = ∫ (x : β), ↑(f_seq n) x ∂Measure.trim μ hm
h_lim_1 : Tendsto (fun n => ∫ (x : β), ↑(f_seq n) x ∂μ) atTop (𝓝 (∫ (x : β), f x ∂μ))
h_lim_2 : Tendsto (fun n => ∫ (x : β), ↑(f_seq n) x ∂μ) atTop (𝓝 (∫ (x : β), f x ∂Measure.trim μ hm))
⊢ (∫ (x : β), f x ∂μ) = ∫ (x : β), f x ∂Measure.trim μ hm

tactic: have hf_int_m : ¬Integrable f (μ.trim hm) := fun hf_int_m =>
  hf_int (integrable_of_integrable_trim hm hf_int_m)
state_before: case neg
α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : ¬Integrable f
⊢ (∫ (x : β), f x ∂μ) = ∫ (x : β), f x ∂Measure.trim μ hm

tactic: rw [integral_undef hf_int, integral_undef hf_int_m]
state_before: case neg
α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : ¬Integrable f
hf_int_m : ¬Integrable f
⊢ (∫ (x : β), f x ∂μ) = ∫ (x : β), f x ∂Measure.trim μ hm

tactic: simp
state_before: α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
this : SeparableSpace ↑(range f ∪ {0})
⊢ 0 ∈ range f ∪ {0}

tactic: refine' tendsto_integral_of_L1 f hf_int (eventually_of_forall hf_seq_int) _
state_before: α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
this : SeparableSpace ↑(range f ∪ {0})
f_seq : ℕ → β →ₛ F := SimpleFunc.approxOn f (_ : Measurable f) (range f ∪ {0}) 0 (_ : 0 ∈ range f ∪ {0})
hf_seq_meas : ∀ (n : ℕ), StronglyMeasurable ↑(f_seq n)
hf_seq_int : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_int_m : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_eq : ∀ (n : ℕ), (∫ (x : β), ↑(f_seq n) x ∂μ) = ∫ (x : β), ↑(f_seq n) x ∂Measure.trim μ hm
⊢ Tendsto (fun n => ∫ (x : β), ↑(f_seq n) x ∂μ) atTop (𝓝 (∫ (x : β), f x ∂μ))

tactic: exact SimpleFunc.tendsto_approxOn_range_L1_nnnorm (hf.mono hm).measurable hf_int
state_before: α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
this : SeparableSpace ↑(range f ∪ {0})
f_seq : ℕ → β →ₛ F := SimpleFunc.approxOn f (_ : Measurable f) (range f ∪ {0}) 0 (_ : 0 ∈ range f ∪ {0})
hf_seq_meas : ∀ (n : ℕ), StronglyMeasurable ↑(f_seq n)
hf_seq_int : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_int_m : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_eq : ∀ (n : ℕ), (∫ (x : β), ↑(f_seq n) x ∂μ) = ∫ (x : β), ↑(f_seq n) x ∂Measure.trim μ hm
⊢ Tendsto (fun i => ∫⁻ (x : β), ↑‖↑(f_seq i) x - f x‖₊ ∂μ) atTop (𝓝 0)

tactic: simp_rw [hf_seq_eq]
state_before: α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
this : SeparableSpace ↑(range f ∪ {0})
f_seq : ℕ → β →ₛ F := SimpleFunc.approxOn f (_ : Measurable f) (range f ∪ {0}) 0 (_ : 0 ∈ range f ∪ {0})
hf_seq_meas : ∀ (n : ℕ), StronglyMeasurable ↑(f_seq n)
hf_seq_int : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_int_m : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_eq : ∀ (n : ℕ), (∫ (x : β), ↑(f_seq n) x ∂μ) = ∫ (x : β), ↑(f_seq n) x ∂Measure.trim μ hm
h_lim_1 : Tendsto (fun n => ∫ (x : β), ↑(f_seq n) x ∂μ) atTop (𝓝 (∫ (x : β), f x ∂μ))
⊢ Tendsto (fun n => ∫ (x : β), ↑(f_seq n) x ∂μ) atTop (𝓝 (∫ (x : β), f x ∂Measure.trim μ hm))

tactic: refine' @tendsto_integral_of_L1 β F _ _ _ m (μ.trim hm) _ f (hf_int.trim hm hf) _ _
  (eventually_of_forall hf_seq_int_m) _
state_before: α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
this : SeparableSpace ↑(range f ∪ {0})
f_seq : ℕ → β →ₛ F := SimpleFunc.approxOn f (_ : Measurable f) (range f ∪ {0}) 0 (_ : 0 ∈ range f ∪ {0})
hf_seq_meas : ∀ (n : ℕ), StronglyMeasurable ↑(f_seq n)
hf_seq_int : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_int_m : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_eq : ∀ (n : ℕ), (∫ (x : β), ↑(f_seq n) x ∂μ) = ∫ (x : β), ↑(f_seq n) x ∂Measure.trim μ hm
h_lim_1 : Tendsto (fun n => ∫ (x : β), ↑(f_seq n) x ∂μ) atTop (𝓝 (∫ (x : β), f x ∂μ))
⊢ Tendsto
    (fun n =>
      ∫ (x : β),
        ↑(SimpleFunc.approxOn f (_ : Measurable f) (range f ∪ {0}) 0 (_ : 0 ∈ range f ∪ {0}) n) x ∂Measure.trim μ hm)
    atTop (𝓝 (∫ (x : β), f x ∂Measure.trim μ hm))

tactic: exact @SimpleFunc.tendsto_approxOn_range_L1_nnnorm β F m _ _ _ f _ _ hf.measurable
  (hf_int.trim hm hf)
state_before: α : Type ?u.1710649
E : Type ?u.1710652
F : Type u_2
𝕜 : Type ?u.1710658
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : CompleteSpace E
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedSpace 𝕜 E
inst✝⁴ : SMulCommClass ℝ 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace ℝ F
inst✝¹ : CompleteSpace F
H : Type ?u.1713329
β : Type u_1
γ : Type ?u.1713335
inst✝ : NormedAddCommGroup H
m m0 : MeasurableSpace β
μ : Measure β
hm : m ≤ m0
f : β → F
hf : StronglyMeasurable f
this✝¹ : MeasurableSpace F := borel F
this✝ : BorelSpace F
hf_int : Integrable f
this : SeparableSpace ↑(range f ∪ {0})
f_seq : ℕ → β →ₛ F := SimpleFunc.approxOn f (_ : Measurable f) (range f ∪ {0}) 0 (_ : 0 ∈ range f ∪ {0})
hf_seq_meas : ∀ (n : ℕ), StronglyMeasurable ↑(f_seq n)
hf_seq_int : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_int_m : ∀ (n : ℕ), Integrable ↑(f_seq n)
hf_seq_eq : ∀ (n : ℕ), (∫ (x : β), ↑(f_seq n) x ∂μ) = ∫ (x : β), ↑(f_seq n) x ∂Measure.trim μ hm
h_lim_1 : Tendsto (fun n => ∫ (x : β), ↑(f_seq n) x ∂μ) atTop (𝓝 (∫ (x : β), f x ∂μ))
⊢ Tendsto
    (fun i =>
      ∫⁻ (x : β),
        ↑‖↑(SimpleFunc.approxOn f (_ : Measurable f) (range f ∪ {0}) 0 (_ : 0 ∈ range f ∪ {0}) i) x -
              f x‖₊ ∂Measure.trim μ hm)
    atTop (𝓝 0)