Documentation

Mathlib.LinearAlgebra.RootSystem.Chain

Chains of roots #

Given roots α and β, the α-chain through β is the set of roots of the form α + z • β for an integer z. This is known as a "root chain" and also a "root string". For linearly independent roots in finite crystallographic root pairings, these chains are always unbroken, i.e., of the form: β - q • α, ..., β - α, β, β + α, ..., β + p • α for natural numbers p, q, and the length, p + q is at most 3.

Main definitions / results: #

theorem RootPairing.setOf_root_add_zsmul_eq_Icc_of_linInd {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} (h : LinearIndependent R ![P.root i, P.root j]) :
q0, p0, {z : | P.root j + z P.root i Set.range P.root} = Set.Icc q p

Note that it is often more convenient to use RootPairing.root_add_zsmul_mem_range_iff than to invoke this lemma directly.

def RootPairing.chainTopCoeff {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] (i j : ι) :

If α = P.root i and β = P.root j are linearly independent, this is the value p ≥ 0 where β - q • α, ..., β - α, β, β + α, ..., β + p • α is the α-chain through β.

In the absence of linear independence, it takes a junk value.

Equations
Instances For
    def RootPairing.chainBotCoeff {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] (i j : ι) :

    If α = P.root i and β = P.root j are linearly independent, this is the value q ≥ 0 where β - q • α, ..., β - α, β, β + α, ..., β + p • α is the α-chain through β.

    In the absence of linear independence, it takes a junk value.

    Equations
    Instances For
      theorem RootPairing.chainTopCoeff_of_not_linInd {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} (h : ¬LinearIndependent R ![P.root i, P.root j]) :
      theorem RootPairing.chainBotCoeff_of_not_linInd {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} (h : ¬LinearIndependent R ![P.root i, P.root j]) :
      theorem RootPairing.root_add_nsmul_mem_range_iff_le_chainTopCoeff {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} (h : LinearIndependent R ![P.root i, P.root j]) {n : } :
      theorem RootPairing.root_sub_nsmul_mem_range_iff_le_chainBotCoeff {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} (h : LinearIndependent R ![P.root i, P.root j]) {n : } :
      theorem RootPairing.root_add_zsmul_mem_range_iff {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} (h : LinearIndependent R ![P.root i, P.root j]) {z : } :
      P.root j + z P.root i Set.range P.root z Set.Icc (-(chainBotCoeff i j)) (chainTopCoeff i j)
      theorem RootPairing.root_sub_zsmul_mem_range_iff {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} (h : LinearIndependent R ![P.root i, P.root j]) {z : } :
      P.root j - z P.root i Set.range P.root z Set.Icc (-(chainTopCoeff i j)) (chainBotCoeff i j)
      @[simp]
      theorem RootPairing.chainTopCoeff_relfection_perm {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} :
      @[simp]
      theorem RootPairing.chainBotCoeff_relfection_perm {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} :
      def RootPairing.chainTopIdx {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] (i j : ι) :
      ι

      If α = P.root i and β = P.root j are linearly independent, this is the index of the root β + p • α where β - q • α, ..., β - α, β, β + α, ..., β + p • α is the α-chain through β.

      In the absence of linear independence, it takes a junk value.

      Equations
      Instances For
        def RootPairing.chainBotIdx {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] (i j : ι) :
        ι

        If α = P.root i and β = P.root j are linearly independent, this is the index of the root β - q • α where β - q • α, ..., β - α, β, β + α, ..., β + p • α is the α-chain through β.

        In the absence of linear independence, it takes a junk value.

        Equations
        Instances For
          @[simp]
          theorem RootPairing.root_chainTopIdx {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} :
          @[simp]
          theorem RootPairing.root_chainBotIdx {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} :
          theorem RootPairing.chainBotCoeff_sub_chainTopCoeff {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} (h : LinearIndependent R ![P.root i, P.root j]) :
          (chainBotCoeff i j) - (chainTopCoeff i j) = P.pairingIn j i
          theorem RootPairing.chainTopCoeff_sub_chainBotCoeff {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} (h : LinearIndependent R ![P.root i, P.root j]) :
          (chainTopCoeff i j) - (chainBotCoeff i j) = -P.pairingIn j i
          theorem RootPairing.chainCoeff_chainTopIdx_aux {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} :
          @[simp]
          theorem RootPairing.chainBotCoeff_chainTopIdx {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} :
          @[simp]
          theorem RootPairing.chainTopCoeff_chainTopIdx {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} :
          theorem RootPairing.chainBotCoeff_add_chainTopCoeff_le {ι : Type u_1} {R : Type u_2} {M : Type u_3} {N : Type u_4} [Finite ι] [CommRing R] [CharZero R] [IsDomain R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] {P : RootPairing ι R M N} [P.IsCrystallographic] {i j : ι} [P.IsReduced] :