# mathlib3documentation

linear_algebra.unitary_group

# The Unitary Group #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

This file defines elements of the unitary group unitary_group n α, where α is a star_ring. This consists of all n by n matrices with entries in α such that the star-transpose is its inverse. In addition, we define the group structure on unitary_group n α, and the embedding into the general linear group general_linear_group α (n → α).

We also define the orthogonal group orthogonal_group n β, where β is a comm_ring.

## Main Definitions #

• matrix.unitary_group is the type of matrices where the star-transpose is the inverse
• matrix.unitary_group.group is the group structure (under multiplication)
• matrix.unitary_group.embedding_GL is the embedding unitary_group n α → GLₙ(α)
• matrix.orthogonal_group is the type of matrices where the transpose is the inverse

## Tags #

matrix group, group, unitary group, orthogonal group

@[reducible]
def matrix.unitary_group (n : Type u) [decidable_eq n] [fintype n] (α : Type v) [comm_ring α] [star_ring α] :
submonoid (matrix n n α)

unitary_group n is the group of n by n matrices where the star-transpose is the inverse.

theorem matrix.mem_unitary_group_iff {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] {A : n α} :
= 1
theorem matrix.mem_unitary_group_iff' {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] {A : n α} :
= 1
theorem matrix.det_of_mem_unitary {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] {A : n α} (hA : A ) :
A.det
@[protected, instance]
def matrix.unitary_group.coe_matrix {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] :
(matrix n n α)
Equations
@[protected, instance]
def matrix.unitary_group.coe_fun {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] :
(λ (_x : α)), n n α)
Equations
def matrix.unitary_group.to_lin' {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] (A : α)) :
(n α) →ₗ[α] n α

to_lin' A is matrix multiplication of vectors by A, as a linear map.

After the group structure on unitary_group n is defined, we show in to_linear_equiv that this gives a linear equivalence.

Equations
theorem matrix.unitary_group.ext_iff {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] (A B : α)) :
A = B (i j : n), A i j = B i j
@[ext]
theorem matrix.unitary_group.ext {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] (A B : α)) :
( (i j : n), A i j = B i j) A = B
@[simp]
theorem matrix.unitary_group.star_mul_self {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] (A : α)) :
.mul A = 1
@[simp]
theorem matrix.unitary_group.inv_val {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] (A : α)) :
@[simp]
theorem matrix.unitary_group.inv_apply {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] (A : α)) :
@[simp]
theorem matrix.unitary_group.mul_val {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] (A B : α)) :
(A * B) = B
@[simp]
theorem matrix.unitary_group.mul_apply {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] (A B : α)) :
(A * B) = B
@[simp]
theorem matrix.unitary_group.one_val {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] :
1 = 1
@[simp]
theorem matrix.unitary_group.one_apply {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] :
1 = 1
@[simp]
theorem matrix.unitary_group.to_lin'_mul {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] (A B : α)) :
@[simp]
theorem matrix.unitary_group.to_lin'_one {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] :
def matrix.unitary_group.to_linear_equiv {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] (A : α)) :
(n α) ≃ₗ[α] n α

to_linear_equiv A is matrix multiplication of vectors by A, as a linear equivalence.

Equations
def matrix.unitary_group.to_GL {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] (A : α)) :
(n α)

to_GL is the map from the unitary group to the general linear group

Equations
theorem matrix.unitary_group.coe_to_GL {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] (A : α)) :
@[simp]
theorem matrix.unitary_group.to_GL_one {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] :
@[simp]
theorem matrix.unitary_group.to_GL_mul {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] (A B : α)) :
def matrix.unitary_group.embedding_GL {n : Type u} [decidable_eq n] [fintype n] {α : Type v} [comm_ring α] [star_ring α] :
α) →* (n α)

unitary_group.embedding_GL is the embedding from unitary_group n α to general_linear_group n α.

Equations
@[reducible]
def matrix.orthogonal_group (n : Type u) [decidable_eq n] [fintype n] (β : Type v) [comm_ring β] :
submonoid (matrix n n β)

orthogonal_group n is the group of n by n matrices where the transpose is the inverse.

theorem matrix.mem_orthogonal_group_iff (n : Type u) [decidable_eq n] [fintype n] (β : Type v) [comm_ring β] {A : n β} :
= 1
theorem matrix.mem_orthogonal_group_iff' (n : Type u) [decidable_eq n] [fintype n] (β : Type v) [comm_ring β] {A : n β} :
= 1