Theorem: ProbabilityTheory.tendsto_integral_truncation
File: Mathlib/Probability/StrongLaw.lean

tactic: refine tendsto_integral_filter_of_dominated_convergence (fun x => abs (f x)) ?_ ?_ ?_ ?_
state_before: α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
⊢ Tendsto (fun A => ∫ (x : α), truncation f A x ∂μ) atTop (𝓝 (∫ (x : α), f x ∂μ))
state_after: case refine_1
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
⊢ ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (truncation f n) μ

case refine_2
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
⊢ ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : α) ∂μ, ‖truncation f n a‖ ≤ (fun x => |f x|) a

case refine_3
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
⊢ Integrable (fun x => |f x|) μ

case refine_4
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
⊢ ∀ᵐ (a : α) ∂μ, Tendsto (fun n => truncation f n a) atTop (𝓝 (f a))

tactic: exact eventually_of_forall fun A ↦ hf.aestronglyMeasurable.truncation
state_before: case refine_1
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
⊢ ∀ᶠ (n : ℝ) in atTop, AEStronglyMeasurable (truncation f n) μ
state_after: no goals

tactic: filter_upwards with A
state_before: case refine_2
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
⊢ ∀ᶠ (n : ℝ) in atTop, ∀ᵐ (a : α) ∂μ, ‖truncation f n a‖ ≤ (fun x => |f x|) a
state_after: case refine_2.h
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
A : ℝ
⊢ ∀ᵐ (a : α) ∂μ, ‖truncation f A a‖ ≤ |f a|

tactic: filter_upwards with x
state_before: case refine_2.h
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
A : ℝ
⊢ ∀ᵐ (a : α) ∂μ, ‖truncation f A a‖ ≤ |f a|
state_after: case refine_2.h.h
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
A : ℝ
x : α
⊢ ‖truncation f A x‖ ≤ |f x|

tactic: rw [Real.norm_eq_abs]
state_before: case refine_2.h.h
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
A : ℝ
x : α
⊢ ‖truncation f A x‖ ≤ |f x|
state_after: case refine_2.h.h
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
A : ℝ
x : α
⊢ |truncation f A x| ≤ |f x|

tactic: exact abs_truncation_le_abs_self _ _ _
state_before: case refine_2.h.h
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
A : ℝ
x : α
⊢ |truncation f A x| ≤ |f x|
state_after: no goals

tactic: exact hf.abs
state_before: case refine_3
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
⊢ Integrable (fun x => |f x|) μ
state_after: no goals

tactic: filter_upwards with x
state_before: case refine_4
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
⊢ ∀ᵐ (a : α) ∂μ, Tendsto (fun n => truncation f n a) atTop (𝓝 (f a))
state_after: case refine_4.h
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
x : α
⊢ Tendsto (fun n => truncation f n x) atTop (𝓝 (f x))

tactic: apply tendsto_const_nhds.congr' _
state_before: case refine_4.h
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
x : α
⊢ Tendsto (fun n => truncation f n x) atTop (𝓝 (f x))
state_after: α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
x : α
⊢ (fun x_1 => f x) =ᶠ[atTop] fun n => truncation f n x

tactic: filter_upwards [Ioi_mem_atTop (abs (f x))] with A hA
state_before: α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
x : α
⊢ (fun x_1 => f x) =ᶠ[atTop] fun n => truncation f n x
state_after: case h
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
x : α
A : ℝ
hA : A ∈ Set.Ioi |f x|
⊢ f x = truncation f A x

tactic: exact (truncation_eq_self hA).symm
state_before: case h
α : Type u_1
m : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
hf : Integrable f μ
x : α
A : ℝ
hA : A ∈ Set.Ioi |f x|
⊢ f x = truncation f A x
state_after: no goals