Theorem: Pi.orthonormalBasis_apply
File: Mathlib/Analysis/InnerProductSpace/PiL2.lean

tactic: ext k
state_before: ι✝ : Type u_1
ι' : Type u_2
𝕜✝ : Type u_3
inst✝¹⁵ : _root_.RCLike 𝕜✝
E✝ : Type u_4
inst✝¹⁴ : NormedAddCommGroup E✝
inst✝¹³ : InnerProductSpace 𝕜✝ E✝
E' : Type u_5
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : InnerProductSpace 𝕜✝ E'
F : Type u_6
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : InnerProductSpace ℝ F
F' : Type u_7
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : InnerProductSpace ℝ F'
inst✝⁶ : Fintype ι✝
η : Type u_8
inst✝⁵ : Fintype η
inst✝⁴ : DecidableEq η
ι : η → Type u_9
inst✝³ : (i : η) → Fintype (ι i)
𝕜 : Type u_10
inst✝² : _root_.RCLike 𝕜
E : η → Type u_11
inst✝¹ : (i : η) → NormedAddCommGroup (E i)
inst✝ : (i : η) → InnerProductSpace 𝕜 (E i)
B : (i : η) → OrthonormalBasis (ι i) 𝕜 (E i)
j : (i : η) × ι i
⊢ (Pi.orthonormalBasis B) j = (WithLp.equiv 2 ((j : η) → E j)).symm (Pi.single j.fst ((B j.fst) j.snd))
state_after: case h
ι✝ : Type u_1
ι' : Type u_2
𝕜✝ : Type u_3
inst✝¹⁵ : _root_.RCLike 𝕜✝
E✝ : Type u_4
inst✝¹⁴ : NormedAddCommGroup E✝
inst✝¹³ : InnerProductSpace 𝕜✝ E✝
E' : Type u_5
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : InnerProductSpace 𝕜✝ E'
F : Type u_6
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : InnerProductSpace ℝ F
F' : Type u_7
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : InnerProductSpace ℝ F'
inst✝⁶ : Fintype ι✝
η : Type u_8
inst✝⁵ : Fintype η
inst✝⁴ : DecidableEq η
ι : η → Type u_9
inst✝³ : (i : η) → Fintype (ι i)
𝕜 : Type u_10
inst✝² : _root_.RCLike 𝕜
E : η → Type u_11
inst✝¹ : (i : η) → NormedAddCommGroup (E i)
inst✝ : (i : η) → InnerProductSpace 𝕜 (E i)
B : (i : η) → OrthonormalBasis (ι i) 𝕜 (E i)
j : (i : η) × ι i
k : η
⊢ (Pi.orthonormalBasis B) j k = (WithLp.equiv 2 ((j : η) → E j)).symm (Pi.single j.fst ((B j.fst) j.snd)) k

tactic: obtain ⟨i, j⟩ := j
state_before: case h
ι✝ : Type u_1
ι' : Type u_2
𝕜✝ : Type u_3
inst✝¹⁵ : _root_.RCLike 𝕜✝
E✝ : Type u_4
inst✝¹⁴ : NormedAddCommGroup E✝
inst✝¹³ : InnerProductSpace 𝕜✝ E✝
E' : Type u_5
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : InnerProductSpace 𝕜✝ E'
F : Type u_6
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : InnerProductSpace ℝ F
F' : Type u_7
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : InnerProductSpace ℝ F'
inst✝⁶ : Fintype ι✝
η : Type u_8
inst✝⁵ : Fintype η
inst✝⁴ : DecidableEq η
ι : η → Type u_9
inst✝³ : (i : η) → Fintype (ι i)
𝕜 : Type u_10
inst✝² : _root_.RCLike 𝕜
E : η → Type u_11
inst✝¹ : (i : η) → NormedAddCommGroup (E i)
inst✝ : (i : η) → InnerProductSpace 𝕜 (E i)
B : (i : η) → OrthonormalBasis (ι i) 𝕜 (E i)
j : (i : η) × ι i
k : η
⊢ (Pi.orthonormalBasis B) j k = (WithLp.equiv 2 ((j : η) → E j)).symm (Pi.single j.fst ((B j.fst) j.snd)) k
state_after: case h.mk
ι✝ : Type u_1
ι' : Type u_2
𝕜✝ : Type u_3
inst✝¹⁵ : _root_.RCLike 𝕜✝
E✝ : Type u_4
inst✝¹⁴ : NormedAddCommGroup E✝
inst✝¹³ : InnerProductSpace 𝕜✝ E✝
E' : Type u_5
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : InnerProductSpace 𝕜✝ E'
F : Type u_6
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : InnerProductSpace ℝ F
F' : Type u_7
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : InnerProductSpace ℝ F'
inst✝⁶ : Fintype ι✝
η : Type u_8
inst✝⁵ : Fintype η
inst✝⁴ : DecidableEq η
ι : η → Type u_9
inst✝³ : (i : η) → Fintype (ι i)
𝕜 : Type u_10
inst✝² : _root_.RCLike 𝕜
E : η → Type u_11
inst✝¹ : (i : η) → NormedAddCommGroup (E i)
inst✝ : (i : η) → InnerProductSpace 𝕜 (E i)
B : (i : η) → OrthonormalBasis (ι i) 𝕜 (E i)
k i : η
j : ι i
⊢ (Pi.orthonormalBasis B) ⟨i, j⟩ k =
    (WithLp.equiv 2 ((j : η) → E j)).symm (Pi.single ⟨i, j⟩.fst ((B ⟨i, j⟩.fst) ⟨i, j⟩.snd)) k

tactic: simp only [Pi.orthonormalBasis, coe_ofRepr, LinearIsometryEquiv.symm_trans,
  LinearIsometryEquiv.symm_symm, LinearIsometryEquiv.piLpCongrRight_symm,
  LinearIsometryEquiv.trans_apply, LinearIsometryEquiv.piLpCongrRight_apply,
  LinearIsometryEquiv.piLpCurry_apply, WithLp.equiv_single, WithLp.equiv_symm_pi_apply,
  Sigma.curry_single (γ := fun _ _ => 𝕜)]
state_before: case h.mk
ι✝ : Type u_1
ι' : Type u_2
𝕜✝ : Type u_3
inst✝¹⁵ : _root_.RCLike 𝕜✝
E✝ : Type u_4
inst✝¹⁴ : NormedAddCommGroup E✝
inst✝¹³ : InnerProductSpace 𝕜✝ E✝
E' : Type u_5
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : InnerProductSpace 𝕜✝ E'
F : Type u_6
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : InnerProductSpace ℝ F
F' : Type u_7
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : InnerProductSpace ℝ F'
inst✝⁶ : Fintype ι✝
η : Type u_8
inst✝⁵ : Fintype η
inst✝⁴ : DecidableEq η
ι : η → Type u_9
inst✝³ : (i : η) → Fintype (ι i)
𝕜 : Type u_10
inst✝² : _root_.RCLike 𝕜
E : η → Type u_11
inst✝¹ : (i : η) → NormedAddCommGroup (E i)
inst✝ : (i : η) → InnerProductSpace 𝕜 (E i)
B : (i : η) → OrthonormalBasis (ι i) 𝕜 (E i)
k i : η
j : ι i
⊢ (Pi.orthonormalBasis B) ⟨i, j⟩ k =
    (WithLp.equiv 2 ((j : η) → E j)).symm (Pi.single ⟨i, j⟩.fst ((B ⟨i, j⟩.fst) ⟨i, j⟩.snd)) k
state_after: case h.mk
ι✝ : Type u_1
ι' : Type u_2
𝕜✝ : Type u_3
inst✝¹⁵ : _root_.RCLike 𝕜✝
E✝ : Type u_4
inst✝¹⁴ : NormedAddCommGroup E✝
inst✝¹³ : InnerProductSpace 𝕜✝ E✝
E' : Type u_5
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : InnerProductSpace 𝕜✝ E'
F : Type u_6
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : InnerProductSpace ℝ F
F' : Type u_7
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : InnerProductSpace ℝ F'
inst✝⁶ : Fintype ι✝
η : Type u_8
inst✝⁵ : Fintype η
inst✝⁴ : DecidableEq η
ι : η → Type u_9
inst✝³ : (i : η) → Fintype (ι i)
𝕜 : Type u_10
inst✝² : _root_.RCLike 𝕜
E : η → Type u_11
inst✝¹ : (i : η) → NormedAddCommGroup (E i)
inst✝ : (i : η) → InnerProductSpace 𝕜 (E i)
B : (i : η) → OrthonormalBasis (ι i) 𝕜 (E i)
k i : η
j : ι i
⊢ (B k).repr.symm ((WithLp.equiv 2 (ι k → 𝕜)).symm (Pi.single i (Pi.single j 1) k)) = Pi.single i ((B i) j) k

tactic: obtain rfl | hi := Decidable.eq_or_ne i k
state_before: case h.mk
ι✝ : Type u_1
ι' : Type u_2
𝕜✝ : Type u_3
inst✝¹⁵ : _root_.RCLike 𝕜✝
E✝ : Type u_4
inst✝¹⁴ : NormedAddCommGroup E✝
inst✝¹³ : InnerProductSpace 𝕜✝ E✝
E' : Type u_5
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : InnerProductSpace 𝕜✝ E'
F : Type u_6
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : InnerProductSpace ℝ F
F' : Type u_7
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : InnerProductSpace ℝ F'
inst✝⁶ : Fintype ι✝
η : Type u_8
inst✝⁵ : Fintype η
inst✝⁴ : DecidableEq η
ι : η → Type u_9
inst✝³ : (i : η) → Fintype (ι i)
𝕜 : Type u_10
inst✝² : _root_.RCLike 𝕜
E : η → Type u_11
inst✝¹ : (i : η) → NormedAddCommGroup (E i)
inst✝ : (i : η) → InnerProductSpace 𝕜 (E i)
B : (i : η) → OrthonormalBasis (ι i) 𝕜 (E i)
k i : η
j : ι i
⊢ (B k).repr.symm ((WithLp.equiv 2 (ι k → 𝕜)).symm (Pi.single i (Pi.single j 1) k)) = Pi.single i ((B i) j) k
state_after: case h.mk.inl
ι✝ : Type u_1
ι' : Type u_2
𝕜✝ : Type u_3
inst✝¹⁵ : _root_.RCLike 𝕜✝
E✝ : Type u_4
inst✝¹⁴ : NormedAddCommGroup E✝
inst✝¹³ : InnerProductSpace 𝕜✝ E✝
E' : Type u_5
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : InnerProductSpace 𝕜✝ E'
F : Type u_6
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : InnerProductSpace ℝ F
F' : Type u_7
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : InnerProductSpace ℝ F'
inst✝⁶ : Fintype ι✝
η : Type u_8
inst✝⁵ : Fintype η
inst✝⁴ : DecidableEq η
ι : η → Type u_9
inst✝³ : (i : η) → Fintype (ι i)
𝕜 : Type u_10
inst✝² : _root_.RCLike 𝕜
E : η → Type u_11
inst✝¹ : (i : η) → NormedAddCommGroup (E i)
inst✝ : (i : η) → InnerProductSpace 𝕜 (E i)
B : (i : η) → OrthonormalBasis (ι i) 𝕜 (E i)
i : η
j : ι i
⊢ (B i).repr.symm ((WithLp.equiv 2 (ι i → 𝕜)).symm (Pi.single i (Pi.single j 1) i)) = Pi.single i ((B i) j) i

case h.mk.inr
ι✝ : Type u_1
ι' : Type u_2
𝕜✝ : Type u_3
inst✝¹⁵ : _root_.RCLike 𝕜✝
E✝ : Type u_4
inst✝¹⁴ : NormedAddCommGroup E✝
inst✝¹³ : InnerProductSpace 𝕜✝ E✝
E' : Type u_5
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : InnerProductSpace 𝕜✝ E'
F : Type u_6
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : InnerProductSpace ℝ F
F' : Type u_7
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : InnerProductSpace ℝ F'
inst✝⁶ : Fintype ι✝
η : Type u_8
inst✝⁵ : Fintype η
inst✝⁴ : DecidableEq η
ι : η → Type u_9
inst✝³ : (i : η) → Fintype (ι i)
𝕜 : Type u_10
inst✝² : _root_.RCLike 𝕜
E : η → Type u_11
inst✝¹ : (i : η) → NormedAddCommGroup (E i)
inst✝ : (i : η) → InnerProductSpace 𝕜 (E i)
B : (i : η) → OrthonormalBasis (ι i) 𝕜 (E i)
k i : η
j : ι i
hi : i ≠ k
⊢ (B k).repr.symm ((WithLp.equiv 2 (ι k → 𝕜)).symm (Pi.single i (Pi.single j 1) k)) = Pi.single i ((B i) j) k

tactic: simp only [Pi.single_eq_same, WithLp.equiv_symm_single, OrthonormalBasis.repr_symm_single]
state_before: case h.mk.inl
ι✝ : Type u_1
ι' : Type u_2
𝕜✝ : Type u_3
inst✝¹⁵ : _root_.RCLike 𝕜✝
E✝ : Type u_4
inst✝¹⁴ : NormedAddCommGroup E✝
inst✝¹³ : InnerProductSpace 𝕜✝ E✝
E' : Type u_5
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : InnerProductSpace 𝕜✝ E'
F : Type u_6
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : InnerProductSpace ℝ F
F' : Type u_7
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : InnerProductSpace ℝ F'
inst✝⁶ : Fintype ι✝
η : Type u_8
inst✝⁵ : Fintype η
inst✝⁴ : DecidableEq η
ι : η → Type u_9
inst✝³ : (i : η) → Fintype (ι i)
𝕜 : Type u_10
inst✝² : _root_.RCLike 𝕜
E : η → Type u_11
inst✝¹ : (i : η) → NormedAddCommGroup (E i)
inst✝ : (i : η) → InnerProductSpace 𝕜 (E i)
B : (i : η) → OrthonormalBasis (ι i) 𝕜 (E i)
i : η
j : ι i
⊢ (B i).repr.symm ((WithLp.equiv 2 (ι i → 𝕜)).symm (Pi.single i (Pi.single j 1) i)) = Pi.single i ((B i) j) i
state_after: no goals

tactic: simp only [Pi.single_eq_of_ne' hi, WithLp.equiv_symm_zero, _root_.map_zero]
state_before: case h.mk.inr
ι✝ : Type u_1
ι' : Type u_2
𝕜✝ : Type u_3
inst✝¹⁵ : _root_.RCLike 𝕜✝
E✝ : Type u_4
inst✝¹⁴ : NormedAddCommGroup E✝
inst✝¹³ : InnerProductSpace 𝕜✝ E✝
E' : Type u_5
inst✝¹² : NormedAddCommGroup E'
inst✝¹¹ : InnerProductSpace 𝕜✝ E'
F : Type u_6
inst✝¹⁰ : NormedAddCommGroup F
inst✝⁹ : InnerProductSpace ℝ F
F' : Type u_7
inst✝⁸ : NormedAddCommGroup F'
inst✝⁷ : InnerProductSpace ℝ F'
inst✝⁶ : Fintype ι✝
η : Type u_8
inst✝⁵ : Fintype η
inst✝⁴ : DecidableEq η
ι : η → Type u_9
inst✝³ : (i : η) → Fintype (ι i)
𝕜 : Type u_10
inst✝² : _root_.RCLike 𝕜
E : η → Type u_11
inst✝¹ : (i : η) → NormedAddCommGroup (E i)
inst✝ : (i : η) → InnerProductSpace 𝕜 (E i)
B : (i : η) → OrthonormalBasis (ι i) 𝕜 (E i)
k i : η
j : ι i
hi : i ≠ k
⊢ (B k).repr.symm ((WithLp.equiv 2 (ι k → 𝕜)).symm (Pi.single i (Pi.single j 1) k)) = Pi.single i ((B i) j) k
state_after: no goals