The Symplectic Group #
This file defines the symplectic group and proves elementary properties.
Main Definitions #
Matrix.J
: the canonical2n × 2n
skew-symmetric matrixsymplecticGroup
: the group of symplectic matrices
TODO #
- Every symplectic matrix has determinant 1.
- For
n = 1
the symplectic group coincides with the special linear group.
@[simp]
theorem
Matrix.isUnit_det_J
(l : Type u_1)
(R : Type u_2)
[DecidableEq l]
[CommRing R]
[Fintype l]
:
The group of symplectic matrices over a ring R
.
Equations
Instances For
instance
SymplecticGroup.coeMatrix
{l : Type u_1}
{R : Type u_2}
[DecidableEq l]
[Fintype l]
[CommRing R]
:
Coe (↥(Matrix.symplecticGroup l R)) (Matrix (l ⊕ l) (l ⊕ l) R)
Equations
- SymplecticGroup.coeMatrix = { coe := Subtype.val }
theorem
SymplecticGroup.J_mem
(l : Type u_1)
(R : Type u_2)
[DecidableEq l]
[Fintype l]
[CommRing R]
:
Matrix.J l R ∈ Matrix.symplecticGroup l R
def
SymplecticGroup.symJ
(l : Type u_1)
(R : Type u_2)
[DecidableEq l]
[Fintype l]
[CommRing R]
:
↥(Matrix.symplecticGroup l R)
The canonical skew-symmetric matrix as an element in the symplectic group.
Equations
- SymplecticGroup.symJ l R = ⟨Matrix.J l R, ⋯⟩
Instances For
@[simp]
theorem
SymplecticGroup.coe_J
{l : Type u_1}
{R : Type u_2}
[DecidableEq l]
[Fintype l]
[CommRing R]
:
↑(SymplecticGroup.symJ l R) = Matrix.J l R
theorem
SymplecticGroup.neg_mem
{l : Type u_1}
{R : Type u_2}
[DecidableEq l]
[Fintype l]
[CommRing R]
{A : Matrix (l ⊕ l) (l ⊕ l) R}
(h : A ∈ Matrix.symplecticGroup l R)
:
-A ∈ Matrix.symplecticGroup l R
theorem
SymplecticGroup.symplectic_det
{l : Type u_1}
{R : Type u_2}
[DecidableEq l]
[Fintype l]
[CommRing R]
{A : Matrix (l ⊕ l) (l ⊕ l) R}
(hA : A ∈ Matrix.symplecticGroup l R)
:
IsUnit A.det
theorem
SymplecticGroup.transpose_mem
{l : Type u_1}
{R : Type u_2}
[DecidableEq l]
[Fintype l]
[CommRing R]
{A : Matrix (l ⊕ l) (l ⊕ l) R}
(hA : A ∈ Matrix.symplecticGroup l R)
:
A.transpose ∈ Matrix.symplecticGroup l R
@[simp]
theorem
SymplecticGroup.transpose_mem_iff
{l : Type u_1}
{R : Type u_2}
[DecidableEq l]
[Fintype l]
[CommRing R]
{A : Matrix (l ⊕ l) (l ⊕ l) R}
:
A.transpose ∈ Matrix.symplecticGroup l R ↔ A ∈ Matrix.symplecticGroup l R
instance
SymplecticGroup.hasInv
{l : Type u_1}
{R : Type u_2}
[DecidableEq l]
[Fintype l]
[CommRing R]
:
Inv ↥(Matrix.symplecticGroup l R)
theorem
SymplecticGroup.coe_inv
{l : Type u_1}
{R : Type u_2}
[DecidableEq l]
[Fintype l]
[CommRing R]
(A : ↥(Matrix.symplecticGroup l R))
:
theorem
SymplecticGroup.coe_inv'
{l : Type u_1}
{R : Type u_2}
[DecidableEq l]
[Fintype l]
[CommRing R]
(A : ↥(Matrix.symplecticGroup l R))
:
instance
SymplecticGroup.instGroupSubtypeMatrixSumMemSubmonoidSymplecticGroup
{l : Type u_1}
{R : Type u_2}
[DecidableEq l]
[Fintype l]
[CommRing R]
:
Group ↥(Matrix.symplecticGroup l R)