Documentation

Mathlib.LinearAlgebra.SymplecticGroup

The Symplectic Group #

This file defines the symplectic group and proves elementary properties.

Main Definitions #

TODO #

def Matrix.J (l : Type u_1) (R : Type u_2) [DecidableEq l] [CommRing R] :
Matrix (l โŠ• l) (l โŠ• l) R

The matrix defining the canonical skew-symmetric bilinear form.

Instances For
    @[simp]
    theorem Matrix.J_transpose (l : Type u_1) (R : Type u_2) [DecidableEq l] [CommRing R] :
    (J l R).transpose = -J l R
    theorem Matrix.J_squared (l : Type u_1) (R : Type u_2) [DecidableEq l] [CommRing R] [Fintype l] :
    J l R * J l R = -1
    theorem Matrix.J_inv (l : Type u_1) (R : Type u_2) [DecidableEq l] [CommRing R] [Fintype l] :
    (J l R)โปยน = -J l R
    theorem Matrix.J_det_mul_J_det (l : Type u_1) (R : Type u_2) [DecidableEq l] [CommRing R] [Fintype l] :
    (J l R).det * (J l R).det = 1
    theorem Matrix.isUnit_det_J (l : Type u_1) (R : Type u_2) [DecidableEq l] [CommRing R] [Fintype l] :
    IsUnit (J l R).det
    def Matrix.symplecticGroup (l : Type u_1) (R : Type u_2) [DecidableEq l] [CommRing R] [Fintype l] :
    Submonoid (Matrix (l โŠ• l) (l โŠ• l) R)

    The group of symplectic matrices over a ring R.

    Instances For
      theorem SymplecticGroup.mem_iff {l : Type u_1} {R : Type u_2} [DecidableEq l] [Fintype l] [CommRing R] {A : Matrix (l โŠ• l) (l โŠ• l) R} :
      A โˆˆ Matrix.symplecticGroup l R โ†” A * Matrix.J l R * A.transpose = Matrix.J l R
      @[implicit_reducible]
      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)
      theorem SymplecticGroup.J_mem (l : Type u_1) (R : Type u_2) [DecidableEq l] [Fintype l] [CommRing R] :
      def SymplecticGroup.symJ (l : Type u_1) (R : Type u_2) [DecidableEq l] [Fintype l] [CommRing R] :

      The canonical skew-symmetric matrix as an element in the symplectic group.

      Instances For
        @[simp]
        theorem SymplecticGroup.coe_J {l : Type u_1} {R : Type u_2} [DecidableEq l] [Fintype l] [CommRing R] :
        โ†‘(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) :
        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) :
        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) :
        @[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
        theorem SymplecticGroup.mem_iff' {l : Type u_1} {R : Type u_2} [DecidableEq l] [Fintype l] [CommRing R] {A : Matrix (l โŠ• l) (l โŠ• l) R} :
        A โˆˆ Matrix.symplecticGroup l R โ†” A.transpose * Matrix.J l R * A = Matrix.J l R
        @[implicit_reducible]
        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)) :
        โ†‘Aโปยน = -Matrix.J l R * (โ†‘A).transpose * Matrix.J l R
        theorem SymplecticGroup.inv_left_mul_aux {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) :
        -(Matrix.J l R * A.transpose * Matrix.J l R * A) = 1
        theorem SymplecticGroup.coe_inv' {l : Type u_1} {R : Type u_2} [DecidableEq l] [Fintype l] [CommRing R] (A : โ†ฅ(Matrix.symplecticGroup l R)) :
        โ†‘Aโปยน = (โ†‘A)โปยน
        theorem SymplecticGroup.inv_eq_symplectic_inv {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) :
        @[implicit_reducible]