Theorem: MeasureTheory.L2.eLpNorm_inner_lt_top
File: Mathlib/MeasureTheory/Function/L2Space.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f g : ↥(Lp E 2 μ)
⊢ eLpNorm (fun x => ⟪↑↑f x, ↑↑g x⟫_𝕜) 1 μ < ⊤
state_after: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f g : ↥(Lp E 2 μ)
h : ∀ (x : α), ‖⟪↑↑f x, ↑↑g x⟫_𝕜‖ ≤ ‖‖↑↑f x‖ ^ 2 + ‖↑↑g x‖ ^ 2‖
⊢ eLpNorm (fun x => ⟪↑↑f x, ↑↑g x⟫_𝕜) 1 μ < ⊤
tactic: have h : ∀ x, ‖⟪f x, g x⟫‖ ≤ ‖‖f x‖ ^ (2 : ℝ) + ‖g x‖ ^ (2 : ℝ)‖ := by
    intro x
    rw [← @Nat.cast_two ℝ, Real.rpow_natCast, Real.rpow_natCast]
    calc
      ‖⟪f x, g x⟫‖ ≤ ‖f x‖ * ‖g x‖ := norm_inner_le_norm _ _
      _ ≤ 2 * ‖f x‖ * ‖g x‖ :=
        (mul_le_mul_of_nonneg_right (le_mul_of_one_le_left (norm_nonneg _) one_le_two)
          (norm_nonneg _))
      -- TODO(kmill): the type ascription is getting around an elaboration error
      _ ≤ ‖(‖f x‖ ^ 2 + ‖g x‖ ^ 2 : ℝ)‖ := (two_mul_le_add_sq _ _).trans (le_abs_self _)
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f g : ↥(Lp E 2 μ)
h : ∀ (x : α), ‖⟪↑↑f x, ↑↑g x⟫_𝕜‖ ≤ ‖‖↑↑f x‖ ^ 2 + ‖↑↑g x‖ ^ 2‖
⊢ eLpNorm (fun x => ⟪↑↑f x, ↑↑g x⟫_𝕜) 1 μ < ⊤
state_after: case refine_1
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f g : ↥(Lp E 2 μ)
h : ∀ (x : α), ‖⟪↑↑f x, ↑↑g x⟫_𝕜‖ ≤ ‖‖↑↑f x‖ ^ 2 + ‖↑↑g x‖ ^ 2‖
⊢ AEStronglyMeasurable (fun a => ‖↑↑f a‖ ^ 2) μ

case refine_2
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f g : ↥(Lp E 2 μ)
h : ∀ (x : α), ‖⟪↑↑f x, ↑↑g x⟫_𝕜‖ ≤ ‖‖↑↑f x‖ ^ 2 + ‖↑↑g x‖ ^ 2‖
⊢ AEStronglyMeasurable (fun a => ‖↑↑g a‖ ^ 2) μ

case refine_3
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f g : ↥(Lp E 2 μ)
h : ∀ (x : α), ‖⟪↑↑f x, ↑↑g x⟫_𝕜‖ ≤ ‖‖↑↑f x‖ ^ 2 + ‖↑↑g x‖ ^ 2‖
⊢ eLpNorm (fun a => ‖↑↑f a‖ ^ 2) 1 μ + eLpNorm (fun a => ‖↑↑g a‖ ^ 2) 1 μ < ⊤
tactic: refine (eLpNorm_mono_ae (ae_of_all _ h)).trans_lt ((eLpNorm_add_le ?_ ?_ le_rfl).trans_lt ?_)
state_before: case refine_3
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f g : ↥(Lp E 2 μ)
h : ∀ (x : α), ‖⟪↑↑f x, ↑↑g x⟫_𝕜‖ ≤ ‖‖↑↑f x‖ ^ 2 + ‖↑↑g x‖ ^ 2‖
⊢ eLpNorm (fun a => ‖↑↑f a‖ ^ 2) 1 μ + eLpNorm (fun a => ‖↑↑g a‖ ^ 2) 1 μ < ⊤
state_after: case refine_3
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f g : ↥(Lp E 2 μ)
h : ∀ (x : α), ‖⟪↑↑f x, ↑↑g x⟫_𝕜‖ ≤ ‖‖↑↑f x‖ ^ 2 + ‖↑↑g x‖ ^ 2‖
⊢ eLpNorm (fun a => ‖↑↑f a‖ ^ 2) 1 μ < ⊤ ∧ eLpNorm (fun a => ‖↑↑g a‖ ^ 2) 1 μ < ⊤
tactic: rw [ENNReal.add_lt_top]
state_before: case refine_3
α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁴ : RCLike 𝕜
inst✝³ : MeasurableSpace α
μ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : NormedAddCommGroup F
f g : ↥(Lp E 2 μ)
h : ∀ (x : α), ‖⟪↑↑f x, ↑↑g x⟫_𝕜‖ ≤ ‖‖↑↑f x‖ ^ 2 + ‖↑↑g x‖ ^ 2‖
⊢ eLpNorm (fun a => ‖↑↑f a‖ ^ 2) 1 μ < ⊤ ∧ eLpNorm (fun a => ‖↑↑g a‖ ^ 2) 1 μ < ⊤
state_after: no goals
tactic: exact ⟨eLpNorm_rpow_two_norm_lt_top f, eLpNorm_rpow_two_norm_lt_top g⟩