Documentation

TauCeti.LinearAlgebra.RootSystem.Weyl.Numerator

The Weyl numerator #

The Weyl character formula is an identity in the integral group algebra ℤ[M] of the weight space of a root pairing, between the formal character of an irreducible module and two universal elements of that algebra: the Weyl numerator N(λ) and the Weyl denominator Δ. As soon as there is a positive root, Δ is not invertible in ℤ[M] — it then augments to 0, whereas a unit augments to ±1 — so the formula is read there in the cross-multiplied form ch L(λ) · Δ = N(λ), the familiar quotient N(λ) / Δ living in a localization where Δ becomes invertible. This file builds the Weyl numerator N(λ) = ∑_{w ∈ W} sgn(w) e^{w ⬝ λ}, the alternating sum over the dot orbit of λ, and its combinatorics, with no Lie algebra in sight. The denominator Δ = ∏_{α > 0} (1 - e^{-α}) is TauCeti.weylDenominator, which needs far less and lives in its own earlier file.

Writing the numerator through the dot action w ⬝ λ = w(λ + ρ) - ρ (TauCeti.dotAction) rather than as ∑ sgn(w) e^{w(λ+ρ)} is what keeps every exponent inside the weight lattice, matching the normalization ∏_{α>0}(1 - e^{-α}) of the denominator rather than the symmetric one ∏_{α>0}(e^{α/2} - e^{-α/2}), which needs half-roots. The two normalizations differ by the factor e^{ρ}.

The signs come from TauCeti.weylSign, the character w ↦ (-1)^{ℓ(w)} of the Weyl group; they are what makes the numerator alternating, which is the content of TauCeti.weylNumerator_dotAction and of everything derived from it.

Main definitions #

Main results #

Implementation notes #

TauCeti.weylNumerator sums over Finset.univ and so carries [Fintype P.weylGroup] rather than [Finite P.weylGroup]. The Weyl group of a finite root system is finite (RootPairing.finite_weylGroup), and a consumer holding only that instance supplies the Fintype with Fintype.ofFinite; the value of the sum does not depend on which one, since Fintype is a subsingleton.

The freeness statements are proved from the injectivity of the dot orbit map, which is all they use; dominance enters only through the corollaries of the last section, which is also the only place the ordered hypotheses appear. Those hypotheses already supply IsDomain R through IsStrictOrderedRing.isDomain, so it is not repeated there.

References #

This builds the weylNumerator target of TauCetiRoadmap/RepresentationTheory/LieHighestWeight/README.md, Layer 6 ("the character, dimension, and Kostant formulas"), whose Suggested.lean pins it on Module.Dual K H for the root system of a Cartan subalgebra. As with TauCeti.weylVector and TauCeti.dotAction, the combinatorics lives at the level of an abstract root pairing, so the Lie-algebra target is a specialization rather than a rebuild.

noncomputable def TauCeti.weylNumerator {ι : 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) [Finite ι] [CharZero R] (b : P.Base) [IsDomain R] [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [Fintype ↥P.weylGroup] (lam : M) :

The Weyl numerator N(λ) = ∑_{w ∈ W} sgn(w) e^{w ⬝ λ} of a weight, the alternating sum over the dot orbit of λ.

The dot action w ⬝ λ = w(λ + ρ) - ρ (TauCeti.dotAction) is the ρ-shifted form: the un-shifted numerator ∑_w sgn(w) e^{w(λ+ρ)} is e^{ρ} times this one, and matches the symmetric normalization of the denominator rather than TauCeti.weylDenominator.

Equations
Instances For
    theorem TauCeti.weylNumerator_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) [Finite ι] [CharZero R] (b : P.Base) [IsDomain R] [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [Fintype ↥P.weylGroup] (lam : M) :
    weylNumerator P b lam = ∑ w : ↥P.weylGroup, AddMonoidAlgebra.single (dotAction P b w lam) ↑((weylSign P b) w)

    N(λ) is the signed sum ∑_{w ∈ W} sgn(w) e^{w ⬝ λ} over the dot orbit, by definition.

    theorem TauCeti.coeff_weylNumerator_eq_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) [Finite ι] [CharZero R] (b : P.Base) [IsDomain R] [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [Fintype ↥P.weylGroup] {lam x : M} (hx : ∀ (w : ↥P.weylGroup), dotAction P b w lam ≠ x) :
    (weylNumerator P b lam).coeff x = 0

    The numerator is supported on the dot orbit: its coefficient at a weight outside the orbit of λ vanishes, since no term of the sum sits there.

    @[simp]
    theorem TauCeti.weylNumerator_dotAction {ι : 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) [Finite ι] [CharZero R] (b : P.Base) [IsDomain R] [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [Fintype ↥P.weylGroup] (v : ↥P.weylGroup) (lam : M) :
    weylNumerator P b (dotAction P b v lam) = ↑((weylSign P b) v) • weylNumerator P b lam

    The Weyl numerator is alternating: replacing λ by its dot translate v ⬝ λ multiplies the numerator by sgn(v).

    This is the reindexing w ↦ w * v of the defining sum, and it is the source of every vanishing statement below: a weight fixed by an odd element of the Weyl group is one where the sum cancels against itself.

    @[simp]
    theorem TauCeti.coeff_weylNumerator_dotAction {ι : 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) [Finite ι] [CharZero R] (b : P.Base) [IsDomain R] [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [Fintype ↥P.weylGroup] (lam : M) (w : ↥P.weylGroup) (x : M) :
    (weylNumerator P b lam).coeff (dotAction P b w x) = ↑((weylSign P b) w) * (weylNumerator P b lam).coeff x

    The coefficients of the Weyl numerator transform by the sign character under the dot action: [e^{w ⬝ x}] N(λ) = sgn(w) [e^x] N(λ).

    theorem TauCeti.weylNumerator_eq_zero_of_dotAction_eq_self {ι : 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) [Finite ι] [CharZero R] (b : P.Base) [IsDomain R] [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [Fintype ↥P.weylGroup] {v : ↥P.weylGroup} {lam : M} (hv : (weylSign P b) v = -1) (hlam : dotAction P b v lam = lam) :
    weylNumerator P b lam = 0

    A weight fixed by an odd Weyl-group element has vanishing numerator. The alternating identity turns such a fixed point into N(λ) = -N(λ), and ℤ[M] is torsion-free.

    theorem TauCeti.weylNumerator_eq_zero_of_coroot'_eq_neg_one {ι : 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) [Finite ι] [CharZero R] (b : P.Base) [IsDomain R] [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [Fintype ↥P.weylGroup] {i : ι} (hi : i ∈ b.support) {lam : M} (h : (P.coroot' i) lam = -1) :
    weylNumerator P b lam = 0

    A weight on a wall of the dot action has vanishing numerator. The wall of the simple reflection sᵢ for the dot action is ⟨λ, αᵢ^∨⟩ = -1 (TauCeti.dotAction_ofIdx_eq_self_iff), and a simple reflection is odd. This is the case the highest-weight theory meets.

    Weights with a free dot orbit #

    Nothing below asks for more than the injectivity of the dot orbit map w ↦ w ⬝ λ: it makes the |W| terms of the numerator sit at |W| distinct weights, so none of them cancels. A dominant weight is the case of interest, and is treated in the last section.

    theorem TauCeti.coeff_weylNumerator_dotAction_of_injective {ι : 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) [Finite ι] [CharZero R] (b : P.Base) [IsDomain R] [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [Fintype ↥P.weylGroup] {lam : M} (hlam : Function.Injective fun (w : ↥P.weylGroup) => dotAction P b w lam) (w : ↥P.weylGroup) :
    (weylNumerator P b lam).coeff (dotAction P b w lam) = ↑((weylSign P b) w)

    The coefficients of the numerator along a free dot orbit are the signs. No two Weyl-group elements carry λ to the same place, so the term of w sits alone at w ⬝ λ.

    theorem TauCeti.support_coeff_weylNumerator_of_injective {ι : 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) [Finite ι] [CharZero R] (b : P.Base) [IsDomain R] [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [Fintype ↥P.weylGroup] [DecidableEq M] {lam : M} (hlam : Function.Injective fun (w : ↥P.weylGroup) => dotAction P b w lam) :
    (weylNumerator P b lam).coeff.support = Finset.image (fun (w : ↥P.weylGroup) => dotAction P b w lam) Finset.univ

    A numerator with a free dot orbit is supported exactly on that orbit.

    theorem TauCeti.card_support_coeff_weylNumerator_of_injective {ι : 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) [Finite ι] [CharZero R] (b : P.Base) [IsDomain R] [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [Fintype ↥P.weylGroup] {lam : M} (hlam : Function.Injective fun (w : ↥P.weylGroup) => dotAction P b w lam) :

    A numerator with a free dot orbit has exactly |W| terms, one for each element of the Weyl group.

    theorem TauCeti.weylNumerator_ne_zero_of_injective {ι : 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) [Finite ι] [CharZero R] (b : P.Base) [IsDomain R] [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [Fintype ↥P.weylGroup] {lam : M} (hlam : Function.Injective fun (w : ↥P.weylGroup) => dotAction P b w lam) :
    weylNumerator P b lam ≠ 0

    A numerator with a free dot orbit does not vanish: its coefficient at λ itself is 1.

    Dominant weights #

    For a dominant weight the dot action is free (TauCeti.eq_one_of_dotAction_eq_self_of_mem_dominantChamber), so the results of the previous section apply verbatim. The linearly ordered hypotheses of this section already supply IsDomain R through IsStrictOrderedRing.isDomain, so it is not repeated.

    @[simp]
    theorem TauCeti.coeff_weylNumerator_self_of_mem_openDotDominantChamber {ι : 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) [Finite ι] [CharZero R] (b : P.Base) [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [Fintype ↥P.weylGroup] [LinearOrder R] [IsStrictOrderedRing R] [P.flip.IsReduced] {lam : M} (hlam : lam ∈ openDotDominantChamber P b) :
    (weylNumerator P b lam).coeff lam = 1

    The numerator of a weight of the open dot chamber has coefficient 1 there.

    theorem TauCeti.support_coeff_weylNumerator {ι : 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) [Finite ι] [CharZero R] (b : P.Base) [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [Fintype ↥P.weylGroup] [LinearOrder R] [IsStrictOrderedRing R] [P.flip.IsReduced] [DecidableEq M] {lam : M} (hlam : lam ∈ P.dominantChamber b) :
    (weylNumerator P b lam).coeff.support = Finset.image (fun (w : ↥P.weylGroup) => dotAction P b w lam) Finset.univ

    The numerator of a dominant weight is supported exactly on its dot orbit.

    theorem TauCeti.card_support_coeff_weylNumerator {ι : 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) [Finite ι] [CharZero R] (b : P.Base) [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [Fintype ↥P.weylGroup] [LinearOrder R] [IsStrictOrderedRing R] [P.flip.IsReduced] {lam : M} (hlam : lam ∈ P.dominantChamber b) :

    The numerator of a dominant weight has exactly |W| terms, one for each element of the Weyl group.

    theorem TauCeti.weylNumerator_ne_zero_of_mem_dominantChamber {ι : 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) [Finite ι] [CharZero R] (b : P.Base) [Invertible 2] [P.IsCrystallographic] [P.IsReduced] [Fintype ↥P.weylGroup] [LinearOrder R] [IsStrictOrderedRing R] [P.flip.IsReduced] {lam : M} (hlam : lam ∈ P.dominantChamber b) :
    weylNumerator P b lam ≠ 0

    The numerator of a dominant weight does not vanish: its coefficient at λ itself is 1. With TauCeti.weylNumerator_eq_zero_of_coroot'_eq_neg_one this says the numerator vanishes on the walls of the simple reflections for the dot action, and on no dominant weight.