Theorem: lp.inner_single_left
File: Mathlib/Analysis/InnerProductSpace/l2Space.lean

tactic: refine (hasSum_inner (lp.single 2 i a) f).unique ?_
state_before: ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
i : ι
a : G i
f : ↥(lp G 2)
⊢ ⟪lp.single 2 i a, f⟫_𝕜 = ⟪a, ↑f i⟫_𝕜
state_after: ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
i : ι
a : G i
f : ↥(lp G 2)
⊢ HasSum (fun i_1 => ⟪↑(lp.single 2 i a) i_1, ↑f i_1⟫_𝕜) ⟪a, ↑f i⟫_𝕜

tactic: convert hasSum_ite_eq i ⟪a, f i⟫ using 1
state_before: ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
i : ι
a : G i
f : ↥(lp G 2)
⊢ HasSum (fun i_1 => ⟪↑(lp.single 2 i a) i_1, ↑f i_1⟫_𝕜) ⟪a, ↑f i⟫_𝕜
state_after: case h.e'_5
ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
i : ι
a : G i
f : ↥(lp G 2)
⊢ (fun i_1 => ⟪↑(lp.single 2 i a) i_1, ↑f i_1⟫_𝕜) = fun b' => if b' = i then ⟪a, ↑f i⟫_𝕜 else 0

tactic: ext j
state_before: case h.e'_5
ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
i : ι
a : G i
f : ↥(lp G 2)
⊢ (fun i_1 => ⟪↑(lp.single 2 i a) i_1, ↑f i_1⟫_𝕜) = fun b' => if b' = i then ⟪a, ↑f i⟫_𝕜 else 0
state_after: case h.e'_5.h
ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
i : ι
a : G i
f : ↥(lp G 2)
j : ι
⊢ ⟪↑(lp.single 2 i a) j, ↑f j⟫_𝕜 = if j = i then ⟪a, ↑f i⟫_𝕜 else 0

tactic: rw [lp.single_apply]
state_before: case h.e'_5.h
ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
i : ι
a : G i
f : ↥(lp G 2)
j : ι
⊢ ⟪↑(lp.single 2 i a) j, ↑f j⟫_𝕜 = if j = i then ⟪a, ↑f i⟫_𝕜 else 0
state_after: case h.e'_5.h
ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
i : ι
a : G i
f : ↥(lp G 2)
j : ι
⊢ ⟪if h : j = i then ⋯ ▸ a else 0, ↑f j⟫_𝕜 = if j = i then ⟪a, ↑f i⟫_𝕜 else 0

tactic: split_ifs with h
state_before: case h.e'_5.h
ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
i : ι
a : G i
f : ↥(lp G 2)
j : ι
⊢ ⟪if h : j = i then ⋯ ▸ a else 0, ↑f j⟫_𝕜 = if j = i then ⟪a, ↑f i⟫_𝕜 else 0
state_after: case pos
ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
i : ι
a : G i
f : ↥(lp G 2)
j : ι
h : j = i
⊢ ⟪⋯ ▸ a, ↑f j⟫_𝕜 = ⟪a, ↑f i⟫_𝕜

case neg
ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
i : ι
a : G i
f : ↥(lp G 2)
j : ι
h : ¬j = i
⊢ ⟪0, ↑f j⟫_𝕜 = 0

tactic: subst h
state_before: case pos
ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
i : ι
a : G i
f : ↥(lp G 2)
j : ι
h : j = i
⊢ ⟪⋯ ▸ a, ↑f j⟫_𝕜 = ⟪a, ↑f i⟫_𝕜
state_after: case pos
ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
f : ↥(lp G 2)
j : ι
a : G j
⊢ ⟪⋯ ▸ a, ↑f j⟫_𝕜 = ⟪a, ↑f j⟫_𝕜

tactic: rfl
state_before: case pos
ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
f : ↥(lp G 2)
j : ι
a : G j
⊢ ⟪⋯ ▸ a, ↑f j⟫_𝕜 = ⟪a, ↑f j⟫_𝕜
state_after: no goals

tactic: simp
state_before: case neg
ι : Type u_1
𝕜 : Type u_2
inst✝⁴ : RCLike 𝕜
E : Type u_3
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
cplt : CompleteSpace E
G : ι → Type u_4
inst✝¹ : (i : ι) → NormedAddCommGroup (G i)
inst✝ : (i : ι) → InnerProductSpace 𝕜 (G i)
i : ι
a : G i
f : ↥(lp G 2)
j : ι
h : ¬j = i
⊢ ⟪0, ↑f j⟫_𝕜 = 0
state_after: no goals