Documentation

Mathlib.LinearAlgebra.RootSystem.Finite.G2

Properties of the 𝔤₂ root system. #

The 𝔤₂ root pairing is special enough to deserve its own API. We provide one in this file.

As an application we prove the key result that a crystallographic, reduced, irreducible root pairing containing two roots of Coxeter weight three is spanned by this pair of roots (and thus is two-dimensional). This result is usually proved only for pairs of roots belonging to a base (as a corollary of the fact that no node can have degree greater than three) and moreover usually requires stronger assumptions on the coefficients than here.

Main results: #

TODO #

Once sufficient API for RootPairing.Base has been developed:

class RootPairing.EmbeddedG2 {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) extends P.IsValuedIn , P.IsReduced :
Type u_1

A data-bearing typeclass which distinguishes a pair of roots whose pairing is -3. This is a sufficient condition for the span of this pair of roots to be a 𝔤₂ root system.

Instances
    class RootPairing.IsG2 {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) extends P.IsValuedIn , P.IsReduced, P.IsIrreducible :

    A prop-valued typeclass characterising the 𝔤₂ root system.

    Instances
      class RootPairing.IsNotG2 {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) extends P.IsValuedIn , P.IsReduced, P.IsIrreducible :

      A prop-valued typeclass stating that a crystallographic, reduced, irreducible root system is not 𝔤₂.

      Instances
        theorem RootPairing.isG2_iff {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.IsCrystallographic] [P.IsReduced] [P.IsIrreducible] :
        P.IsG2 ∃ (i : ι) (j : ι), P.pairingIn i j = -3
        theorem RootPairing.isNotG2_iff {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.IsCrystallographic] [P.IsReduced] [P.IsIrreducible] :
        P.IsNotG2 ∀ (i j : ι), P.pairingIn i j {-2, -1, 0, 1, 2}
        @[simp]
        theorem RootPairing.not_isG2_iff_isNotG2 {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.IsCrystallographic] [P.IsReduced] [P.IsIrreducible] [Finite ι] [CharZero R] [IsDomain R] :
        theorem RootPairing.IsG2.pairingIn_mem_zero_one_three {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.IsCrystallographic] [P.IsReduced] [P.IsIrreducible] [Finite ι] [CharZero R] [IsDomain R] [P.IsG2] (i j : ι) (h : P.root i P.root j) (h' : P.root i -P.root j) :
        P.pairingIn i j {-3, -1, 0, 1, 3}
        def RootPairing.EmbeddedG2.ofPairingInThree {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] [P.IsCrystallographic] [P.IsReduced] (long short : ι) (h : P.pairingIn long short = 3) :

        A pair of roots which pair to +3 are also sufficient to distinguish an embedded 𝔤₂.

        Equations
        @[simp]
        theorem RootPairing.EmbeddedG2.ofPairingInThree_short {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] [P.IsCrystallographic] [P.IsReduced] (long short : ι) (h : P.pairingIn long short = 3) :
        @[simp]
        theorem RootPairing.EmbeddedG2.ofPairingInThree_long {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] [P.IsCrystallographic] [P.IsReduced] (long short : ι) (h : P.pairingIn long short = 3) :
        instance RootPairing.EmbeddedG2.instIsG2OfIsIrreducible {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [P.IsIrreducible] :
        @[simp]
        theorem RootPairing.EmbeddedG2.pairing_long_short {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] :
        P.pairing (long P) (short P) = -3
        def RootPairing.EmbeddedG2.shortAddLong {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] :
        ι

        The index of the root α + β where α is the short root and β is the long root.

        Equations
        def RootPairing.EmbeddedG2.twoShortAddLong {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] :
        ι

        The index of the root 2α + β where α is the short root and β is the long root.

        Equations
        def RootPairing.EmbeddedG2.threeShortAddLong {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] :
        ι

        The index of the root 3α + β where α is the short root and β is the long root.

        Equations
        def RootPairing.EmbeddedG2.threeShortAddTwoLong {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] :
        ι

        The index of the root 3α + 2β where α is the short root and β is the long root.

        Equations
        @[reducible, inline]
        abbrev RootPairing.EmbeddedG2.shortRoot {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] :
        M

        The short root α.

        Equations
        @[reducible, inline]
        abbrev RootPairing.EmbeddedG2.longRoot {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] :
        M

        The long root β.

        Equations
        @[reducible, inline]
        abbrev RootPairing.EmbeddedG2.shortAddLongRoot {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] :
        M

        The short root α + β.

        Equations
        @[reducible, inline]
        abbrev RootPairing.EmbeddedG2.twoShortAddLongRoot {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] :
        M

        The short root 2α + β.

        Equations
        @[reducible, inline]
        abbrev RootPairing.EmbeddedG2.threeShortAddLongRoot {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] :
        M

        The short root 3α + β.

        Equations
        @[reducible, inline]
        abbrev RootPairing.EmbeddedG2.threeShortAddTwoLongRoot {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] :
        M

        The short root 3α + 2β.

        Equations
        @[reducible, inline]
        abbrev RootPairing.EmbeddedG2.allRoots {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] :

        The list of all 12 roots belonging to the embedded 𝔤₂.

        Equations
        • One or more equations did not get rendered due to their size.
        theorem RootPairing.EmbeddedG2.allRoots_subset_range_root {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [DecidableEq M] :
        @[simp]
        theorem RootPairing.EmbeddedG2.pairingIn_short_long {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] :
        P.pairingIn (short P) (long P) = -1
        @[simp]
        theorem RootPairing.EmbeddedG2.pairing_short_long {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] :
        P.pairing (short P) (long P) = -1
        theorem RootPairing.EmbeddedG2.shortAddLongRoot_eq {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] :
        theorem RootPairing.EmbeddedG2.twoShortAddLongRoot_eq {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] :
        theorem RootPairing.EmbeddedG2.threeShortAddLongRoot_eq {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] :
        @[reducible, inline]

        The coefficients of each root in the 𝔤₂ root pairing, relative to the base.

        Equations
        theorem RootPairing.EmbeddedG2.allRoots_nodup {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] :
        theorem RootPairing.EmbeddedG2.mem_span_of_mem_allRoots {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] {x : M} (hx : x allRoots P) :
        theorem RootPairing.EmbeddedG2.long_eq_three_mul_short {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] (B : P.InvariantForm) :
        (B.form (longRoot P)) (longRoot P) = 3 * (B.form (shortRoot P)) (shortRoot P)
        @[simp]
        theorem RootPairing.EmbeddedG2.shortAddLongRoot_shortRoot {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.EmbeddedG2] (B : P.InvariantForm) :

        α + β is short.

        @[simp]
        theorem RootPairing.EmbeddedG2.twoShortAddLongRoot_shortRoot {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.EmbeddedG2] (B : P.InvariantForm) :

        2α + β is short.

        @[simp]
        theorem RootPairing.EmbeddedG2.threeShortAddLongRoot_longRoot {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.EmbeddedG2] (B : P.InvariantForm) :

        3α + β is long.

        @[simp]

        3α + 2β is long.

        @[simp]
        theorem RootPairing.EmbeddedG2.pairingIn_shortAddLong_left {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] (i : ι) :
        @[simp]
        theorem RootPairing.EmbeddedG2.pairingIn_shortAddLong_right {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] (i : ι) :
        @[simp]
        theorem RootPairing.EmbeddedG2.pairingIn_twoShortAddLong_left {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] (i : ι) :
        @[simp]
        theorem RootPairing.EmbeddedG2.pairingIn_twoShortAddLong_right {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] (i : ι) :
        @[simp]
        theorem RootPairing.EmbeddedG2.pairingIn_threeShortAddLong_left {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] (i : ι) :
        @[simp]
        theorem RootPairing.EmbeddedG2.pairingIn_threeShortAddLong_right {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] (i : ι) :
        @[simp]
        theorem RootPairing.EmbeddedG2.pairingIn_threeShortAddTwoLong_left {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] (i : ι) :
        @[simp]
        theorem RootPairing.EmbeddedG2.pairingIn_threeShortAddTwoLong_right {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] (i : ι) :
        theorem RootPairing.EmbeddedG2.isOrthogonal_short_and_long {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] {i : ι} (hi : P.root iallRoots P) :
        @[simp]
        theorem RootPairing.EmbeddedG2.span_eq_top {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] [P.IsIrreducible] :
        theorem RootPairing.EmbeddedG2.mem_allRoots {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] [P.IsIrreducible] (i : ι) :
        def RootPairing.EmbeddedG2.indexEquivAllRoots {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] [P.IsIrreducible] :
        ι { x : M // x (allRoots P).toFinset }

        The natural labelling of RootPairing.EmbeddedG2.allRoots.

        Equations
        • One or more equations did not get rendered due to their size.
        @[simp]
        theorem RootPairing.EmbeddedG2.indexEquivAllRoots_apply_coe {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] [P.IsIrreducible] (i : ι) :
        ((indexEquivAllRoots P) i) = P.root i
        @[simp]
        theorem RootPairing.EmbeddedG2.indexEquivAllRoots_symm_apply {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] [P.IsIrreducible] (x : { x : M // x (allRoots P).toFinset }) :
        theorem RootPairing.EmbeddedG2.card_index_eq_twelve {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [P.EmbeddedG2] [Finite ι] [CharZero R] [IsDomain R] [P.IsIrreducible] :
        Nat.card ι = 12