Theorem: MeasureTheory.hasFiniteIntegral_toReal_of_lintegral_ne_top
File: Mathlib/MeasureTheory/Function/L1Space.lean

tactic: have :
    ∀ x, (‖(f x).toReal‖₊ : ℝ≥0∞) = ENNReal.ofNNReal ⟨(f x).toReal, ENNReal.toReal_nonneg⟩ := by
  intro x
  rw [Real.nnnorm_of_nonneg]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
⊢ HasFiniteIntegral (fun x => (f x).toReal) μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
this : ∀ (x : α), ↑‖(f x).toReal‖₊ = ↑⟨(f x).toReal, ⋯⟩
⊢ HasFiniteIntegral (fun x => (f x).toReal) μ

tactic: simp_rw [HasFiniteIntegral, this]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
this : ∀ (x : α), ↑‖(f x).toReal‖₊ = ↑⟨(f x).toReal, ⋯⟩
⊢ HasFiniteIntegral (fun x => (f x).toReal) μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
this : ∀ (x : α), ↑‖(f x).toReal‖₊ = ↑⟨(f x).toReal, ⋯⟩
⊢ ∫⁻ (a : α), ↑⟨(f a).toReal, ⋯⟩ ∂μ < ⊤

tactic: refine lt_of_le_of_lt (lintegral_mono fun x => ?_) (lt_top_iff_ne_top.2 hf)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
this : ∀ (x : α), ↑‖(f x).toReal‖₊ = ↑⟨(f x).toReal, ⋯⟩
⊢ ∫⁻ (a : α), ↑⟨(f a).toReal, ⋯⟩ ∂μ < ⊤
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
this : ∀ (x : α), ↑‖(f x).toReal‖₊ = ↑⟨(f x).toReal, ⋯⟩
x : α
⊢ ↑⟨(f x).toReal, ⋯⟩ ≤ f x

tactic: by_cases hfx : f x = ∞
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
this : ∀ (x : α), ↑‖(f x).toReal‖₊ = ↑⟨(f x).toReal, ⋯⟩
x : α
⊢ ↑⟨(f x).toReal, ⋯⟩ ≤ f x
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
this : ∀ (x : α), ↑‖(f x).toReal‖₊ = ↑⟨(f x).toReal, ⋯⟩
x : α
hfx : f x = ⊤
⊢ ↑⟨(f x).toReal, ⋯⟩ ≤ f x

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
this : ∀ (x : α), ↑‖(f x).toReal‖₊ = ↑⟨(f x).toReal, ⋯⟩
x : α
hfx : ¬f x = ⊤
⊢ ↑⟨(f x).toReal, ⋯⟩ ≤ f x

tactic: intro x
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
⊢ ∀ (x : α), ↑‖(f x).toReal‖₊ = ↑⟨(f x).toReal, ⋯⟩
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
x : α
⊢ ↑‖(f x).toReal‖₊ = ↑⟨(f x).toReal, ⋯⟩

tactic: rw [Real.nnnorm_of_nonneg]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
x : α
⊢ ↑‖(f x).toReal‖₊ = ↑⟨(f x).toReal, ⋯⟩
state_after: no goals

tactic: simp [hfx]
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
this : ∀ (x : α), ↑‖(f x).toReal‖₊ = ↑⟨(f x).toReal, ⋯⟩
x : α
hfx : f x = ⊤
⊢ ↑⟨(f x).toReal, ⋯⟩ ≤ f x
state_after: no goals

tactic: lift f x to ℝ≥0 using hfx with fx h
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
this : ∀ (x : α), ↑‖(f x).toReal‖₊ = ↑⟨(f x).toReal, ⋯⟩
x : α
hfx : ¬f x = ⊤
⊢ ↑⟨(f x).toReal, ⋯⟩ ≤ f x
state_after: case neg.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
this : ∀ (x : α), ↑‖(f x).toReal‖₊ = ↑⟨(f x).toReal, ⋯⟩
x : α
fx : ℝ≥0
h : ↑fx = f x
⊢ ↑⟨(↑fx).toReal, ⋯⟩ ≤ ↑fx

tactic: simp [← h, ← NNReal.coe_le_coe]
state_before: case neg.intro
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝² : MeasurableSpace δ
inst✝¹ : NormedAddCommGroup β
inst✝ : NormedAddCommGroup γ
f : α → ℝ≥0∞
hf : ∫⁻ (x : α), f x ∂μ ≠ ⊤
this : ∀ (x : α), ↑‖(f x).toReal‖₊ = ↑⟨(f x).toReal, ⋯⟩
x : α
fx : ℝ≥0
h : ↑fx = f x
⊢ ↑⟨(↑fx).toReal, ⋯⟩ ≤ ↑fx
state_after: no goals