Documentation

Mathlib.LinearAlgebra.RootSystem.Reduced

Reduced root pairings #

This file contains basic definitions and results related to reduced root pairings.

Main definitions: #

Implementation details: #

For convenience we provide two versions of many lemmas, according to whether we know that the root pairing is valued in a smaller ring (in the sense of RootPairing.IsValuedIn). For example we provide both RootPairing.linInd_iff_coxeterWeight_ne_four and RootPairing.linInd_iff_coxeterWeightIn_ne_four.

Several ways to avoid this duplication exist. We leave explorations of this for future work. One possible solution is to drop RootPairing.pairing and RootPairing.coxeterWeight entirely and rely solely on RootPairing.pairingIn and RootPairing.coxeterWeightIn.`

class RootPairing.IsReduced {ι : 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) :

A root pairing is said to be reduced if any linearly dependent pair of roots is related by a sign.

Instances
    theorem RootPairing.isReduced_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.IsReduced ∀ (i j : ι), ¬LinearIndependent R ![P.root i, P.root j]P.root i = P.root j P.root i = -P.root j
    theorem RootPairing.isReduced_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.IsReduced ∀ (i j : ι), i j¬LinearIndependent R ![P.root i, P.root j]P.root i = -P.root j
    theorem RootPairing.IsReduced.linearIndependent {ι : 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) {i j : ι} [P.IsReduced] (h : i j) (h' : P.root i -P.root j) :
    theorem RootPairing.IsReduced.linearIndependent_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) {i j : ι} [Nontrivial R] [P.IsReduced] :
    theorem RootPairing.infinite_of_linInd_coxeterWeight_four {ι : 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) {i j : ι} [NeZero 2] [NoZeroSMulDivisors M] (hl : LinearIndependent R ![P.root i, P.root j]) (hc : P.coxeterWeight i j = 4) :
    theorem RootPairing.pairing_smul_root_eq_of_not_linInd {ι : 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) {i j : ι} [NeZero 2] [NoZeroSMulDivisors R M] (h : ¬LinearIndependent R ![P.root i, P.root j]) :
    P.pairing j i P.root i = 2 P.root j
    theorem RootPairing.coxeterWeight_ne_four_of_linearIndependent {ι : 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) {i j : ι} [Finite ι] [NeZero 2] [NoZeroSMulDivisors M] (hl : LinearIndependent R ![P.root i, P.root j]) :
    @[simp]
    theorem RootPairing.pairing_two_two_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) (i j : ι) [Finite ι] [CharZero R] [NoZeroSMulDivisors R M] :
    P.pairing i j = 2 P.pairing j i = 2 i = j

    See also RootPairing.pairingIn_two_two_iff.

    @[simp]
    theorem RootPairing.pairing_neg_two_neg_two_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) (i j : ι) [Finite ι] [CharZero R] [NoZeroSMulDivisors R M] :
    P.pairing i j = -2 P.pairing j i = -2 P.root i = -P.root j

    See also RootPairing.pairingIn_neg_two_neg_two_iff.

    theorem RootPairing.pairing_one_four_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) (i j : ι) [Finite ι] [CharZero R] [NoZeroSMulDivisors R M] [NoZeroSMulDivisors R N] (h2 : IsSMulRegular R 2) :
    P.pairing i j = 1 P.pairing j i = 4 P.root j = 2 P.root i
    theorem RootPairing.pairing_neg_one_neg_four_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) (i j : ι) [Finite ι] [CharZero R] [NoZeroSMulDivisors R M] [NoZeroSMulDivisors R N] (h2 : IsSMulRegular R 2) :
    P.pairing i j = -1 P.pairing j i = -4 P.root j = -2 P.root i
    @[simp]
    theorem RootPairing.pairing_one_four_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) (i j : ι) [Finite ι] [CharZero R] [NoZeroSMulDivisors R M] [NoZeroSMulDivisors R N] [NoZeroDivisors R] :
    P.pairing i j = 1 P.pairing j i = 4 P.root j = 2 P.root i

    See also RootPairing.pairingIn_one_four_iff.

    @[simp]
    theorem RootPairing.pairing_neg_one_neg_four_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) (i j : ι) [Finite ι] [CharZero R] [NoZeroSMulDivisors R M] [NoZeroSMulDivisors R N] [NoZeroDivisors R] :
    P.pairing i j = -1 P.pairing j i = -4 P.root j = -2 P.root i

    See also RootPairing.pairingIn_neg_one_neg_four_iff.

    theorem RootPairing.linearIndependent_iff_coxeterWeightIn_ne_four {ι : 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) (S : Type u_5) {i j : ι} [Finite ι] [CharZero R] [NoZeroSMulDivisors R M] [LinearOrderedCommRing S] [Algebra S R] [FaithfulSMul S R] [P.IsValuedIn S] :
    theorem RootPairing.coxeterWeightIn_eq_four_iff_not_linearIndependent {ι : 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) (S : Type u_5) {i j : ι} [Finite ι] [CharZero R] [NoZeroSMulDivisors R M] [LinearOrderedCommRing S] [Algebra S R] [FaithfulSMul S R] [P.IsValuedIn S] :
    theorem RootPairing.coxeterWeightIn_ne_four {ι : 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) (S : Type u_5) {i j : ι} [Finite ι] [CharZero R] [NoZeroSMulDivisors R M] [LinearOrderedCommRing S] [Algebra S R] [FaithfulSMul S R] [P.IsValuedIn S] [P.IsReduced] (h : i j) (h' : P.root i -P.root j) :
    @[simp]
    theorem RootPairing.pairingIn_two_two_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) (S : Type u_5) (i j : ι) [Finite ι] [CharZero R] [NoZeroSMulDivisors R M] [LinearOrderedCommRing S] [Algebra S R] [FaithfulSMul S R] [P.IsValuedIn S] :
    P.pairingIn S i j = 2 P.pairingIn S j i = 2 i = j
    theorem RootPairing.pairingIn_neg_two_neg_two_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) (S : Type u_5) (i j : ι) [Finite ι] [CharZero R] [NoZeroSMulDivisors R M] [LinearOrderedCommRing S] [Algebra S R] [FaithfulSMul S R] [P.IsValuedIn S] :
    P.pairingIn S i j = -2 P.pairingIn S j i = -2 P.root i = -P.root j
    theorem RootPairing.pairingIn_one_four_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) (S : Type u_5) (i j : ι) [Finite ι] [CharZero R] [NoZeroSMulDivisors R M] [LinearOrderedCommRing S] [Algebra S R] [FaithfulSMul S R] [P.IsValuedIn S] [NoZeroSMulDivisors R N] [NoZeroDivisors R] :
    P.pairingIn S i j = 1 P.pairingIn S j i = 4 P.root j = 2 P.root i
    theorem RootPairing.pairingIn_neg_one_neg_four_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) (S : Type u_5) (i j : ι) [Finite ι] [CharZero R] [NoZeroSMulDivisors R M] [LinearOrderedCommRing S] [Algebra S R] [FaithfulSMul S R] [P.IsValuedIn S] [NoZeroSMulDivisors R N] [NoZeroDivisors R] :
    P.pairingIn S i j = -1 P.pairingIn S j i = -4 P.root j = -2 P.root i