Documentation

TauCeti.LinearAlgebra.Matrix.GeneralLinearGroup.Symplectic.Basic

The symplectic group as a subgroup of the general linear group #

For a commutative ring R and a finite index type l, the matrices M with M J Mᵀ = J form Mathlib's Matrix.symplecticGroup l R, a Submonoid of the matrix monoid whose elements happen to be invertible: its inverse is a separate Inv instance, and its Group structure is built by hand. The algebraic-group development instead needs the symplectic group inside the general linear group — the concrete target that the points of the symplectic group scheme will be identified with, the way TauCeti.GL2Borel is the concrete target for the Borel coordinate Hopf algebra.

TauCeti.GLSymplectic is that subgroup of GL (l ⊕ l) R. Its carrier is literally membership of the underlying matrix in Matrix.symplecticGroup l R, so the defining conditions M J Mᵀ = J and Mᵀ J M = J transfer directly, and TauCeti.GLSymplectic.mulEquivSymplecticGroup identifies the subgroup with Mathlib's group so that neither view is reproved from the other. Invertibility costs nothing: Mathlib's symplectic group is a group, so MonoidHom.toHomUnits reads it into the general linear group, which is what makes the two carriers agree, and closure under the unit inverse is Mathlib's computation M⁻¹ = (-J) Mᵀ J (SymplecticGroup.inv_eq_symplectic_inv) transported across Matrix.coe_units_inv.

Everything works over an arbitrary commutative ring and an arbitrary finite index type, including the empty index type and the zero ring; there is no nontriviality, rank, or characteristic hypothesis. The index type is l ⊕ l throughout, matching Matrix.J.

The final sections construct the elementary one-parameter subgroups belonging to the long roots ±2eᵢ and the short roots eᵢ-eⱼ, eᵢ+eⱼ, and -eᵢ-eⱼ in Fin (m+m) coordinates. The symplectic coordinate Hopf algebra and group scheme live in TauCeti.Algebra.AlgebraicGroup.Symplectic.Basic; their root-subgroup morphisms live in TauCeti.Algebra.AlgebraicGroup.Symplectic.RootSubgroup.Basic.

Main declarations #

References #

The identification with Mathlib's Matrix.symplecticGroup is routine and is not adapted from the reference.

def TauCeti.GLSymplectic (l : Type u_1) [DecidableEq l] [Fintype l] (R : Type u) [CommRing R] :
Subgroup (GL (l ⊕ l) R)

The symplectic group as a subgroup of GL (l ⊕ l) R: the invertible matrices whose underlying matrix satisfies M J Mᵀ = J. TauCeti.GLSymplectic.mulEquivSymplecticGroup identifies it with Mathlib's submonoid form Matrix.symplecticGroup.

Equations
Instances For
    @[simp]

    An invertible matrix lies in the symplectic subgroup exactly when its underlying matrix lies in Mathlib's Matrix.symplecticGroup.

    theorem TauCeti.GLSymplectic.mem_iff {l : Type u_1} [DecidableEq l] [Fintype l] {R : Type u} [CommRing R] {M : GL (l ⊕ l) R} :
    M ∈ GLSymplectic l R ↔ ↑M * Matrix.J l R * (↑M).transpose = Matrix.J l R

    Membership in the symplectic subgroup, in the form M J Mᵀ = J.

    theorem TauCeti.GLSymplectic.mem_iff' {l : Type u_1} [DecidableEq l] [Fintype l] {R : Type u} [CommRing R] {M : GL (l ⊕ l) R} :
    M ∈ GLSymplectic l R ↔ (↑M).transpose * Matrix.J l R * ↑M = Matrix.J l R

    Membership in the symplectic subgroup, in the transposed form Mᵀ J M = J.

    Mathlib's symplectic group, read into the general linear group: MonoidHom.toHomUnits of the inclusion of Matrix.symplecticGroup into the matrix monoid, whose inverses are the symplectic group's own.

    Equations
    Instances For
      @[simp]
      theorem TauCeti.GLSymplectic.coe_ofSymplecticGroup (l : Type u_1) [DecidableEq l] [Fintype l] (R : Type u) [CommRing R] (S : ↥(Matrix.symplecticGroup l R)) :
      ↑((ofSymplecticGroup l R) S) = ↑S

      A symplectic matrix, read into the general linear group, has itself as underlying matrix.

      A symplectic matrix, read into the general linear group, lies in the symplectic subgroup.

      The symplectic subgroup of the general linear group is Mathlib's symplectic group. The two carriers agree because a symplectic matrix is invertible in Mathlib's symplectic group, so the equivalence is the identity on underlying matrices; its content is that the two group structures match.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem TauCeti.GLSymplectic.coe_mulEquivSymplecticGroup (l : Type u_1) [DecidableEq l] [Fintype l] (R : Type u) [CommRing R] (M : ↥(GLSymplectic l R)) :
        ↑((mulEquivSymplecticGroup l R) M) = ↑↑M

        The equivalence with Mathlib's symplectic group keeps the underlying matrix.

        def TauCeti.GLSymplectic.symJ (l : Type u_1) [DecidableEq l] [Fintype l] (R : Type u) [CommRing R] :
        ↥(GLSymplectic l R)

        The standard alternating form Matrix.J, as an element of the symplectic subgroup.

        Equations
        Instances For
          @[simp]
          theorem TauCeti.GLSymplectic.coe_symJ (l : Type u_1) [DecidableEq l] [Fintype l] (R : Type u) [CommRing R] :
          ↑↑(symJ l R) = Matrix.J l R

          The underlying matrix of symJ is the standard alternating form Matrix.J.

          theorem TauCeti.GLSymplectic.map_mem {l : Type u_1} [DecidableEq l] [Fintype l] {R : Type u} [CommRing R] {S : Type u_2} [CommRing S] (f : R →+* S) {M : GL (l ⊕ l) R} (hM : M ∈ GLSymplectic l R) :

          A ring morphism of value rings carries symplectic matrices to symplectic matrices.

          def TauCeti.GLSymplectic.map (l : Type u_1) [DecidableEq l] [Fintype l] {R : Type u} [CommRing R] {S : Type u_2} [CommRing S] (f : R →+* S) :
          ↥(GLSymplectic l R) →* ↥(GLSymplectic l S)

          The group morphism between symplectic subgroups induced by a ring morphism of value rings: the restriction of Matrix.GeneralLinearGroup.map, which acts entrywise.

          Equations
          Instances For
            @[simp]
            theorem TauCeti.GLSymplectic.coe_map {l : Type u_1} [DecidableEq l] [Fintype l] {R : Type u} [CommRing R] {S : Type u_2} [CommRing S] (f : R →+* S) (M : ↥(GLSymplectic l R)) :
            ↑((map l f) M) = (Matrix.GeneralLinearGroup.map f) ↑M

            The underlying general-linear value of the induced morphism is Matrix.GeneralLinearGroup.map.

            @[simp]

            The map induced by the identity ring morphism is the identity.

            @[simp]
            theorem TauCeti.GLSymplectic.map_comp {l : Type u_1} [DecidableEq l] [Fintype l] {R : Type u} [CommRing R] {S : Type u_2} [CommRing S] {T : Type u_3} [CommRing T] (f : R →+* S) (g : S →+* T) :
            map l (g.comp f) = (map l g).comp (map l f)

            The map induced by a composite of ring morphisms is the composite of the induced maps.

            The Fin-indexed presentation #

            The coordinate ring of GLₙ is indexed by Fin n, so the symplectic group scheme cuts its subgroup out of GL (Fin (m + m)) A rather than GL (Fin m ⊕ Fin m) A. This section transports the alternating form and the subgroup along finSumFinEquiv and records that nothing is lost.

            def TauCeti.JFin (m : ℕ) (R : Type u) [CommRing R] :
            Matrix (Fin (m + m)) (Fin (m + m)) R

            The standard alternating form in Fin (m + m) coordinates: Matrix.J, transported along finSumFinEquiv.

            Equations
            Instances For
              @[simp]
              theorem TauCeti.JFin_map (m : ℕ) {R : Type u} [CommRing R] {S : Type u_2} [CommRing S] (f : R →+* S) :
              (JFin m R).map ⇑f = JFin m S

              Entrywise application of a ring morphism carries the transported alternating form to the transported alternating form.

              @[simp]

              Transporting back along finSumFinEquiv recovers Matrix.J.

              theorem TauCeti.JFin_two_eq (R : Type u) [CommRing R] :
              JFin 2 R = !![0, 0, -1, 0; 0, 0, 0, -1; 1, 0, 0, 0; 0, 1, 0, 0]

              The transported alternating form of Sp₄, written out.

              theorem TauCeti.JFin_mul_self (m : ℕ) (R : Type u) [CommRing R] :
              JFin m R * JFin m R = -1

              The transported alternating form squares to -1, which is Mathlib's Matrix.J_squared read through the reindexing.

              theorem TauCeti.submatrix_mem_symplecticGroup {m : ℕ} {R : Type u} [CommRing R] {g : Matrix (Fin (m + m)) (Fin (m + m)) R} (hg : g * JFin m R * g.transpose = JFin m R) :

              A matrix preserving the transported alternating form is a symplectic matrix in Mathlib's sum-indexed coordinates. This is how a consumer reads off what the symplectic condition gives beyond the defining equation, rather than reproving it in Fin (m + m) coordinates.

              Conversely, a matrix that is symplectic in Mathlib's sum-indexed coordinates preserves the transported alternating form.

              The symplectic adjoint, read in Mathlib's sum-indexed coordinates, is the adjoint of the reindexed matrix. This is the transport that identifies it with the inverse in Matrix.symplecticGroup.

              theorem TauCeti.neg_JFin_mul_transpose_mul_JFin_mul_JFin_mul_transpose {m : ℕ} {R : Type u} [CommRing R] {g : Matrix (Fin (m + m)) (Fin (m + m)) R} (hg : g * JFin m R * g.transpose = JFin m R) :
              -(JFin m R * g.transpose * JFin m R) * JFin m R * (-(JFin m R * g.transpose * JFin m R)).transpose = JFin m R

              The symplectic adjoint of a matrix preserving the transported alternating form preserves it too. The adjoint is the inverse, and Mathlib's symplectic matrices are closed under inversion.

              theorem TauCeti.transpose_mul_JFin_mul_self {m : ℕ} {R : Type u} [CommRing R] {g : Matrix (Fin (m + m)) (Fin (m + m)) R} (hg : g * JFin m R * g.transpose = JFin m R) :
              g.transpose * JFin m R * g = JFin m R

              The column form of the symplectic condition, which is Mathlib's SymplecticGroup.mem_iff' read through the reindexing.

              def TauCeti.GLSymplecticFin (m : ℕ) (R : Type u) [CommRing R] :
              Subgroup (GL (Fin (m + m)) R)

              The symplectic subgroup of GL (Fin (m + m)) R: the pullback of TauCeti.GLSymplectic along the reindexing isomorphism.

              Equations
              Instances For
                @[simp]
                theorem TauCeti.GLSymplecticFin.mem_iff {m : ℕ} {R : Type u} [CommRing R] {M : GL (Fin (m + m)) R} :
                M ∈ GLSymplecticFin m R ↔ ↑M * JFin m R * (↑M).transpose = JFin m R

                Membership in the Fin-indexed symplectic subgroup is the defining condition M J Mᵀ = J against the transported alternating form.

                theorem TauCeti.GLSymplecticFin.mem_iff' {m : ℕ} {R : Type u} [CommRing R] {M : GL (Fin (m + m)) R} :
                M ∈ GLSymplecticFin m R ↔ (↑M).transpose * JFin m R * ↑M = JFin m R

                Membership in the Fin-indexed symplectic subgroup, in the transposed form Mᵀ J M = J.

                The two presentations of the symplectic subgroup agree: reindexing along finSumFinEquiv identifies the Fin (m + m)-indexed subgroup with the Fin m ⊕ Fin m-indexed one.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]

                  The identification of the two presentations reindexes the underlying invertible matrix along finSumFinEquiv.

                  def TauCeti.GLSymplecticFin.map (m : ℕ) (R : Type u) [CommRing R] {S : Type u_2} [CommRing S] (f : R →+* S) :

                  A ring morphism carries Fin-indexed symplectic matrices to symplectic matrices.

                  Equations
                  Instances For
                    @[simp]
                    theorem TauCeti.GLSymplecticFin.coe_map (m : ℕ) (R : Type u) [CommRing R] {S : Type u_2} [CommRing S] (f : R →+* S) (M : ↥(GLSymplecticFin m R)) :
                    ↑((map m R f) M) = (Matrix.GeneralLinearGroup.map f) ↑M

                    The underlying general-linear element of a mapped symplectic matrix is its entrywise map.

                    Long-root transvections #

                    An upper-block and a lower-block index have distinct images in Fin (m + m).

                    A lower-block and an upper-block index have distinct images in Fin (m + m).

                    @[simp]

                    Reindexing a transvection from Fin (m + m) coordinates to sum coordinates recovers the transvection at the corresponding sum indices.

                    The symplectic matrix x_{2eᵢ}(c) = 1 + c E_{i,m+i}, in Fin (m + m) coordinates.

                    Equations
                    Instances For
                      @[simp]

                      The matrix underlying the positive long-root transvection is the corresponding elementary transvection.

                      The symplectic matrix x_{-2eᵢ}(c) = 1 + c E_{m+i,i}, in Fin (m + m) coordinates.

                      Equations
                      Instances For
                        @[simp]

                        The matrix underlying the negative long-root transvection is the corresponding elementary transvection.

                        The positive long-root transvections form a one-parameter subgroup.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For

                          The negative long-root transvections form a one-parameter subgroup.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            @[simp]

                            The positive long-root one-parameter subgroup sends c to the transvection with parameter Multiplicative.toAdd c.

                            @[simp]

                            The negative long-root one-parameter subgroup sends c to the transvection with parameter Multiplicative.toAdd c.

                            @[simp]

                            Adding parameters multiplies positive long-root transvections.

                            @[simp]

                            Inverting a positive long-root transvection negates its parameter.

                            @[simp]

                            Adding parameters multiplies negative long-root transvections.

                            @[simp]

                            Inverting a negative long-root transvection negates its parameter.

                            @[simp]

                            Positive long-root transvections are natural in the coefficient ring.

                            @[simp]

                            Negative long-root transvections are natural in the coefficient ring.

                            Distinct parameters give distinct positive long-root transvections.

                            Distinct parameters give distinct negative long-root transvections.

                            Short-root elements #

                            The two indices of the first transvection defining x_{eᵢ-eⱼ} are distinct.

                            The two indices of the second transvection defining x_{eᵢ-eⱼ} are distinct.

                            In sum coordinates, the two elementary matrices defining a difference-root element form a block-diagonal pair of transvections.

                            The one-parameter subgroup attached to the short root eᵢ-eⱼ.

                            Equations
                            Instances For

                              The one-parameter subgroup attached to the short root eᵢ+eⱼ.

                              Equations
                              Instances For

                                The one-parameter subgroup attached to the short root -eᵢ-eⱼ.

                                Equations
                                Instances For
                                  def TauCeti.GLSymplecticFin.differenceShortRootUnit {m : ℕ} {R : Type u} [CommRing R] {i j : Fin m} (hij : i ≠ j) (c : R) :

                                  The symplectic short-root element x_{eᵢ-eⱼ}(c) = (1 + c E_{i,j})(1 - c E_{m+j,m+i}).

                                  Equations
                                  Instances For
                                    def TauCeti.GLSymplecticFin.positiveSumShortRootUnit {m : ℕ} {R : Type u} [CommRing R] {i j : Fin m} (hij : i ≠ j) (c : R) :

                                    The paired symplectic element (1 + c E_{i,m+j})(1 + c E_{j,m+i}), which is x_{eᵢ+eⱼ}(c) when i ≠ j.

                                    Equations
                                    Instances For
                                      def TauCeti.GLSymplecticFin.negativeSumShortRootUnit {m : ℕ} {R : Type u} [CommRing R] {i j : Fin m} (hij : i ≠ j) (c : R) :

                                      The paired symplectic element (1 + c E_{m+i,j})(1 + c E_{m+j,i}), which is x_{-eᵢ-eⱼ}(c) when i ≠ j.

                                      Equations
                                      Instances For
                                        @[simp]

                                        The difference short-root homomorphism evaluates to its paired transvection.

                                        @[simp]

                                        The positive-sum short-root homomorphism evaluates to its paired transvection.

                                        @[simp]

                                        The negative-sum short-root homomorphism evaluates to its paired transvection.

                                        theorem TauCeti.GLSymplecticFin.differenceShortRootUnit_congr {m : ℕ} {R : Type u} [CommRing R] {i j i' j' : Fin m} (hij : i ≠ j) (hij' : i' ≠ j') (hi : i = i') (hj : j = j') (c : R) :

                                        For a fixed parameter, the difference short-root element depends only on its index pair. Two proofs that the indices differ, and two spellings of the same indices, give the same element.

                                        @[simp]
                                        theorem TauCeti.GLSymplecticFin.coe_differenceShortRootUnit {m : ℕ} {R : Type u} [CommRing R] {i j : Fin m} (hij : i ≠ j) (c : R) :

                                        The general-linear matrix underlying x_{eᵢ-eⱼ}(c) is its two-transvection formula.

                                        The matrix underlying x_{eᵢ-eⱼ}(c), as the identity plus two matrix units.

                                        @[simp]
                                        theorem TauCeti.GLSymplecticFin.coe_positiveSumShortRootUnit {m : ℕ} {R : Type u} [CommRing R] {i j : Fin m} (hij : i ≠ j) (c : R) :

                                        The general-linear matrix underlying x_{eᵢ+eⱼ}(c) is its two-transvection formula.

                                        @[simp]
                                        theorem TauCeti.GLSymplecticFin.coe_negativeSumShortRootUnit {m : ℕ} {R : Type u} [CommRing R] {i j : Fin m} (hij : i ≠ j) (c : R) :

                                        The general-linear matrix underlying x_{-eᵢ-eⱼ}(c) is its two-transvection formula.

                                        Swapping the two indices does not change a positive-sum short-root homomorphism.

                                        Swapping the two indices does not change a negative-sum short-root homomorphism.

                                        @[simp]
                                        theorem TauCeti.GLSymplecticFin.map_differenceShortRootUnit {m : ℕ} {R : Type u} [CommRing R] {S : Type u_2} [CommRing S] (f : R →+* S) {i j : Fin m} (hij : i ≠ j) (c : R) :

                                        Difference short-root elements commute with change of coefficient ring.

                                        @[simp]
                                        theorem TauCeti.GLSymplecticFin.map_positiveSumShortRootUnit {m : ℕ} {R : Type u} [CommRing R] {S : Type u_2} [CommRing S] (f : R →+* S) {i j : Fin m} (hij : i ≠ j) (c : R) :

                                        Positive-sum short-root elements commute with change of coefficient ring.

                                        @[simp]
                                        theorem TauCeti.GLSymplecticFin.map_negativeSumShortRootUnit {m : ℕ} {R : Type u} [CommRing R] {S : Type u_2} [CommRing S] (f : R →+* S) {i j : Fin m} (hij : i ≠ j) (c : R) :

                                        Negative-sum short-root elements commute with change of coefficient ring.

                                        The (i,j) entry recovers the parameter of a difference short-root element.

                                        The (i,m+j) entry recovers the parameter of a positive-sum short-root element.

                                        The (m+i,j) entry recovers the parameter of a negative-sum short-root element.

                                        Distinct parameters give distinct difference short-root elements.

                                        Distinct parameters give distinct positive-sum short-root elements.

                                        Distinct parameters give distinct negative-sum short-root elements.

                                        The three uniform families of short roots in the standard type-Cₘ realization.

                                        The difference family is ordered: swapping i and j changes eᵢ-eⱼ to its negative. The two sum families are symmetric in i and j.

                                        Instances For
                                          @[simp]

                                          The difference family specializes to the concrete difference short-root homomorphism.

                                          @[simp]

                                          The positive-sum family specializes to the concrete positive-sum short-root homomorphism.

                                          @[simp]

                                          The negative-sum family specializes to the concrete negative-sum short-root homomorphism.

                                          @[simp]
                                          theorem TauCeti.GLSymplecticFin.ShortRootFamily.map_hom_apply {m : ℕ} {R : Type u} [CommRing R] {S : Type v} [CommRing S] (family : ShortRootFamily) (f : R →+* S) {i j : Fin m} (hij : i ≠ j) (c : Multiplicative R) :
                                          (map m R f) ((family.hom hij) c) = (family.hom hij) (Multiplicative.ofAdd (f (Multiplicative.toAdd c)))

                                          Evaluating a short-root one-parameter subgroup commutes with change of coefficients.

                                          theorem TauCeti.GLSymplecticFin.ShortRootFamily.hom_injective {m : ℕ} {R : Type u} [CommRing R] (family : ShortRootFamily) {i j : Fin m} (hij : i ≠ j) :
                                          Function.Injective ⇑(family.hom hij)

                                          Every short-root one-parameter subgroup is injective.

                                          An extensional index for the root one-parameter subgroups of the standard symplectic group.

                                          Difference roots retain their ordered pair of indices. The symmetric positive- and negative-sum roots store their indices in increasing order, so each root has only one index.

                                          Instances For

                                            The canonical root index for a short-root family and two distinct indices. Sum roots are normalized to increasing index order.

                                            Equations
                                            Instances For
                                              @[simp]

                                              The canonical short-root index leaves a difference root ordered.

                                              @[simp]

                                              Increasing indices are already the canonical order for a positive sum root.

                                              @[simp]

                                              Increasing indices are already the canonical order for a negative sum root.

                                              Swapping the inputs gives the same canonical positive-sum root index.

                                              Swapping the inputs gives the same canonical negative-sum root index.

                                              @[simp]

                                              The positive-long constructor selects the positive long-root homomorphism.

                                              @[simp]

                                              The negative-long constructor selects the negative long-root homomorphism.

                                              @[simp]

                                              The difference-root constructor selects the corresponding difference-root homomorphism.

                                              @[simp]

                                              The positive-sum constructor selects the corresponding positive-sum homomorphism.

                                              @[simp]

                                              The negative-sum constructor selects the corresponding negative-sum homomorphism.

                                              @[simp]
                                              theorem TauCeti.GLSymplecticFin.RootSubgroupIndex.hom_short {m : ℕ} {R : Type u} [CommRing R] (family : ShortRootFamily) (i j : Fin m) (hij : i ≠ j) :
                                              (short family i j hij).hom = family.hom hij

                                              The short constructor selects its family's short-root homomorphism.

                                              @[simp]
                                              theorem TauCeti.GLSymplecticFin.RootSubgroupIndex.map_hom_apply {m : ℕ} {R : Type u} [CommRing R] {S : Type v} [CommRing S] (root : RootSubgroupIndex m) (f : R →+* S) (c : Multiplicative R) :
                                              (map m R f) (root.hom c) = root.hom (Multiplicative.ofAdd (f (Multiplicative.toAdd c)))

                                              Evaluating any root one-parameter subgroup commutes with change of coefficients.

                                              Every symplectic root one-parameter subgroup is injective.