Theorem: OrthogonalFamily.sum_projection_of_mem_iSup
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: refine
  (Finset.sum_eq_single_of_mem i (Finset.mem_univ _) fun j _ hij => ?_).trans
    (orthogonalProjection_eq_self_iff.mpr hx)
state_before: case mem
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : _root_.RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
ι : Type u_4
inst✝¹ : Fintype ι
V : ι → Submodule 𝕜 E
inst✝ : ∀ (i : ι), CompleteSpace ↥(V i)
hV : OrthogonalFamily 𝕜 (fun i => ↥(V i)) fun i => (V i).subtypeₗᵢ
x✝ : E
i : ι
x : E
hx : x ∈ V i
⊢ ∑ i : ι, ↑((orthogonalProjection (V i)) x) = x
state_after: case mem
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : _root_.RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
ι : Type u_4
inst✝¹ : Fintype ι
V : ι → Submodule 𝕜 E
inst✝ : ∀ (i : ι), CompleteSpace ↥(V i)
hV : OrthogonalFamily 𝕜 (fun i => ↥(V i)) fun i => (V i).subtypeₗᵢ
x✝¹ : E
i : ι
x : E
hx : x ∈ V i
j : ι
x✝ : j ∈ Finset.univ
hij : j ≠ i
⊢ ↑((orthogonalProjection (V j)) x) = 0

tactic: rw [orthogonalProjection_mem_subspace_orthogonalComplement_eq_zero, Submodule.coe_zero]
state_before: case mem
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : _root_.RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
ι : Type u_4
inst✝¹ : Fintype ι
V : ι → Submodule 𝕜 E
inst✝ : ∀ (i : ι), CompleteSpace ↥(V i)
hV : OrthogonalFamily 𝕜 (fun i => ↥(V i)) fun i => (V i).subtypeₗᵢ
x✝¹ : E
i : ι
x : E
hx : x ∈ V i
j : ι
x✝ : j ∈ Finset.univ
hij : j ≠ i
⊢ ↑((orthogonalProjection (V j)) x) = 0
state_after: case mem
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : _root_.RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
ι : Type u_4
inst✝¹ : Fintype ι
V : ι → Submodule 𝕜 E
inst✝ : ∀ (i : ι), CompleteSpace ↥(V i)
hV : OrthogonalFamily 𝕜 (fun i => ↥(V i)) fun i => (V i).subtypeₗᵢ
x✝¹ : E
i : ι
x : E
hx : x ∈ V i
j : ι
x✝ : j ∈ Finset.univ
hij : j ≠ i
⊢ x ∈ (V j)ᗮ

tactic: exact hV.isOrtho hij.symm hx
state_before: case mem
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : _root_.RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
ι : Type u_4
inst✝¹ : Fintype ι
V : ι → Submodule 𝕜 E
inst✝ : ∀ (i : ι), CompleteSpace ↥(V i)
hV : OrthogonalFamily 𝕜 (fun i => ↥(V i)) fun i => (V i).subtypeₗᵢ
x✝¹ : E
i : ι
x : E
hx : x ∈ V i
j : ι
x✝ : j ∈ Finset.univ
hij : j ≠ i
⊢ x ∈ (V j)ᗮ
state_after: no goals

tactic: simp_rw [map_zero, Submodule.coe_zero, Finset.sum_const_zero]
state_before: case zero
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : _root_.RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
ι : Type u_4
inst✝¹ : Fintype ι
V : ι → Submodule 𝕜 E
inst✝ : ∀ (i : ι), CompleteSpace ↥(V i)
hV : OrthogonalFamily 𝕜 (fun i => ↥(V i)) fun i => (V i).subtypeₗᵢ
x : E
⊢ ∑ i : ι, ↑((orthogonalProjection (V i)) 0) = 0
state_after: no goals

tactic: simp_rw [map_add, Submodule.coe_add, Finset.sum_add_distrib]
state_before: case add
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : _root_.RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
ι : Type u_4
inst✝¹ : Fintype ι
V : ι → Submodule 𝕜 E
inst✝ : ∀ (i : ι), CompleteSpace ↥(V i)
hV : OrthogonalFamily 𝕜 (fun i => ↥(V i)) fun i => (V i).subtypeₗᵢ
x✝ x y : E
hx✝ : x ∈ ⨆ i, V i
hy✝ : y ∈ ⨆ i, V i
hx : ∑ i : ι, ↑((orthogonalProjection (V i)) x) = x
hy : ∑ i : ι, ↑((orthogonalProjection (V i)) y) = y
⊢ ∑ i : ι, ↑((orthogonalProjection (V i)) (x + y)) = x + y
state_after: case add
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁶ : _root_.RCLike 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : InnerProductSpace ℝ F
K : Submodule 𝕜 E
ι : Type u_4
inst✝¹ : Fintype ι
V : ι → Submodule 𝕜 E
inst✝ : ∀ (i : ι), CompleteSpace ↥(V i)
hV : OrthogonalFamily 𝕜 (fun i => ↥(V i)) fun i => (V i).subtypeₗᵢ
x✝ x y : E
hx✝ : x ∈ ⨆ i, V i
hy✝ : y ∈ ⨆ i, V i
hx : ∑ i : ι, ↑((orthogonalProjection (V i)) x) = x
hy : ∑ i : ι, ↑((orthogonalProjection (V i)) y) = y
⊢ ∑ x_1 : ι, ↑((orthogonalProjection (V x_1)) x) + ∑ x : ι, ↑((orthogonalProjection (V x)) y) = x + y