Skip to content

Commit eab0863

Browse files
committed
feat(Analysis): LinearMap.id is unitary (leanprover-community#39066)
This is for simp. From MeanFourier
1 parent e981638 commit eab0863

2 files changed

Lines changed: 10 additions & 6 deletions

File tree

β€ŽMathlib/Analysis/InnerProductSpace/Adjoint.leanβ€Ž

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,8 @@ theorem _root_.LinearMap.IsSymmetric.clm_adjoint_eq {A : E β†’L[π•œ] E} (hA : A
171171
A† = A := by
172172
rwa [eq_comm, eq_adjoint_iff A A]
173173

174-
theorem adjoint_id : (ContinuousLinearMap.id π•œ E)† = ContinuousLinearMap.id π•œ E := by
175-
simp
174+
lemma adjoint_id : (.id π•œ E)† = .id π•œ E := by simp
175+
lemma adjoint_one : (1 : E β†’L[π•œ] E)† = 1 := by simp
176176

177177
theorem _root_.Submodule.adjoint_subtypeL (U : Submodule π•œ E) [CompleteSpace U] :
178178
U.subtypeL† = U.orthogonalProjection := by
@@ -256,6 +256,8 @@ theorem star_eq_adjoint (A : E β†’L[π•œ] E) : star A = A† :=
256256
theorem isSelfAdjoint_iff' {A : E β†’L[π•œ] E} : IsSelfAdjoint A ↔ A† = A :=
257257
Iff.rfl
258258

259+
@[simp] lemma id_mem_unitary : .id π•œ E ∈ unitary (E β†’L[π•œ] E) := one_mem _
260+
259261
theorem norm_adjoint_comp_self (A : E β†’L[π•œ] F) :
260262
β€–A† ∘L Aβ€– = β€–Aβ€– * β€–Aβ€– := by
261263
refine le_antisymm ?_ ?_
@@ -584,8 +586,8 @@ theorem IsSymmetric.adjoint_eq {A : E β†’β‚—[π•œ] E} (hA : A.IsSymmetric) :
584586
A.adjoint = A := by
585587
rwa [eq_comm, eq_adjoint_iff A A]
586588

587-
theorem adjoint_id : (LinearMap.id (R := π•œ) (M := E)).adjoint = LinearMap.id := by
588-
simp
589+
lemma adjoint_id : (.id : E β†’β‚—[π•œ] E).adjoint = .id := by simp
590+
lemma adjoint_one : (1 : E β†’β‚—[π•œ] E).adjoint = 1 := by simp
589591

590592
/-- 7.6(b) from [axler2024].
591593
See `ContinuousLinearMap.orthogonal_ker` for the infinite-dimensional version. -/
@@ -692,6 +694,8 @@ theorem isSymmetric_iff_isSelfAdjoint (A : E β†’β‚—[π•œ] E) : IsSymmetric A ↔
692694
rw [isSelfAdjoint_iff', IsSymmetric, ← LinearMap.eq_adjoint_iff]
693695
exact eq_comm
694696

697+
@[simp] lemma id_mem_unitary : .id ∈ unitary (E β†’β‚—[π•œ] E) := one_mem _
698+
695699
theorem isAdjointPair_inner (A : E β†’β‚—[π•œ] F) :
696700
IsAdjointPair (innerβ‚›β‚— π•œ (E := E)).flip
697701
(innerβ‚›β‚— π•œ (E := F)).flip A A.adjoint := by

β€ŽMathlib/Analysis/InnerProductSpace/Symmetric.leanβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ theorem IsSymmetric.apply_clm {T : E β†’L[π•œ] E} (hT : IsSymmetric (T : E β†’
8080
protected theorem IsSymmetric.zero : (0 : E β†’β‚—[π•œ] E).IsSymmetric := fun x y =>
8181
(inner_zero_right x : βŸͺx, 0⟫ = 0).symm β–Έ (inner_zero_left y : βŸͺ0, y⟫ = 0)
8282

83-
@[simp]
84-
protected theorem IsSymmetric.id : (LinearMap.id : E β†’β‚—[π•œ] E).IsSymmetric := fun _ _ => rfl
83+
@[simp] protected lemma IsSymmetric.id : (.id : E β†’β‚—[π•œ] E).IsSymmetric := fun _ _ ↦ rfl
84+
@[simp] protected lemma IsSymmetric.one : (1 : E β†’β‚—[π•œ] E).IsSymmetric := fun _ _ ↦ rfl
8585

8686
@[aesop safe apply]
8787
theorem IsSymmetric.add {T S : E β†’β‚—[π•œ] E} (hT : T.IsSymmetric) (hS : S.IsSymmetric) :

0 commit comments

Comments
Β (0)