@@ -348,6 +348,11 @@ protected def map {G : Type*} [inner_product_space 𝕜 G] (b : orthonormal_basi
348
348
(b : orthonormal_basis ι 𝕜 E) (L : E ≃ₗᵢ[𝕜] G) (i : ι) :
349
349
b.map L i = L (b i) := rfl
350
350
351
+ @[simp] protected lemma to_basis_map {G : Type *} [inner_product_space 𝕜 G]
352
+ (b : orthonormal_basis ι 𝕜 E) (L : E ≃ₗᵢ[𝕜] G) :
353
+ (b.map L).to_basis = b.to_basis.map L.to_linear_equiv :=
354
+ rfl
355
+
351
356
/-- A basis that is orthonormal is an orthonormal basis. -/
352
357
def _root_.basis.to_orthonormal_basis (v : basis ι 𝕜 E) (hv : orthonormal 𝕜 v) :
353
358
orthonormal_basis ι 𝕜 E :=
@@ -470,66 +475,52 @@ by { classical,
470
475
471
476
end orthonormal_basis
472
477
473
- /-- If `f : E ≃ₗᵢ[𝕜] E'` is a linear isometry of inner product spaces then an orthonormal basis `v`
474
- of `E` determines a linear isometry `e : E' ≃ₗᵢ[𝕜] euclidean_space 𝕜 ι`. This result states that
475
- `e` may be obtained either by transporting `v` to `E'` or by composing with the linear isometry
476
- `E ≃ₗᵢ[𝕜] euclidean_space 𝕜 ι` provided by `v`. -/
477
- @[simp] lemma basis.map_isometry_euclidean_of_orthonormal (v : basis ι 𝕜 E) (hv : orthonormal 𝕜 v)
478
- (f : E ≃ₗᵢ[𝕜] E') :
479
- ((v.map f.to_linear_equiv).to_orthonormal_basis (hv.map_linear_isometry_equiv f)).repr =
480
- f.symm.trans (v.to_orthonormal_basis hv).repr :=
481
- linear_isometry_equiv.to_linear_equiv_injective $ v.map_equiv_fun _
482
-
483
- /-- `ℂ` is isometric to `ℝ²` with the Euclidean inner product. -/
484
- def complex.isometry_euclidean : ℂ ≃ₗᵢ[ℝ] (euclidean_space ℝ (fin 2 )) :=
478
+ /-- `![1, I]` is an orthonormal basis for `ℂ` considered as a real inner product space. -/
479
+ def complex.orthonormal_basis_one_I : orthonormal_basis (fin 2 ) ℝ ℂ :=
485
480
(complex.basis_one_I.to_orthonormal_basis
486
481
begin
487
482
rw orthonormal_iff_ite,
488
483
intros i, fin_cases i;
489
484
intros j; fin_cases j;
490
485
simp [real_inner_eq_re_inner]
491
- end ).repr
486
+ end )
492
487
493
- @[simp] lemma complex.isometry_euclidean_symm_apply (x : euclidean_space ℝ (fin 2 )) :
494
- complex.isometry_euclidean.symm x = (x 0 ) + (x 1 ) * I :=
495
- begin
496
- convert complex.basis_one_I.equiv_fun_symm_apply x,
497
- { simpa },
498
- { simp },
499
- end
488
+ @[simp] lemma complex.orthonormal_basis_one_I_repr_apply (z : ℂ) :
489
+ complex.orthonormal_basis_one_I.repr z = ![z.re, z.im] :=
490
+ rfl
500
491
501
- lemma complex.isometry_euclidean_proj_eq_self (z : ℂ) :
502
- ↑(complex.isometry_euclidean z 0 ) + ↑(complex.isometry_euclidean z 1 ) * (I : ℂ) = z :=
503
- by rw [← complex.isometry_euclidean_symm_apply (complex.isometry_euclidean z),
504
- complex.isometry_euclidean.symm_apply_apply z]
492
+ @[simp] lemma complex.orthonormal_basis_one_I_repr_symm_apply (x : euclidean_space ℝ (fin 2 )) :
493
+ complex.orthonormal_basis_one_I.repr.symm x = (x 0 ) + (x 1 ) * I :=
494
+ rfl
505
495
506
- @[simp] lemma complex.isometry_euclidean_apply_zero (z : ℂ) :
507
- complex.isometry_euclidean z 0 = z.re :=
508
- by { conv_rhs { rw ← complex.isometry_euclidean_proj_eq_self z }, simp }
496
+ @[simp] lemma complex.to_basis_orthonormal_basis_one_I :
497
+ complex.orthonormal_basis_one_I.to_basis = complex.basis_one_I :=
498
+ basis.to_basis_to_orthonormal_basis _ _
509
499
510
- @[simp] lemma complex.isometry_euclidean_apply_one (z : ℂ) :
511
- complex.isometry_euclidean z 1 = z.im :=
512
- by { conv_rhs { rw ← complex.isometry_euclidean_proj_eq_self z }, simp }
500
+ @[simp] lemma complex.coe_orthonormal_basis_one_I :
501
+ ( complex.orthonormal_basis_one_I : (fin 2 ) → ℂ) = ![ 1 , I] :=
502
+ by simp [ complex.orthonormal_basis_one_I]
513
503
514
504
/-- The isometry between `ℂ` and a two-dimensional real inner product space given by a basis. -/
515
- def complex.isometry_of_orthonormal { v : basis (fin 2 ) ℝ F} (hv : orthonormal ℝ v ) : ℂ ≃ₗᵢ[ℝ] F :=
516
- complex.isometry_euclidean. trans (v.to_orthonormal_basis hv) .repr.symm
505
+ def complex.isometry_of_orthonormal ( v : orthonormal_basis (fin 2 ) ℝ F) : ℂ ≃ₗᵢ[ℝ] F :=
506
+ complex.orthonormal_basis_one_I.repr. trans v .repr.symm
517
507
518
- @[simp] lemma complex.map_isometry_of_orthonormal { v : basis (fin 2 ) ℝ F} (hv : orthonormal ℝ v )
508
+ @[simp] lemma complex.map_isometry_of_orthonormal ( v : orthonormal_basis (fin 2 ) ℝ F)
519
509
(f : F ≃ₗᵢ[ℝ] F') :
520
- complex.isometry_of_orthonormal (hv.map_linear_isometry_equiv f) =
521
- (complex.isometry_of_orthonormal hv ).trans f :=
522
- by simp [complex.isometry_of_orthonormal, linear_isometry_equiv.trans_assoc]
510
+ complex.isometry_of_orthonormal (v.map f) =
511
+ (complex.isometry_of_orthonormal v ).trans f :=
512
+ by simp [complex.isometry_of_orthonormal, linear_isometry_equiv.trans_assoc, orthonormal_basis.map ]
523
513
524
514
lemma complex.isometry_of_orthonormal_symm_apply
525
- {v : basis (fin 2 ) ℝ F} (hv : orthonormal ℝ v) (f : F) :
526
- (complex.isometry_of_orthonormal hv).symm f = (v.coord 0 f : ℂ) + (v.coord 1 f : ℂ) * I :=
515
+ (v : orthonormal_basis (fin 2 ) ℝ F) (f : F) :
516
+ (complex.isometry_of_orthonormal v).symm f
517
+ = (v.to_basis.coord 0 f : ℂ) + (v.to_basis.coord 1 f : ℂ) * I :=
527
518
by simp [complex.isometry_of_orthonormal]
528
519
529
520
lemma complex.isometry_of_orthonormal_apply
530
- { v : basis (fin 2 ) ℝ F} (hv : orthonormal ℝ v ) (z : ℂ) :
531
- complex.isometry_of_orthonormal hv z = z.re • v 0 + z.im • v 1 :=
532
- by simp [complex.isometry_of_orthonormal, (dec_trivial : (finset.univ : finset (fin 2 )) = { 0 , 1 }) ]
521
+ ( v : orthonormal_basis (fin 2 ) ℝ F) (z : ℂ) :
522
+ complex.isometry_of_orthonormal v z = z.re • v 0 + z.im • v 1 :=
523
+ by simp [complex.isometry_of_orthonormal, ← v.sum_repr_symm ]
533
524
534
525
open finite_dimensional
535
526
0 commit comments