@@ -183,7 +183,8 @@ variable [Fintype ι]
183183@[simp]
184184theorem finrank_euclideanSpace :
185185 Module.finrank 𝕜 (EuclideanSpace 𝕜 ι) = Fintype.card ι := by
186- simp [WithLp]
186+ convert (WithLp.linearEquiv 2 𝕜 (ι → 𝕜)).finrank_eq
187+ simp
187188
188189theorem finrank_euclideanSpace_fin {n : ℕ} :
189190 Module.finrank 𝕜 (EuclideanSpace 𝕜 (Fin n)) = n := by simp
@@ -202,11 +203,12 @@ def DirectSum.IsInternal.isometryL2OfOrthogonalFamily [DecidableEq ι] {V : ι
202203 E ≃ₗᵢ[𝕜] PiLp 2 fun i => V i := by
203204 let e₁ := DirectSum.linearEquivFunOnFintype 𝕜 ι fun i => V i
204205 let e₂ := LinearEquiv.ofBijective (DirectSum.coeLinearMap V) hV
205- refine LinearEquiv.isometryOfInner (e₂.symm.trans e₁) ?_
206+ refine LinearEquiv.isometryOfInner ((e₂.symm.trans e₁).trans
207+ (WithLp.linearEquiv 2 𝕜 (Π i, V i)).symm) ?_
206208 suffices ∀ (v w : PiLp 2 fun i => V i), ⟪v, w⟫ = ⟪e₂ (e₁.symm v), e₂ (e₁.symm w)⟫ by
207209 intro v₀ w₀
208- convert this (e₁ (e₂.symm v₀)) (e₁ (e₂.symm w₀)) <;>
209- simp only [LinearEquiv.symm_apply_apply, LinearEquiv.apply_symm_apply]
210+ simp only [LinearEquiv.trans_apply, linearEquiv_symm_apply]
211+ convert this (toLp 2 (e₁ (e₂.symm v₀))) (toLp 2 (e₁ (e₂.symm w₀))) <;> simp
210212 intro v w
211213 trans ⟪∑ i, (V i).subtypeₗᵢ (v i), ∑ i, (V i).subtypeₗᵢ (w i)⟫
212214 · simp only [sum_inner, hV'.inner_right_fintype, PiLp.inner_apply]
@@ -263,7 +265,7 @@ theorem EuclideanSpace.single_apply (i : ι) (a : 𝕜) (j : ι) :
263265
264266@[simp]
265267theorem EuclideanSpace.single_eq_zero_iff {i : ι} {a : 𝕜} :
266- EuclideanSpace.single i a = 0 ↔ a = 0 := Pi.single_eq_zero_iff
268+ EuclideanSpace.single i a = 0 ↔ a = 0 := (toLp_eq_zero 2 ).trans Pi.single_eq_zero_iff
267269
268270variable [Fintype ι]
269271
@@ -430,14 +432,14 @@ lemma inner_eq_ite [DecidableEq ι] (b : OrthonormalBasis ι 𝕜 E) (i j : ι)
430432
431433/-- The `Basis ι 𝕜 E` underlying the `OrthonormalBasis` -/
432434protected def toBasis (b : OrthonormalBasis ι 𝕜 E) : Basis ι 𝕜 E :=
433- Basis.ofEquivFun b.repr.toLinearEquiv
435+ Basis.ofEquivFun ( b.repr.toLinearEquiv.trans (WithLp.linearEquiv 2 𝕜 (ι → 𝕜)))
434436
435437@[simp]
436438protected theorem coe_toBasis (b : OrthonormalBasis ι 𝕜 E) : (⇑b.toBasis : ι → E) = ⇑b := rfl
437439
438440@[simp]
439441protected theorem coe_toBasis_repr (b : OrthonormalBasis ι 𝕜 E) :
440- b.toBasis.equivFun = b.repr.toLinearEquiv :=
442+ b.toBasis.equivFun = b.repr.toLinearEquiv.trans (WithLp.linearEquiv 2 𝕜 (ι → 𝕜)) :=
441443 Basis.equivFun_ofEquivFun _
442444
443445@[simp]
@@ -446,6 +448,7 @@ protected theorem coe_toBasis_repr_apply (b : OrthonormalBasis ι 𝕜 E) (x : E
446448 rw [← Basis.equivFun_apply, OrthonormalBasis.coe_toBasis_repr]
447449 -- This used to be `rw`, but we need `erw` after https://github.com/leanprover/lean4/pull/2644
448450 erw [LinearIsometryEquiv.coe_toLinearEquiv]
451+ rfl
449452
450453protected theorem sum_repr (b : OrthonormalBasis ι 𝕜 E) (x : E) : ∑ i, b.repr x i • b i = x := by
451454 simp_rw [← b.coe_toBasis_repr_apply, ← b.coe_toBasis]
@@ -536,11 +539,11 @@ protected theorem toBasis_map {G : Type*} [NormedAddCommGroup G] [InnerProductSp
536539def _root_.Module.Basis.toOrthonormalBasis (v : Basis ι 𝕜 E) (hv : Orthonormal 𝕜 v) :
537540 OrthonormalBasis ι 𝕜 E :=
538541 OrthonormalBasis.ofRepr <|
539- LinearEquiv.isometryOfInner v.equivFun
542+ LinearEquiv.isometryOfInner ( v.equivFun.trans (WithLp.linearEquiv 2 𝕜 (ι → 𝕜)).symm)
540543 (by
541544 intro x y
542- let p : EuclideanSpace 𝕜 ι := v.equivFun x
543- let q : EuclideanSpace 𝕜 ι := v.equivFun y
545+ let p : EuclideanSpace 𝕜 ι := toLp 2 ( v.equivFun x)
546+ let q : EuclideanSpace 𝕜 ι := toLp 2 ( v.equivFun y)
544547 have key : ⟪p, q⟫ = ⟪∑ i, p i • v i, ∑ i, q i • v i⟫ := by
545548 simp [inner_sum, inner_smul_right, hv.inner_left_fintype, PiLp.inner_apply]
546549 convert key
@@ -549,19 +552,23 @@ def _root_.Module.Basis.toOrthonormalBasis (v : Basis ι 𝕜 E) (hv : Orthonorm
549552
550553@[simp]
551554theorem _root_.Module.Basis.coe_toOrthonormalBasis_repr (v : Basis ι 𝕜 E) (hv : Orthonormal 𝕜 v) :
552- ((v.toOrthonormalBasis hv).repr : E → EuclideanSpace 𝕜 ι) = v.equivFun :=
555+ ((v.toOrthonormalBasis hv).repr : E → EuclideanSpace 𝕜 ι) =
556+ v.equivFun.trans (WithLp.linearEquiv 2 𝕜 (ι → 𝕜)).symm :=
553557 rfl
554558
555559@[simp]
556- theorem _root_.Module.Basis.coe_toOrthonormalBasis_repr_symm (v : Basis ι 𝕜 E)
557- (hv : Orthonormal 𝕜 v) :
558- ((v.toOrthonormalBasis hv).repr.symm : EuclideanSpace 𝕜 ι → E) = v.equivFun.symm :=
560+ theorem _root_.Module.Basis.coe_toOrthonormalBasis_repr_symm
561+ (v : Basis ι 𝕜 E) (hv : Orthonormal 𝕜 v) :
562+ ((v.toOrthonormalBasis hv).repr.symm : EuclideanSpace 𝕜 ι → E) =
563+ (WithLp.linearEquiv 2 𝕜 (ι → 𝕜)).trans v.equivFun.symm :=
559564 rfl
560565
561566@[simp]
562567theorem _root_.Module.Basis.toBasis_toOrthonormalBasis (v : Basis ι 𝕜 E) (hv : Orthonormal 𝕜 v) :
563568 (v.toOrthonormalBasis hv).toBasis = v := by
564- simp [Basis.toOrthonormalBasis, OrthonormalBasis.toBasis]
569+ simp only [OrthonormalBasis.toBasis, Basis.toOrthonormalBasis,
570+ LinearEquiv.isometryOfInner_toLinearEquiv]
571+ exact v.ofEquivFun_equivFun
565572
566573@[simp]
567574theorem _root_.Module.Basis.coe_toOrthonormalBasis (v : Basis ι 𝕜 E) (hv : Orthonormal 𝕜 v) :
@@ -636,7 +643,7 @@ theorem _root_.Pi.orthonormalBasis_repr {η : Type*} [Fintype η] {ι : η → T
636643 [∀ i, Fintype (ι i)] {𝕜 : Type *} [RCLike 𝕜] {E : η → Type *} [∀ i, NormedAddCommGroup (E i)]
637644 [∀ i, InnerProductSpace 𝕜 (E i)] (B : ∀ i, OrthonormalBasis (ι i) 𝕜 (E i)) (x : (i : η) → E i)
638645 (j : (i : η) × (ι i)) :
639- (Pi.orthonormalBasis B).repr x j = (B j.fst).repr (x j.fst) j.snd := rfl
646+ (Pi.orthonormalBasis B).repr (toLp 2 x) j = (B j.fst).repr (x j.fst) j.snd := rfl
640647
641648variable {v : ι → E}
642649
@@ -776,11 +783,10 @@ lemma equiv_symm : (b.equiv b' e).symm = b'.equiv b e.symm := by
776783@[simp]
777784lemma equiv_apply_basis (i : ι) : b.equiv b' e (b i) = b' (e i) := by
778785 classical
779- simp only [OrthonormalBasis.equiv, LinearIsometryEquiv.trans_apply, OrthonormalBasis.repr_self,
780- LinearIsometryEquiv.piLpCongrLeft_apply]
786+ simp only [OrthonormalBasis.equiv, LinearIsometryEquiv.trans_apply, OrthonormalBasis.repr_self]
781787 refine DFunLike.congr rfl ?_
782788 ext j
783- simp [Equiv.symm_apply_eq]
789+ simp [Pi.single_apply, Equiv.symm_apply_eq]
784790
785791@[simp]
786792lemma equiv_self_rfl : b.equiv b (.refl ι) = .refl 𝕜 E := by
0 commit comments