The Symplectic Group #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines the symplectic group and proves elementary properties.
Main Definitions #
matrix.J
: the canonical 2n × 2n
skew-symmetric matrix
symplectic_group
: the group of symplectic matrices
TODO #
- Every symplectic matrix has determinant 1.
- For
n = 1
the symplectic group coincides with the special linear group.
theorem
matrix.is_unit_det_J
(l : Type u_1)
(R : Type u_2)
[decidable_eq l]
[comm_ring R]
[fintype l] :
def
matrix.symplectic_group
(l : Type u_1)
(R : Type u_2)
[decidable_eq l]
[comm_ring R]
[fintype l] :
The group of symplectic matrices over a ring R
.
Equations
Instances for ↥matrix.symplectic_group
@[protected, instance]
def
symplectic_group.coe_matrix
{l : Type u_1}
{R : Type u_2}
[decidable_eq l]
[fintype l]
[comm_ring R] :
Equations
theorem
symplectic_group.J_mem
(l : Type u_1)
(R : Type u_2)
[decidable_eq l]
[fintype l]
[comm_ring R] :
matrix.J l R ∈ matrix.symplectic_group l R
def
symplectic_group.sym_J
(l : Type u_1)
(R : Type u_2)
[decidable_eq l]
[fintype l]
[comm_ring R] :
↥(matrix.symplectic_group l R)
The canonical skew-symmetric matrix as an element in the symplectic group.
Equations
- symplectic_group.sym_J l R = ⟨matrix.J l R _inst_3, _⟩
@[simp]
theorem
symplectic_group.coe_J
{l : Type u_1}
{R : Type u_2}
[decidable_eq l]
[fintype l]
[comm_ring R] :
↑(symplectic_group.sym_J l R) = matrix.J l R
theorem
symplectic_group.neg_mem
{l : Type u_1}
{R : Type u_2}
[decidable_eq l]
[fintype l]
[comm_ring R]
{A : matrix (l ⊕ l) (l ⊕ l) R}
(h : A ∈ matrix.symplectic_group l R) :
-A ∈ matrix.symplectic_group l R
theorem
symplectic_group.symplectic_det
{l : Type u_1}
{R : Type u_2}
[decidable_eq l]
[fintype l]
[comm_ring R]
{A : matrix (l ⊕ l) (l ⊕ l) R}
(hA : A ∈ matrix.symplectic_group l R) :
theorem
symplectic_group.transpose_mem
{l : Type u_1}
{R : Type u_2}
[decidable_eq l]
[fintype l]
[comm_ring R]
{A : matrix (l ⊕ l) (l ⊕ l) R}
(hA : A ∈ matrix.symplectic_group l R) :
@[simp]
theorem
symplectic_group.transpose_mem_iff
{l : Type u_1}
{R : Type u_2}
[decidable_eq l]
[fintype l]
[comm_ring R]
{A : matrix (l ⊕ l) (l ⊕ l) R} :
A.transpose ∈ matrix.symplectic_group l R ↔ A ∈ matrix.symplectic_group l R
@[protected, instance]
def
symplectic_group.matrix.symplectic_group.has_inv
{l : Type u_1}
{R : Type u_2}
[decidable_eq l]
[fintype l]
[comm_ring R] :
theorem
symplectic_group.coe_inv'
{l : Type u_1}
{R : Type u_2}
[decidable_eq l]
[fintype l]
[comm_ring R]
(A : ↥(matrix.symplectic_group l R)) :
@[protected, instance]
def
symplectic_group.matrix.symplectic_group.group
{l : Type u_1}
{R : Type u_2}
[decidable_eq l]
[fintype l]
[comm_ring R] :
Equations
- symplectic_group.matrix.symplectic_group.group = {mul := monoid.mul (matrix.symplectic_group l R).to_monoid, mul_assoc := _, one := monoid.one (matrix.symplectic_group l R).to_monoid, one_mul := _, mul_one := _, npow := monoid.npow (matrix.symplectic_group l R).to_monoid, npow_zero' := _, npow_succ' := _, inv := has_inv.inv symplectic_group.matrix.symplectic_group.has_inv, div := div_inv_monoid.div._default monoid.mul symplectic_group.matrix.symplectic_group.group._proof_6 monoid.one symplectic_group.matrix.symplectic_group.group._proof_7 symplectic_group.matrix.symplectic_group.group._proof_8 monoid.npow symplectic_group.matrix.symplectic_group.group._proof_9 symplectic_group.matrix.symplectic_group.group._proof_10 has_inv.inv, div_eq_mul_inv := _, zpow := div_inv_monoid.zpow._default monoid.mul symplectic_group.matrix.symplectic_group.group._proof_12 monoid.one symplectic_group.matrix.symplectic_group.group._proof_13 symplectic_group.matrix.symplectic_group.group._proof_14 monoid.npow symplectic_group.matrix.symplectic_group.group._proof_15 symplectic_group.matrix.symplectic_group.group._proof_16 has_inv.inv, zpow_zero' := _, zpow_succ' := _, zpow_neg' := _, mul_left_inv := _}