Skip to content

Commit a8c0a9d

Browse files
committed
feat(LinearAlgebra/UnitaryGroup): the transpose and conjugate of a unitary matrix as a unitary matrix (leanprover-community#35447)
1 parent 731b7f4 commit a8c0a9d

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

Mathlib/LinearAlgebra/UnitaryGroup.lean

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,32 @@ theorem toGL_mul (A B : unitaryGroup n α) : toGL (A * B) = toGL A * toGL B := U
200200
def embeddingGL : unitaryGroup n α →* GeneralLinearGroup α (n → α) :=
201201
⟨⟨fun A => toGL A, toGL_one⟩, toGL_mul⟩
202202

203+
theorem _root_.Matrix.transpose_mem_unitaryGroup_iff {U : Matrix n n α} :
204+
Uᵀ ∈ unitaryGroup n α ↔ U ∈ unitaryGroup n α := by
205+
conv_rhs => rw [mem_unitaryGroup_iff']
206+
rw [mem_unitaryGroup_iff, show star Uᵀ = (star U)ᵀ by rfl, ← transpose_mul, ← transpose_inj]
207+
simp
208+
209+
theorem _root_.Matrix.map_star_mem_unitaryGroup_iff {U : Matrix n n α} :
210+
U.map star ∈ unitaryGroup n α ↔ U ∈ unitaryGroup n α := by
211+
simp [← conjTranspose_transpose, transpose_mem_unitaryGroup_iff, ← star_eq_conjTranspose]
212+
213+
/-- The transpose of a unitary matrix as a unitary matrix. -/
214+
@[simps] def transpose (U : unitaryGroup n α) : unitaryGroup n α :=
215+
⟨Uᵀ, transpose_mem_unitaryGroup_iff.mpr (SetLike.coe_mem _)⟩
216+
217+
/-- The `Matrix.map star` of a unitary matrix (i.e., taking the `star` of
218+
each element in the matrix) as a unitary matrix. -/
219+
@[simps] def map_star (U : unitaryGroup n α) : unitaryGroup n α :=
220+
⟨(U : Matrix n n α).map star, map_star_mem_unitaryGroup_iff.mpr (SetLike.coe_mem _)⟩
221+
222+
theorem map_star_inv_eq_transpose (U : unitaryGroup n α) :
223+
(map_star U)⁻¹ = UnitaryGroup.transpose U := by ext; simp
224+
225+
theorem transpose_inv_eq_map_star (U : unitaryGroup n α) :
226+
(UnitaryGroup.transpose U)⁻¹ = map_star U := by
227+
simp [← map_star_inv_eq_transpose]
228+
203229
end UnitaryGroup
204230

205231
section specialUnitaryGroup

0 commit comments

Comments
 (0)