Documentation

TauCeti.Algebra.Lie.Weights.Sl2System

Root vectors normalised against the coroots #

Let L be a finite-dimensional Lie algebra with non-degenerate Killing form over a field K of characteristic zero, and let H be a splitting Cartan subalgebra. Each root α has a one-dimensional root space Lα, so a root vector is determined by a scalar, and Mathlib's LieAlgebra.IsKilling.exists_isSl2Triple_of_weight_isNonZero produces one root vector at a time: for a single root α there are e ∈ Lα and f ∈ L₍₋α₎ with ⁅e, f⁆ = α^∨.

Chevalley's construction needs those choices made simultaneously and compatibly, for all roots at once: a family x : Weight K H L → L with x α ∈ Lα and

⁅x α, x (-α)⁆ = α^∨ for every root α.

This file defines that condition as TauCeti.IsSl2System — the name records what it says, that (α^∨, x α, x (-α)) is an sl₂ triple for every root — and proves that such a family exists.

Choosing the root vectors one root at a time does not give a system: the vector chosen for -α and the partner of the vector chosen for α are two elements of the same line, and they need not agree. The construction below therefore chooses one root out of each pair {α, -α} and reads off the vector at the other root from the triple already chosen, which is possible because α ↦ -α is a fixed-point-free involution on the roots. That selection is TauCeti.exists_rootPairRepresentatives, stated separately because every later rescaling of a normalised family has to make the same choice. The resulting family satisfies the normalisation on the nose, in both directions, because an sl₂ triple stays one when e and f are exchanged and h is negated, and (-α)^∨ = -α^∨.

Beyond the definition and the existence theorem, the file records what a system gives: the sl₂ triple at each root, the resulting nonvanishing and the identification of each root space as the line it spans, the Cartan relation ⁅β^∨, x α⁆ = α(β^∨) • x α, the grading ⁅x α, x β⁆ ∈ L₍α+β₎ with its vanishing when α + β is not a root, that the root vectors together with H span L, the Killing pairing of opposite normalized root vectors, and that two systems differ by scalars c α subject to c α * c (-α) = 1.

What this is not #

An IsSl2System is not yet a Chevalley basis, and this file does not claim it is. A Chevalley basis asks in addition that the structure constants c α β in ⁅x α, x β⁆ = c α β • x (α + β) be the integers ±(p + 1), p the root-string parameter, and Bourbaki's Chevalley system asks moreover that the family be exchanged with its negatives by the Chevalley involution. Neither condition is imposed here: the normalisation ⁅x α, x (-α)⁆ = α^∨ alone is what pins the Cartan part of the would-be integral form, and it is a prerequisite of both, since the structure constants are only defined once the root vectors are.

Main definitions #

Main results #

References #

structure TauCeti.IsSl2System {K : Type u_1} {L : Type u_2} [Field K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] {H : LieSubalgebra K L} [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] (x : LieModule.Weight K (↥H) L → L) :

A family of root vectors normalised against the coroots: x α lies in the root space of α, and ⁅x α, x (-α)⁆ is the coroot α^∨ for every root α. Equivalently, (α^∨, x α, x (-α)) is an sl₂ triple for every root α, whence the name.

Only the roots carry data: the value at a zero weight is pinned to 0, so that a system is determined by its root vectors, as TauCeti.IsSl2System.eq_of_forall_isNonZero records.

Instances For
    theorem TauCeti.IsSl2System.lie_coroot {K : Type u_1} {L : Type u_2} [Field K] [CharZero K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] {H : LieSubalgebra K L} [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] {x : LieModule.Weight K (↥H) L → L} (hx : IsSl2System x) (α β : LieModule.Weight K (↥H) L) :

    The Cartan relation: a coroot acts on a root vector by the corresponding Cartan number.

    theorem TauCeti.IsSl2System.isSl2Triple {K : Type u_1} {L : Type u_2} [Field K] [CharZero K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] {H : LieSubalgebra K L} [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] {x : LieModule.Weight K (↥H) L → L} (hx : IsSl2System x) (α : LieModule.Weight K (↥H) L) (hα : α.IsNonZero) :
    IsSl2Triple (↑(LieAlgebra.IsKilling.coroot α)) (x α) (x (-α))

    The sl₂ triple attached to a root by a normalised family of root vectors.

    theorem TauCeti.IsSl2System.ne_zero {K : Type u_1} {L : Type u_2} [Field K] [CharZero K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] {H : LieSubalgebra K L} [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] {x : LieModule.Weight K (↥H) L → L} (hx : IsSl2System x) (α : LieModule.Weight K (↥H) L) (hα : α.IsNonZero) :
    x α ≠ 0

    A root vector of a normalised family is nonzero, being the e of an sl₂ triple.

    theorem TauCeti.IsSl2System.isNilpotent_ad_rootVector {K : Type u_1} {L : Type u_2} [Field K] [CharZero K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] {H : LieSubalgebra K L} [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] {x : LieModule.Weight K (↥H) L → L} (hx : IsSl2System x) (α : LieModule.Weight K (↥H) L) :
    IsNilpotent ((LieAlgebra.ad K L) (x α))

    Every member of a normalised root-vector system acts nilpotently in the adjoint representation. At a root this is the nilpotency of ad on a root space; at a zero weight the member is 0. This is the nilpotency hypothesis for divided-power exponentials; lattice stability supplies their integrality separately.

    theorem TauCeti.IsSl2System.killingForm_root_neg_eq {K : Type u_1} {L : Type u_2} [Field K] [CharZero K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] {H : LieSubalgebra K L} [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] {x : LieModule.Weight K (↥H) L → L} (hx : IsSl2System x) (α : LieModule.Weight K (↥H) L) (hα : α.IsNonZero) :
    ((killingForm K L) (x α)) (x (-α)) = 2 * (α ((LieAlgebra.IsKilling.cartanEquivDual H).symm (LieModule.Weight.toLinear K (↥H) L α)))⁻¹

    The Killing pairing of opposite vectors in a normalised root-vector system is 2 / α((cartanEquivDual H)⁻¹ α).

    theorem TauCeti.IsSl2System.toSubmodule_rootSpace_eq_span {K : Type u_1} {L : Type u_2} [Field K] [CharZero K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] {H : LieSubalgebra K L} [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] {x : LieModule.Weight K (↥H) L → L} (hx : IsSl2System x) (α : LieModule.Weight K (↥H) L) (hα : α.IsNonZero) :
    ↑(LieAlgebra.rootSpace H ⇑α) = K ∙ x α

    A root vector of a normalised family spans its root space.

    theorem TauCeti.IsSl2System.lie_mem_rootSpace_add {K : Type u_1} {L : Type u_2} [Field K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] {H : LieSubalgebra K L} [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] {x : LieModule.Weight K (↥H) L → L} (hx : IsSl2System x) (α β : LieModule.Weight K (↥H) L) :
    ⁅x α, x β⁆ ∈ LieAlgebra.rootSpace H (⇑α + ⇑β)

    The root grading: the bracket of two root vectors lies in the root space of the sum.

    theorem TauCeti.IsSl2System.lie_eq_zero_of_rootSpace_add_eq_bot {K : Type u_1} {L : Type u_2} [Field K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] {H : LieSubalgebra K L} [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] {x : LieModule.Weight K (↥H) L → L} (hx : IsSl2System x) (α β : LieModule.Weight K (↥H) L) (h : LieAlgebra.rootSpace H (⇑α + ⇑β) = ⊥) :
    ⁅x α, x β⁆ = 0

    Two root vectors bracket to zero when the sum of their roots is not itself a root.

    theorem TauCeti.IsSl2System.exists_lie_eq_smul_of_coe_eq_add {K : Type u_1} {L : Type u_2} [Field K] [CharZero K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] {H : LieSubalgebra K L} [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] {x : LieModule.Weight K (↥H) L → L} (hx : IsSl2System x) (α β γ : LieModule.Weight K (↥H) L) (hγ : γ.IsNonZero) (h : ⇑γ = ⇑α + ⇑β) :
    ∃ (c : K), ⁅x α, x β⁆ = c • x γ

    The structure constants of a normalised family: when the sum of two roots is again a root, the bracket of the two root vectors is a multiple of the root vector at the sum. The normalisation says nothing about the constants themselves; pinning them to the integers ±(p + 1) is exactly what upgrades a normalised family to a Chevalley basis.

    The root vectors of a normalised family span L over the Cartan subalgebra: together with H they span the whole Lie algebra.

    theorem TauCeti.IsSl2System.eq_of_forall_isNonZero {K : Type u_1} {L : Type u_2} [Field K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] {H : LieSubalgebra K L} [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] {x y : LieModule.Weight K (↥H) L → L} (hx : IsSl2System x) (hy : IsSl2System y) (h : ∀ (α : LieModule.Weight K (↥H) L), α.IsNonZero → x α = y α) :
    x = y

    A normalised family is determined by its root vectors: two systems agreeing at every root agree everywhere, since both vanish at a zero weight.

    theorem TauCeti.IsSl2System.exists_ne_zero_eq_smul {K : Type u_1} {L : Type u_2} [Field K] [CharZero K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] {H : LieSubalgebra K L} [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] {x y : LieModule.Weight K (↥H) L → L} (hx : IsSl2System x) (α : LieModule.Weight K (↥H) L) (hy : IsSl2System y) (hα : α.IsNonZero) :
    ∃ (c : K), c ≠ 0 ∧ y α = c • x α

    Two normalised families differ by a scalar at each root, since the root spaces are lines.

    theorem TauCeti.IsSl2System.mul_eq_one_of_eq_smul {K : Type u_1} {L : Type u_2} [Field K] [CharZero K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] {H : LieSubalgebra K L} [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] {x y : LieModule.Weight K (↥H) L → L} (hx : IsSl2System x) (α : LieModule.Weight K (↥H) L) (hy : IsSl2System y) (hα : α.IsNonZero) {c d : K} (hc : y α = c • x α) (hd : y (-α) = d • x (-α)) :
    c * d = 1

    The scalars relating two normalised families are inverse to one another at α and -α: this is the one constraint the normalisation ⁅x α, x (-α)⁆ = α^∨ imposes on those scalars.

    theorem TauCeti.IsSl2System.smul {K : Type u_1} {L : Type u_2} [Field K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] {H : LieSubalgebra K L} [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] {x : LieModule.Weight K (↥H) L → L} (hx : IsSl2System x) (u : LieModule.Weight K (↥H) L → K) (hu : ∀ (α : LieModule.Weight K (↥H) L), α.IsNonZero → u α * u (-α) = 1) :
    IsSl2System fun (α : LieModule.Weight K (↥H) L) => u α • x α

    Rescaling a normalised family by scalars inverse on opposite roots preserves its normalisation.

    theorem TauCeti.Weight.ne_neg_of_isNonZero {K : Type u_1} {L : Type u_2} [Field K] [CharZero K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] {H : LieSubalgebra K L} [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] {α : LieModule.Weight K (↥H) L} (hα : α.IsNonZero) :
    α ≠ -α

    A root is not its own negative. Evaluating at the coroot separates the two: a root takes the value 2 there, and its negative the value -2.

    theorem TauCeti.exists_rootPairRepresentatives (K : Type u_1) {L : Type u_2} [Field K] [CharZero K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] (H : LieSubalgebra K L) [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] :
    ∃ (s : Set (LieModule.Weight K (↥H) L)), ∀ (α : LieModule.Weight K (↥H) L), α.IsNonZero → (α ∈ s ↔ -α ∉ s)

    One root out of each opposite pair. There is a set of weights containing, for every root α, exactly one of α and -α.

    Negation is a fixed-point-free involution on the roots by TauCeti.Weight.ne_neg_of_isNonZero, so a set of representatives for the equivalence relation it generates is such a set. The choice is what a construction has to make whenever it treats α and -α asymmetrically, as the normalisation ⁅x α, x (-α)⁆ = α^∨ and the rescalings preserving it both force it to.

    theorem TauCeti.exists_isSl2System (K : Type u_1) {L : Type u_2} [Field K] [CharZero K] [LieRing L] [LieAlgebra K L] [LieAlgebra.IsKilling K L] [FiniteDimensional K L] (H : LieSubalgebra K L) [H.IsCartanSubalgebra] [LieModule.IsTriangularizable K (↥H) L] :
    ∃ (x : LieModule.Weight K (↥H) L → L), IsSl2System x

    Existence of a normalised family of root vectors. Root vectors can be chosen for all roots at once so that ⁅x α, x (-α)⁆ = α^∨ holds at every root, and not merely one root at a time.

    The construction picks one root from each pair {α, -α}, takes the sl₂ triple Mathlib attaches to it, assigns e to the chosen root and f to its negative, and 0 to a zero weight.