Documentation

LeanPool.Ado.LinearAlgebra.RootSystem.Weyl.Vector

The Weyl vector of a base #

The Weyl vector ρ of a base of a root pairing is the half-sum of the positive roots. It is the shift that turns the Weyl group action on weights into the dot action, and it appears in the Weyl character, dimension and Kostant formulas as the correction λ ↦ λ + ρ.

Which roots are positive is defined only over a coefficient ring of characteristic zero, and halving asks for 2 to be invertible on top of that. So the sum of the positive roots is introduced first, as Ado.twoWeylVector, over a characteristic-zero coefficient ring, and the Weyl vector itself only once 2 is invertible as well. The simple-coroot pairing and the simple reflection identity are proved for the sum first and then divided by two; the statements that speak of ρ alone — the dot action and the dominance results — are proved only in the halved form. So nothing below assumes more of the coefficient ring than its own statement needs.

The one theorem the notion exists for is that ρ pairs to 1 with every simple coroot, equivalently that the simple reflection sᵢ sends ρ to ρ - αᵢ. Its proof is the classical one: sᵢ negates αᵢ and permutes the remaining positive roots, so the pairings of those remaining roots with αᵢ^∨ cancel in pairs and only ⟨αᵢ, αᵢ^∨⟩ = 2 survives.

Those values on the simple coroots determine the values on all of them, and the answer is the height of the coroot: expanding α^∨ in the simple coroots and pairing termwise gives ⟨ρ, α^∨⟩ = ht(α^∨), the sum of the coefficients. Two consequences of that identity are recorded below. First, ⟨ρ, α^∨⟩ is never zero, because no root has height zero — so ρ is a regular weight, with no order on the coefficient ring needed. Over a linearly ordered ring that already follows from strict dominance, but a root system attached to a Lie algebra over an algebraically closed field carries no order, and it is there that the Weyl dimension formula needs its denominators ⟨ρ, α^∨⟩ to be invertible. Second, where there is an order, the pairing with a positive coroot is not merely positive but at least 1, being a positive integer.

Main definitions #

Main results #

References #

This file supplies the root-pairing-level prerequisite of the Weyl vector of the highest-weight theory: the nonvanishing and integrality of ⟨ρ, α^∨⟩ proved below are what makes the denominator of the Weyl dimension formula dim L(λ) = ∏_{α>0} ⟨λ+ρ, α^∨⟩ / ⟨ρ, α^∨⟩ meaningful. Nothing here is a Lie-algebra-level declaration: ρ is built for an abstract root pairing, where the positive-root combinatorics it needs already lives, so that the Lie-algebra version is a specialization rather than a rebuild.

The argument is the one in J. E. Humphreys, Introduction to Lie Algebras and Representation Theory, GTM 9, Ch. III, §10.2 and §13.3.

noncomputable def Ado.twoWeylVector {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] :
M

Twice the Weyl vector: the sum of the positive roots of a base.

The Weyl vector itself is Ado.weylVector, this element halved; it needs 2 to be invertible in the coefficient ring, whereas the sum needs only the characteristic-zero hypothesis under which the positive roots are defined at all, and carries all the content.

Equations
Instances For
    theorem Ado.twoWeylVector_def {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] :
    twoWeylVector P b = ∑ i ∈ posRootsFinset P b, P.root i

    2ρ is the sum of the positive roots, by definition.

    theorem Ado.coroot'_twoWeylVector {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [IsDomain R] [P.IsCrystallographic] [P.IsReduced] {i : ι} (hi : i ∈ b.support) :
    (P.coroot' i) (twoWeylVector P b) = 2

    The sum of the positive roots pairs to 2 with every simple coroot. All the positive roots other than αᵢ cancel, leaving ⟨αᵢ, αᵢ^∨⟩ = 2.

    Not @[simp]: RootPairing.coroot' is an abbrev, so simp unfolds this left-hand side through LinearMap.flip_apply and the simpNF linter rejects the tag. The simp-usable form of this identity is Ado.reflection_twoWeylVector below.

    @[simp]
    theorem Ado.reflection_twoWeylVector {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [IsDomain R] [P.IsCrystallographic] [P.IsReduced] {i : ι} (hi : i ∈ b.support) :

    A simple reflection subtracts 2αᵢ from the sum of the positive roots.

    theorem Ado.coroot'_twoWeylVector_eq_two_mul_height_flip {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [IsDomain R] [P.IsCrystallographic] [P.IsReduced] (i : ι) :
    (P.coroot' i) (twoWeylVector P b) = 2 * ↑(b.flip.height i)

    The sum of the positive roots pairs with an arbitrary coroot to twice the height of that coroot, ⟨2ρ, α^∨⟩ = 2 ht(α^∨), the height being taken relative to the flipped base. In particular the pairing is an even integer; a simple coroot has height 1, so there it is the value 2 of Ado.coroot'_twoWeylVector.

    theorem Ado.coroot'_twoWeylVector_ne_zero {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [IsDomain R] [P.IsCrystallographic] [P.IsReduced] (i : ι) :
    (P.coroot' i) (twoWeylVector P b) ≠ 0

    The sum of the positive roots pairs to a nonzero scalar with every coroot. No order on the coefficient ring is involved: the pairing is twice the height of the coroot, and no root has height zero.

    theorem Ado.isRegularWeight_twoWeylVector {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [IsDomain R] [P.IsCrystallographic] [P.IsReduced] :

    The sum of the positive roots is a regular weight, lying on no wall.

    theorem Ado.twoWeylVector_ne_zero {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [IsDomain R] [P.IsCrystallographic] [P.IsReduced] [Nonempty ι] :

    The sum of the positive roots is nonzero as soon as there is a root at all.

    theorem Ado.sum_root_negRootsFinset {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] :
    ∑ i ∈ negRootsFinset P b, P.root i = -twoWeylVector P b

    The sum of the negative roots is -2ρ. Root negation is a bijection from the negative roots onto the positive ones.

    noncomputable def Ado.weylVector {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [Invertible 2] :
    M

    The Weyl vector ρ: the half-sum of the positive roots of a base.

    Equations
    Instances For
      theorem Ado.weylVector_def {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [Invertible 2] :

      ρ is half the sum of the positive roots, by definition.

      @[simp]
      theorem Ado.two_smul_weylVector {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [Invertible 2] :

      Doubling the Weyl vector recovers the sum of the positive roots.

      theorem Ado.coroot'_weylVector {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [Invertible 2] [IsDomain R] [P.IsCrystallographic] [P.IsReduced] {i : ι} (hi : i ∈ b.support) :
      (P.coroot' i) (weylVector P b) = 1

      The Weyl vector pairs to 1 with every simple coroot, ⟨ρ, αᵢ^∨⟩ = 1. This is the characteristic pairing identity that ρ is introduced for; it records the values of ρ on the simple coroots, and over an abstract root pairing those values need not pin ρ down, since nothing here says the simple coroots separate the points of M.

      Not @[simp], for the same reason as Ado.coroot'_twoWeylVector.

      @[simp]
      theorem Ado.reflection_weylVector {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [Invertible 2] [IsDomain R] [P.IsCrystallographic] [P.IsReduced] {i : ι} (hi : i ∈ b.support) :
      (P.reflection i) (weylVector P b) = weylVector P b - P.root i

      A simple reflection subtracts its simple root from the Weyl vector, sᵢ(ρ) = ρ - αᵢ.

      theorem Ado.coroot'_add_weylVector {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [Invertible 2] [IsDomain R] [P.IsCrystallographic] [P.IsReduced] {i : ι} (hi : i ∈ b.support) (x : M) :
      (P.coroot' i) (x + weylVector P b) = (P.coroot' i) x + 1

      The ρ-shift raises every simple coroot pairing by one. This is the whole role of ρ in the highest-weight theory: it converts the dominance condition 0 ≤ ⟨λ, αᵢ^∨⟩ into the strict one 0 < ⟨λ + ρ, αᵢ^∨⟩.

      theorem Ado.reflection_add_weylVector_sub_weylVector {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [Invertible 2] [IsDomain R] [P.IsCrystallographic] [P.IsReduced] {i : ι} (hi : i ∈ b.support) (x : M) :
      (P.reflection i) (x + weylVector P b) - weylVector P b = x - ((P.coroot' i) x + 1) • P.root i

      The dot action of a simple reflection. Conjugating the reflection sᵢ by the translation by ρ gives sᵢ ⬝ λ = λ - (⟨λ, αᵢ^∨⟩ + 1) αᵢ. Only this formula on weights is proved here; it is the shifted Weyl group action that the highest-weight theory uses in place of the linear one, but the statement that it permutes the highest weights of a given central character belongs to that setting and needs its hypotheses.

      theorem Ado.coroot'_weylVector_eq_height_flip {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [Invertible 2] [IsDomain R] [P.IsCrystallographic] [P.IsReduced] (i : ι) :
      (P.coroot' i) (weylVector P b) = ↑(b.flip.height i)

      The Weyl vector pairs with an arbitrary coroot to give the height of that coroot, ⟨ρ, α^∨⟩ = ht(α^∨). In particular the pairing is an integer, which for a simple coroot is the value 1 of Ado.coroot'_weylVector.

      Not @[simp], for the same reason as Ado.coroot'_twoWeylVector.

      theorem Ado.coroot'_weylVector_ne_zero {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [Invertible 2] [IsDomain R] [P.IsCrystallographic] [P.IsReduced] (i : ι) :
      (P.coroot' i) (weylVector P b) ≠ 0

      The Weyl vector pairs to a nonzero scalar with every coroot. This is the nonvanishing of the denominators ⟨ρ, α^∨⟩ of the Weyl dimension formula, and it needs no order on the coefficient ring: the pairing is the height of the coroot, and no root has height zero.

      theorem Ado.isRegularWeight_weylVector {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [Invertible 2] [IsDomain R] [P.IsCrystallographic] [P.IsReduced] :

      The Weyl vector is a regular weight, lying on no wall. Over a linearly ordered coefficient ring this also follows from Ado.weylVector_mem_openDominantChamber; the point of the present form is that it holds with no order at all, which is the situation of a root system attached to a Lie algebra over an algebraically closed field.

      theorem Ado.weylVector_ne_zero {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [Invertible 2] [IsDomain R] [P.IsCrystallographic] [P.IsReduced] [Nonempty ι] :

      The Weyl vector is nonzero as soon as there is a root at all.

      theorem Ado.add_weylVector_mem_openDominantChamber {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [LinearOrder R] [IsStrictOrderedRing R] [Invertible 2] [P.IsCrystallographic] [P.IsReduced] {x : M} (hx : x ∈ dominantChamber P b) :

      Shifting a dominant weight by ρ makes it strictly dominant.

      The Weyl vector is strictly dominant, hence a regular weight: it lies on no wall of the dominant chamber.

      theorem Ado.openDominantChamber_nonempty {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [LinearOrder R] [IsStrictOrderedRing R] [Invertible 2] [P.IsCrystallographic] [P.IsReduced] :

      The open dominant chamber is nonempty once 2 is invertible: the Weyl vector ρ pairs to 1 with every simple coroot, so it is strictly dominant.

      theorem Ado.one_le_coroot'_weylVector_of_mem_posRoots {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [LinearOrder R] [IsStrictOrderedRing R] [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [P.flip.IsReduced] {i : ι} (hi : i ∈ posRoots P b) :
      1 ≤ (P.coroot' i) (weylVector P b)

      The Weyl vector pairs to at least 1 with the coroot of every positive root. This sharpens Ado.coroot'_pos_of_mem_posRoots at ρ from a strict inequality to an integral one: the pairing is the height of the coroot, a positive integer. It is the positivity of the denominators of the Weyl dimension formula.

      theorem Ado.coroot'_weylVector_le_neg_one_of_mem_negRoots {ι : Type u} {R : Type v} {M : Type w} {N : Type x} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (P : RootPairing ι R M N) [CharZero R] (b : P.Base) [Finite ι] [LinearOrder R] [IsStrictOrderedRing R] [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [P.flip.IsReduced] {i : ι} (hi : i ∈ negRoots P b) :
      (P.coroot' i) (weylVector P b) ≤ -1

      The Weyl vector pairs to at most -1 with the coroot of every negative root.