Theorem: MeasureTheory.Integrable.integral_eq_integral_Ioc_meas_le
File: Mathlib/MeasureTheory/Integral/Layercake.lean

Proof steps:
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
M : ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
f_bdd : f ≤ᶠ[ae μ] fun x => M
⊢ ∫ (ω : α), f ω ∂μ = ∫ (t : ℝ) in Ioc 0 M, (μ {a | t ≤ f a}).toReal
state_after: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
M : ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
f_bdd : f ≤ᶠ[ae μ] fun x => M
⊢ ∫ (t : ℝ) in Ioi 0, (μ {a | t ≤ f a}).toReal = ∫ (t : ℝ) in Ioc 0 M, (μ {a | t ≤ f a}).toReal
tactic: rw [f_intble.integral_eq_integral_meas_le f_nn]
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
M : ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
f_bdd : f ≤ᶠ[ae μ] fun x => M
⊢ ∫ (t : ℝ) in Ioi 0, (μ {a | t ≤ f a}).toReal = ∫ (t : ℝ) in Ioc 0 M, (μ {a | t ≤ f a}).toReal
state_after: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
M : ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
f_bdd : f ≤ᶠ[ae μ] fun x => M
⊢ ∀ᵐ (x : ℝ), x ∈ Ioi 0 \ Ioc 0 M → (μ {a | x ≤ f a}).toReal = 0
tactic: rw [setIntegral_eq_of_subset_of_ae_diff_eq_zero
      measurableSet_Ioi.nullMeasurableSet Ioc_subset_Ioi_self ?_]
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
M : ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
f_bdd : f ≤ᶠ[ae μ] fun x => M
⊢ ∀ᵐ (x : ℝ), x ∈ Ioi 0 \ Ioc 0 M → (μ {a | x ≤ f a}).toReal = 0
state_after: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
M : ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
f_bdd : f ≤ᶠ[ae μ] fun x => M
t : ℝ
ht : t ∈ Ioi 0 \ Ioc 0 M
⊢ (μ {a | t ≤ f a}).toReal = 0
tactic: apply eventually_of_forall (fun t ht ↦ ?_)
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
M : ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
f_bdd : f ≤ᶠ[ae μ] fun x => M
t : ℝ
ht : t ∈ Ioi 0 \ Ioc 0 M
⊢ (μ {a | t ≤ f a}).toReal = 0
state_after: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
M : ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
f_bdd : f ≤ᶠ[ae μ] fun x => M
t : ℝ
ht : t ∈ Ioi 0 \ Ioc 0 M
htM : M < t
⊢ (μ {a | t ≤ f a}).toReal = 0
tactic: have htM : M < t := by simp_all only [mem_diff, mem_Ioi, mem_Ioc, not_and, not_le]
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
M : ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
f_bdd : f ≤ᶠ[ae μ] fun x => M
t : ℝ
ht : t ∈ Ioi 0 \ Ioc 0 M
htM : M < t
⊢ (μ {a | t ≤ f a}).toReal = 0
state_after: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
M : ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
f_bdd : f ≤ᶠ[ae μ] fun x => M
t : ℝ
ht : t ∈ Ioi 0 \ Ioc 0 M
htM : M < t
obs : μ {a | M < f a} = 0
⊢ (μ {a | t ≤ f a}).toReal = 0
tactic: have obs : μ {a | M < f a} = 0 := by
    rw [measure_zero_iff_ae_nmem]
    filter_upwards [f_bdd] with a ha using not_lt.mpr ha
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
M : ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
f_bdd : f ≤ᶠ[ae μ] fun x => M
t : ℝ
ht : t ∈ Ioi 0 \ Ioc 0 M
htM : M < t
obs : μ {a | M < f a} = 0
⊢ (μ {a | t ≤ f a}).toReal = 0
state_after: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
M : ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
f_bdd : f ≤ᶠ[ae μ] fun x => M
t : ℝ
ht : t ∈ Ioi 0 \ Ioc 0 M
htM : M < t
obs : μ {a | M < f a} = 0
⊢ μ {a | t ≤ f a} = 0 ∨ μ {a | t ≤ f a} = ⊤
tactic: rw [ENNReal.toReal_eq_zero_iff]
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f✝ f : α → ℝ
M : ℝ
f_intble : Integrable f μ
f_nn : 0 ≤ᶠ[ae μ] f
f_bdd : f ≤ᶠ[ae μ] fun x => M
t : ℝ
ht : t ∈ Ioi 0 \ Ioc 0 M
htM : M < t
obs : μ {a | M < f a} = 0
⊢ μ {a | t ≤ f a} = 0 ∨ μ {a | t ≤ f a} = ⊤
state_after: no goals
tactic: exact Or.inl <| measure_mono_null (fun a ha ↦ lt_of_lt_of_le htM ha) obs