Theorem: lp.hasSum_single
File: Mathlib/Analysis/NormedSpace/lpSpace.lean

tactic: have hp₀ : 0 < p := zero_lt_one.trans_le Fact.out
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
⊢ HasSum (fun i => lp.single p i (↑f i)) f
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
⊢ HasSum (fun i => lp.single p i (↑f i)) f

tactic: have hp' : 0 < p.toReal := ENNReal.toReal_pos hp₀.ne' hp
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
⊢ HasSum (fun i => lp.single p i (↑f i)) f
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
⊢ HasSum (fun i => lp.single p i (↑f i)) f

tactic: have := lp.hasSum_norm hp' f
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
⊢ HasSum (fun i => lp.single p i (↑f i)) f
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : HasSum (fun i => ‖↑f i‖ ^ p.toReal) (‖f‖ ^ p.toReal)
⊢ HasSum (fun i => lp.single p i (↑f i)) f

tactic: rw [HasSum, Metric.tendsto_nhds] at this ⊢
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : HasSum (fun i => ‖↑f i‖ ^ p.toReal) (‖f‖ ^ p.toReal)
⊢ HasSum (fun i => lp.single p i (↑f i)) f
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
⊢ ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, lp.single p b (↑f b)) f < ε

tactic: intro ε hε
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
⊢ ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, lp.single p b (↑f b)) f < ε
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
⊢ ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, lp.single p b (↑f b)) f < ε

tactic: refine (this _ (Real.rpow_pos_of_pos hε p.toReal)).mono ?_
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
⊢ ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, lp.single p b (↑f b)) f < ε
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
⊢ ∀ (x : Finset α),
    dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε ^ p.toReal → dist (∑ b ∈ x, lp.single p b (↑f b)) f < ε

tactic: intro s hs
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
⊢ ∀ (x : Finset α),
    dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε ^ p.toReal → dist (∑ b ∈ x, lp.single p b (↑f b)) f < ε
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : dist (∑ b ∈ s, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε ^ p.toReal
⊢ dist (∑ b ∈ s, lp.single p b (↑f b)) f < ε

tactic: rw [← Real.rpow_lt_rpow_iff dist_nonneg (le_of_lt hε) hp']
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : dist (∑ b ∈ s, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε ^ p.toReal
⊢ dist (∑ b ∈ s, lp.single p b (↑f b)) f < ε
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : dist (∑ b ∈ s, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε ^ p.toReal
⊢ dist (∑ b ∈ s, lp.single p b (↑f b)) f ^ p.toReal < ε ^ p.toReal

tactic: rw [dist_comm] at hs
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : dist (∑ b ∈ s, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε ^ p.toReal
⊢ dist (∑ b ∈ s, lp.single p b (↑f b)) f ^ p.toReal < ε ^ p.toReal
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : dist (‖f‖ ^ p.toReal) (∑ b ∈ s, ‖↑f b‖ ^ p.toReal) < ε ^ p.toReal
⊢ dist (∑ b ∈ s, lp.single p b (↑f b)) f ^ p.toReal < ε ^ p.toReal

tactic: simp only [dist_eq_norm, Real.norm_eq_abs] at hs ⊢
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : dist (‖f‖ ^ p.toReal) (∑ b ∈ s, ‖↑f b‖ ^ p.toReal) < ε ^ p.toReal
⊢ dist (∑ b ∈ s, lp.single p b (↑f b)) f ^ p.toReal < ε ^ p.toReal
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : |‖f‖ ^ p.toReal - ∑ b ∈ s, ‖↑f b‖ ^ p.toReal| < ε ^ p.toReal
⊢ ‖∑ b ∈ s, lp.single p b (↑f b) - f‖ ^ p.toReal < ε ^ p.toReal

tactic: have H : ‖(∑ i ∈ s, lp.single p i (f i : E i)) - f‖ ^ p.toReal =
    ‖f‖ ^ p.toReal - ∑ i ∈ s, ‖f i‖ ^ p.toReal := by
  simpa only [coeFn_neg, Pi.neg_apply, lp.single_neg, Finset.sum_neg_distrib, neg_sub_neg,
    norm_neg, _root_.norm_neg] using lp.norm_compl_sum_single hp' (-f) s
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : |‖f‖ ^ p.toReal - ∑ b ∈ s, ‖↑f b‖ ^ p.toReal| < ε ^ p.toReal
⊢ ‖∑ b ∈ s, lp.single p b (↑f b) - f‖ ^ p.toReal < ε ^ p.toReal
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : |‖f‖ ^ p.toReal - ∑ b ∈ s, ‖↑f b‖ ^ p.toReal| < ε ^ p.toReal
H : ‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal = ‖f‖ ^ p.toReal - ∑ i ∈ s, ‖↑f i‖ ^ p.toReal
⊢ ‖∑ b ∈ s, lp.single p b (↑f b) - f‖ ^ p.toReal < ε ^ p.toReal

tactic: rw [← H] at hs
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : |‖f‖ ^ p.toReal - ∑ b ∈ s, ‖↑f b‖ ^ p.toReal| < ε ^ p.toReal
H : ‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal = ‖f‖ ^ p.toReal - ∑ i ∈ s, ‖↑f i‖ ^ p.toReal
⊢ ‖∑ b ∈ s, lp.single p b (↑f b) - f‖ ^ p.toReal < ε ^ p.toReal
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : |‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal| < ε ^ p.toReal
H : ‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal = ‖f‖ ^ p.toReal - ∑ i ∈ s, ‖↑f i‖ ^ p.toReal
⊢ ‖∑ b ∈ s, lp.single p b (↑f b) - f‖ ^ p.toReal < ε ^ p.toReal

tactic: have : |‖(∑ i ∈ s, lp.single p i (f i : E i)) - f‖ ^ p.toReal| =
    ‖(∑ i ∈ s, lp.single p i (f i : E i)) - f‖ ^ p.toReal := by
  simp only [Real.abs_rpow_of_nonneg (norm_nonneg _), abs_norm]
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : |‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal| < ε ^ p.toReal
H : ‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal = ‖f‖ ^ p.toReal - ∑ i ∈ s, ‖↑f i‖ ^ p.toReal
⊢ ‖∑ b ∈ s, lp.single p b (↑f b) - f‖ ^ p.toReal < ε ^ p.toReal
state_after: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this✝ : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : |‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal| < ε ^ p.toReal
H : ‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal = ‖f‖ ^ p.toReal - ∑ i ∈ s, ‖↑f i‖ ^ p.toReal
this : |‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal| = ‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal
⊢ ‖∑ b ∈ s, lp.single p b (↑f b) - f‖ ^ p.toReal < ε ^ p.toReal

tactic: exact this ▸ hs
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this✝ : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : |‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal| < ε ^ p.toReal
H : ‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal = ‖f‖ ^ p.toReal - ∑ i ∈ s, ‖↑f i‖ ^ p.toReal
this : |‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal| = ‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal
⊢ ‖∑ b ∈ s, lp.single p b (↑f b) - f‖ ^ p.toReal < ε ^ p.toReal
state_after: no goals

tactic: simpa only [coeFn_neg, Pi.neg_apply, lp.single_neg, Finset.sum_neg_distrib, neg_sub_neg,
  norm_neg, _root_.norm_neg] using lp.norm_compl_sum_single hp' (-f) s
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : |‖f‖ ^ p.toReal - ∑ b ∈ s, ‖↑f b‖ ^ p.toReal| < ε ^ p.toReal
⊢ ‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal = ‖f‖ ^ p.toReal - ∑ i ∈ s, ‖↑f i‖ ^ p.toReal
state_after: no goals

tactic: simp only [Real.abs_rpow_of_nonneg (norm_nonneg _), abs_norm]
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁵ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type u_3
inst✝⁴ : NormedRing 𝕜
inst✝³ : (i : α) → Module 𝕜 (E i)
inst✝² : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝¹ : DecidableEq α
inst✝ : Fact (1 ≤ p)
hp : p ≠ ⊤
f : ↥(lp E p)
hp₀ : 0 < p
hp' : 0 < p.toReal
this : ∀ ε > 0, ∀ᶠ (x : Finset α) in Filter.atTop, dist (∑ b ∈ x, ‖↑f b‖ ^ p.toReal) (‖f‖ ^ p.toReal) < ε
ε : ℝ
hε : ε > 0
s : Finset α
hs : |‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal| < ε ^ p.toReal
H : ‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal = ‖f‖ ^ p.toReal - ∑ i ∈ s, ‖↑f i‖ ^ p.toReal
⊢ |‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal| = ‖∑ i ∈ s, lp.single p i (↑f i) - f‖ ^ p.toReal
state_after: no goals