Theorem: MeasureTheory.Memℒp.integral_indicator_norm_ge_nonneg_le
File: Mathlib/MeasureTheory/Function/UniformIntegrable.lean

tactic: have hf_mk : Memℒp (hf.1.mk f) 1 μ := (memℒp_congr_ae hf.1.ae_eq_mk).mp hf
state_before: α : Type u_2
β : Type u_1
ι : Type ?u.89388
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup β
p : ℝ≥0∞
f : α → β
hf : Memℒp f 1
ε : ℝ
hε : 0 < ε
⊢ ∃ M, 0 ≤ M ∧ (∫⁻ (x : α), ↑‖Set.indicator {x | M ≤ ↑‖f x‖₊} f x‖₊ ∂μ) ≤ ENNReal.ofReal ε

tactic: obtain ⟨M, hM_pos, hfM⟩ :=
  hf_mk.integral_indicator_norm_ge_nonneg_le_of_meas μ hf.1.stronglyMeasurable_mk hε
state_before: α : Type u_2
β : Type u_1
ι : Type ?u.89388
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup β
p : ℝ≥0∞
f : α → β
hf : Memℒp f 1
ε : ℝ
hε : 0 < ε
hf_mk : Memℒp (AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ)) 1
⊢ ∃ M, 0 ≤ M ∧ (∫⁻ (x : α), ↑‖Set.indicator {x | M ≤ ↑‖f x‖₊} f x‖₊ ∂μ) ≤ ENNReal.ofReal ε

tactic: refine' ⟨M, hM_pos, (le_of_eq _).trans hfM⟩
state_before: case intro.intro
α : Type u_2
β : Type u_1
ι : Type ?u.89388
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup β
p : ℝ≥0∞
f : α → β
hf : Memℒp f 1
ε : ℝ
hε : 0 < ε
hf_mk : Memℒp (AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ)) 1
M : ℝ
hM_pos : 0 ≤ M
hfM :
  (∫⁻ (x : α),
      ↑‖Set.indicator {x | M ≤ ↑‖AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ) x‖₊}
            (AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ)) x‖₊ ∂μ) ≤
    ENNReal.ofReal ε
⊢ ∃ M, 0 ≤ M ∧ (∫⁻ (x : α), ↑‖Set.indicator {x | M ≤ ↑‖f x‖₊} f x‖₊ ∂μ) ≤ ENNReal.ofReal ε

tactic: refine' lintegral_congr_ae _
state_before: case intro.intro
α : Type u_2
β : Type u_1
ι : Type ?u.89388
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup β
p : ℝ≥0∞
f : α → β
hf : Memℒp f 1
ε : ℝ
hε : 0 < ε
hf_mk : Memℒp (AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ)) 1
M : ℝ
hM_pos : 0 ≤ M
hfM :
  (∫⁻ (x : α),
      ↑‖Set.indicator {x | M ≤ ↑‖AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ) x‖₊}
            (AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ)) x‖₊ ∂μ) ≤
    ENNReal.ofReal ε
⊢ (∫⁻ (x : α), ↑‖Set.indicator {x | M ≤ ↑‖f x‖₊} f x‖₊ ∂μ) =
    ∫⁻ (x : α),
      ↑‖Set.indicator {x | M ≤ ↑‖AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ) x‖₊}
            (AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ)) x‖₊ ∂μ

tactic: filter_upwards [hf.1.ae_eq_mk] with x hx
state_before: case intro.intro
α : Type u_2
β : Type u_1
ι : Type ?u.89388
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup β
p : ℝ≥0∞
f : α → β
hf : Memℒp f 1
ε : ℝ
hε : 0 < ε
hf_mk : Memℒp (AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ)) 1
M : ℝ
hM_pos : 0 ≤ M
hfM :
  (∫⁻ (x : α),
      ↑‖Set.indicator {x | M ≤ ↑‖AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ) x‖₊}
            (AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ)) x‖₊ ∂μ) ≤
    ENNReal.ofReal ε
⊢ (fun x => ↑‖Set.indicator {x | M ≤ ↑‖f x‖₊} f x‖₊) =ᵐ[μ] fun x =>
    ↑‖Set.indicator {x | M ≤ ↑‖AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ) x‖₊}
          (AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ)) x‖₊

tactic: simp only [Set.indicator_apply, coe_nnnorm, Set.mem_setOf_eq, ENNReal.coe_eq_coe, hx.symm]
state_before: case h
α : Type u_2
β : Type u_1
ι : Type ?u.89388
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup β
p : ℝ≥0∞
f : α → β
hf : Memℒp f 1
ε : ℝ
hε : 0 < ε
hf_mk : Memℒp (AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ)) 1
M : ℝ
hM_pos : 0 ≤ M
hfM :
  (∫⁻ (x : α),
      ↑‖Set.indicator {x | M ≤ ↑‖AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ) x‖₊}
            (AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ)) x‖₊ ∂μ) ≤
    ENNReal.ofReal ε
x : α
hx : f x = AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ) x
⊢ ↑‖Set.indicator {x | M ≤ ↑‖f x‖₊} f x‖₊ =
    ↑‖Set.indicator {x | M ≤ ↑‖AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ) x‖₊}
          (AEStronglyMeasurable.mk f (_ : AEStronglyMeasurable f μ)) x‖₊