Theorem: orthonormal_iUnion_of_directed
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: classical
rw [orthonormal_subtype_iff_ite]
rintro x ⟨_, ⟨i, rfl⟩, hxi⟩ y ⟨_, ⟨j, rfl⟩, hyj⟩
obtain ⟨k, hik, hjk⟩ := hs i j
have h_orth : Orthonormal 𝕜 (fun x => x : s k → E) := h k
rw [orthonormal_subtype_iff_ite] at h_orth
exact h_orth x (hik hxi) y (hjk hyj)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
η : Type u_5
s : η → Set E
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), Orthonormal 𝕜 fun x => ↑x
⊢ Orthonormal 𝕜 fun x => ↑x
state_after: no goals

tactic: rw [orthonormal_subtype_iff_ite]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
η : Type u_5
s : η → Set E
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), Orthonormal 𝕜 fun x => ↑x
⊢ Orthonormal 𝕜 fun x => ↑x
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
η : Type u_5
s : η → Set E
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), Orthonormal 𝕜 fun x => ↑x
⊢ ∀ v ∈ ⋃ i, s i, ∀ w ∈ ⋃ i, s i, ⟪v, w⟫_𝕜 = if v = w then 1 else 0

tactic: rintro x ⟨_, ⟨i, rfl⟩, hxi⟩ y ⟨_, ⟨j, rfl⟩, hyj⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
η : Type u_5
s : η → Set E
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), Orthonormal 𝕜 fun x => ↑x
⊢ ∀ v ∈ ⋃ i, s i, ∀ w ∈ ⋃ i, s i, ⟪v, w⟫_𝕜 = if v = w then 1 else 0
state_after: case intro.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
η : Type u_5
s : η → Set E
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), Orthonormal 𝕜 fun x => ↑x
x : E
i : η
hxi : x ∈ (fun i => s i) i
y : E
j : η
hyj : y ∈ (fun i => s i) j
⊢ ⟪x, y⟫_𝕜 = if x = y then 1 else 0

tactic: obtain ⟨k, hik, hjk⟩ := hs i j
state_before: case intro.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
η : Type u_5
s : η → Set E
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), Orthonormal 𝕜 fun x => ↑x
x : E
i : η
hxi : x ∈ (fun i => s i) i
y : E
j : η
hyj : y ∈ (fun i => s i) j
⊢ ⟪x, y⟫_𝕜 = if x = y then 1 else 0
state_after: case intro.intro.intro.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
η : Type u_5
s : η → Set E
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), Orthonormal 𝕜 fun x => ↑x
x : E
i : η
hxi : x ∈ (fun i => s i) i
y : E
j : η
hyj : y ∈ (fun i => s i) j
k : η
hik : s i ⊆ s k
hjk : s j ⊆ s k
⊢ ⟪x, y⟫_𝕜 = if x = y then 1 else 0

tactic: have h_orth : Orthonormal 𝕜 (fun x => x : s k → E) := h k
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
η : Type u_5
s : η → Set E
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), Orthonormal 𝕜 fun x => ↑x
x : E
i : η
hxi : x ∈ (fun i => s i) i
y : E
j : η
hyj : y ∈ (fun i => s i) j
k : η
hik : s i ⊆ s k
hjk : s j ⊆ s k
⊢ ⟪x, y⟫_𝕜 = if x = y then 1 else 0
state_after: case intro.intro.intro.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
η : Type u_5
s : η → Set E
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), Orthonormal 𝕜 fun x => ↑x
x : E
i : η
hxi : x ∈ (fun i => s i) i
y : E
j : η
hyj : y ∈ (fun i => s i) j
k : η
hik : s i ⊆ s k
hjk : s j ⊆ s k
h_orth : Orthonormal 𝕜 fun x => ↑x
⊢ ⟪x, y⟫_𝕜 = if x = y then 1 else 0

tactic: rw [orthonormal_subtype_iff_ite] at h_orth
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
η : Type u_5
s : η → Set E
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), Orthonormal 𝕜 fun x => ↑x
x : E
i : η
hxi : x ∈ (fun i => s i) i
y : E
j : η
hyj : y ∈ (fun i => s i) j
k : η
hik : s i ⊆ s k
hjk : s j ⊆ s k
h_orth : Orthonormal 𝕜 fun x => ↑x
⊢ ⟪x, y⟫_𝕜 = if x = y then 1 else 0
state_after: case intro.intro.intro.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
η : Type u_5
s : η → Set E
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), Orthonormal 𝕜 fun x => ↑x
x : E
i : η
hxi : x ∈ (fun i => s i) i
y : E
j : η
hyj : y ∈ (fun i => s i) j
k : η
hik : s i ⊆ s k
hjk : s j ⊆ s k
h_orth : ∀ v ∈ s k, ∀ w ∈ s k, ⟪v, w⟫_𝕜 = if v = w then 1 else 0
⊢ ⟪x, y⟫_𝕜 = if x = y then 1 else 0

tactic: exact h_orth x (hik hxi) y (hjk hyj)
state_before: case intro.intro.intro.intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
η : Type u_5
s : η → Set E
hs : Directed (fun x x_1 => x ⊆ x_1) s
h : ∀ (i : η), Orthonormal 𝕜 fun x => ↑x
x : E
i : η
hxi : x ∈ (fun i => s i) i
y : E
j : η
hyj : y ∈ (fun i => s i) j
k : η
hik : s i ⊆ s k
hjk : s j ⊆ s k
h_orth : ∀ v ∈ s k, ∀ w ∈ s k, ⟪v, w⟫_𝕜 = if v = w then 1 else 0
⊢ ⟪x, y⟫_𝕜 = if x = y then 1 else 0
state_after: no goals