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

tactic: refine' (hasSum_norm hp (∑ i in s, lp.single p i (f i))).unique _
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁴ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type ?u.897658
inst✝³ : NormedRing 𝕜
inst✝² : (i : α) → Module 𝕜 (E i)
inst✝¹ : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝ : DecidableEq α
hp : 0 < ENNReal.toReal p
f : (i : α) → E i
s : Finset α
⊢ ‖∑ i in s, lp.single p i (f i)‖ ^ ENNReal.toReal p = ∑ i in s, ‖f i‖ ^ ENNReal.toReal p

tactic: simp only [lp.single_apply, coeFn_sum, Finset.sum_apply, Finset.sum_dite_eq]
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁴ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type ?u.897658
inst✝³ : NormedRing 𝕜
inst✝² : (i : α) → Module 𝕜 (E i)
inst✝¹ : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝ : DecidableEq α
hp : 0 < ENNReal.toReal p
f : (i : α) → E i
s : Finset α
⊢ HasSum (fun i => ‖↑(∑ i in s, lp.single p i (f i)) i‖ ^ ENNReal.toReal p) (∑ i in s, ‖f i‖ ^ ENNReal.toReal p)

tactic: have h : ∀ (i) (_ : i ∉ s), ‖ite (i ∈ s) (f i) 0‖ ^ p.toReal = 0 := by
  intro i hi
  simp [if_neg hi, Real.zero_rpow hp.ne']
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁴ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type ?u.897658
inst✝³ : NormedRing 𝕜
inst✝² : (i : α) → Module 𝕜 (E i)
inst✝¹ : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝ : DecidableEq α
hp : 0 < ENNReal.toReal p
f : (i : α) → E i
s : Finset α
⊢ HasSum (fun i => ‖if i ∈ s then f i else 0‖ ^ ENNReal.toReal p) (∑ i in s, ‖f i‖ ^ ENNReal.toReal p)

tactic: have h' : ∀ i ∈ s, ‖f i‖ ^ p.toReal = ‖ite (i ∈ s) (f i) 0‖ ^ p.toReal := by
  intro i hi
  rw [if_pos hi]
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁴ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type ?u.897658
inst✝³ : NormedRing 𝕜
inst✝² : (i : α) → Module 𝕜 (E i)
inst✝¹ : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝ : DecidableEq α
hp : 0 < ENNReal.toReal p
f : (i : α) → E i
s : Finset α
h : ∀ (i : α), ¬i ∈ s → ‖if i ∈ s then f i else 0‖ ^ ENNReal.toReal p = 0
⊢ HasSum (fun i => ‖if i ∈ s then f i else 0‖ ^ ENNReal.toReal p) (∑ i in s, ‖f i‖ ^ ENNReal.toReal p)

tactic: simpa [Finset.sum_congr rfl h'] using hasSum_sum_of_ne_finset_zero h
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁴ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type ?u.897658
inst✝³ : NormedRing 𝕜
inst✝² : (i : α) → Module 𝕜 (E i)
inst✝¹ : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝ : DecidableEq α
hp : 0 < ENNReal.toReal p
f : (i : α) → E i
s : Finset α
h : ∀ (i : α), ¬i ∈ s → ‖if i ∈ s then f i else 0‖ ^ ENNReal.toReal p = 0
h' : ∀ (i : α), i ∈ s → ‖f i‖ ^ ENNReal.toReal p = ‖if i ∈ s then f i else 0‖ ^ ENNReal.toReal p
⊢ HasSum (fun i => ‖if i ∈ s then f i else 0‖ ^ ENNReal.toReal p) (∑ i in s, ‖f i‖ ^ ENNReal.toReal p)

tactic: intro i hi
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁴ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type ?u.897658
inst✝³ : NormedRing 𝕜
inst✝² : (i : α) → Module 𝕜 (E i)
inst✝¹ : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝ : DecidableEq α
hp : 0 < ENNReal.toReal p
f : (i : α) → E i
s : Finset α
⊢ ∀ (i : α), ¬i ∈ s → ‖if i ∈ s then f i else 0‖ ^ ENNReal.toReal p = 0

tactic: simp [if_neg hi, Real.zero_rpow hp.ne']
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁴ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type ?u.897658
inst✝³ : NormedRing 𝕜
inst✝² : (i : α) → Module 𝕜 (E i)
inst✝¹ : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝ : DecidableEq α
hp : 0 < ENNReal.toReal p
f : (i : α) → E i
s : Finset α
i : α
hi : ¬i ∈ s
⊢ ‖if i ∈ s then f i else 0‖ ^ ENNReal.toReal p = 0

tactic: intro i hi
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁴ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type ?u.897658
inst✝³ : NormedRing 𝕜
inst✝² : (i : α) → Module 𝕜 (E i)
inst✝¹ : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝ : DecidableEq α
hp : 0 < ENNReal.toReal p
f : (i : α) → E i
s : Finset α
h : ∀ (i : α), ¬i ∈ s → ‖if i ∈ s then f i else 0‖ ^ ENNReal.toReal p = 0
⊢ ∀ (i : α), i ∈ s → ‖f i‖ ^ ENNReal.toReal p = ‖if i ∈ s then f i else 0‖ ^ ENNReal.toReal p

tactic: rw [if_pos hi]
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝⁴ : (i : α) → NormedAddCommGroup (E i)
𝕜 : Type ?u.897658
inst✝³ : NormedRing 𝕜
inst✝² : (i : α) → Module 𝕜 (E i)
inst✝¹ : ∀ (i : α), BoundedSMul 𝕜 (E i)
inst✝ : DecidableEq α
hp : 0 < ENNReal.toReal p
f : (i : α) → E i
s : Finset α
h : ∀ (i : α), ¬i ∈ s → ‖if i ∈ s then f i else 0‖ ^ ENNReal.toReal p = 0
i : α
hi : i ∈ s
⊢ ‖f i‖ ^ ENNReal.toReal p = ‖if i ∈ s then f i else 0‖ ^ ENNReal.toReal p