Basic theory of sl₂ triples #
Mathlib defines an abstract sl₂ triple (IsSl2Triple h e f: the relations ⁅e, f⁆ = h,
⁅h, e⁆ = 2e, ⁅h, f⁆ = -2f, with h ≠ 0) and the whole primitive-vector calculus that rests on
it. This file adds three things Mathlib does not have.
The first is a supply of triples, none being exhibited in the special linear Lie algebra. For every
pair i ≠ j of indices, the matrix units
e = Eᵢⱼ, f = Eⱼᵢ, h = Eᵢᵢ - Eⱼⱼ
form an sl₂ triple inside LieAlgebra.SpecialLinear.sl n R, over an arbitrary nontrivial
commutative ring. These are the triples attached to the roots of sl n, and for n = 2 the triple
is the whole Lie algebra: sl (Fin 2) R is free of rank 3 on e, f, h, so the Lie subalgebra
IsSl2Triple.toLieSubalgebra generated by the standard triple is everything.
That last fact is what makes sl (Fin 2) R usable as the model sl₂: statements about a triple
t which are false for a triple sitting inside a bigger Lie algebra become correct once
t.toLieSubalgebra R = ⊤, and this file provides the model in which that hypothesis holds. For an
arbitrary triple, IsSl2Triple.isSl2Triple_restrict regards it inside the subalgebra it generates,
where
IsSl2Triple.restrict_toLieSubalgebra_eq_top supplies that hypothesis.
The second is the presentation of sl₂ by its relations, for an arbitrary Lie algebra: a triple is
linearly independent, so a triple generating a Lie algebra is a basis of it, and three elements of
any Lie algebra obeying the same relations determine a homomorphism out of it. That is what carries
a representation of the model sl₂ over to an abstract one, in
TauCeti/Algebra/Lie/Sl2/Standard.lean.
The third is perfectness of a Lie algebra generated by a triple, in the form the module theory
uses it: each of h, 2e and -2f is a bracket of triple elements, so an action of the algebra
that composes to zero is already zero.
Main results #
Ado.isSl2Triple_single: fori ≠ j, the matrix unitsEᵢⱼ,EⱼᵢandEᵢᵢ - Eⱼⱼform ansl₂triple insl n R. The three bracket relations are available separately asAdo.lie_single_single_eq_singleSubSingle,Ado.lie_singleSubSingle_singleandAdo.lie_singleSubSingle_single_swap.Ado.slFinTwoBasis: the standard basis(e, f, h)ofsl (Fin 2) R, obtained from the coordinate isomorphismAdo.slFinTwoEquivFunand identified vector by vector inAdo.slFinTwoBasis_zero,Ado.slFinTwoBasis_oneandAdo.slFinTwoBasis_two. The rank3is the casen = Fin 2ofAdo.finrank_sl, and theModule.FreeandModule.Finiteinstances come from there too.Ado.toLieSubalgebra_isSl2Triple_single_eq_top: insl (Fin 2) Rthe subalgebra generated by a standard triple is the whole ofsl (Fin 2) R. The underlying expansion of an arbitrary element in the triple isAdo.eq_smul_single_add_smul_single_add_smul_singleSubSingle.IsSl2Triple.isSl2Triple_restrict: an arbitrary triple regarded inside the subalgebra that it generates.IsSl2Triple.map: the image of a triple under a Lie algebra homomorphism that does not kill its Cartan element is a triple.IsSl2Triple.lieSubmoduleOfStable: a submodule stable under the raising and lowering elements of a triple is a Lie submodule over the subalgebra they generate.Ado.lieHomOfSl2Basis: from a basis obeying thesl₂relations, three elements of another Lie algebra obeying the same relations determine a homomorphism, sending the basis to them (Ado.lieHomOfSl2Basis_apply).Ado.linearIndependent_isSl2Triple: the three elements of ansl₂triple are linearly independent, being eigenvectors ofad hfor the eigenvalues2,-2and0, andAdo.basisOfIsSl2Triple: a generatingsl₂triple, as a basis of the Lie algebra it generates.Ado.lie_eq_zero_of_lie_lie_eq_zero: a Lie algebra generated by ansl₂triple is perfect, so an action of it that composes to zero is zero.IsSl2Triple.eq_two_of_lie_h_e_eq_smul: the raising eigenvalue of ansl₂triple is forced to be two in a torsion-free module.IsSl2Triple.rescale: rescaling the raising element by a unit and the lowering element by its inverse preserves ansl₂triple.
Implementation notes #
The special linear results are stated over an arbitrary commutative ring R; nontriviality of R
is needed only where h ≠ 0 is claimed, and StrongRankCondition R only for the rank computation.
Mathlib does not register LieRing.ofAssociativeRing as a global instance, so, as in
Mathlib/Algebra/Lie/Classical.lean, it is a local instance here.
Linear independence of a triple is the eigenvector argument of
Module.End.eigenvectors_linearIndependent', so it asks what that theorem asks — a domain of
characteristic zero and a torsion-free Lie algebra — rather than a field: the eigenvalues 2, -2
and 0 need only be distinct, not invertible. The presentation Ado.lieHomOfSl2Basis needs
neither, being a bilinearity argument over an arbitrary commutative ring.
The sl (Fin 2) R results are stated for an arbitrary pair i ≠ j of indices in Fin 2, not just
for (0, 1): the opposite pair gives the opposite triple (-h, f, e), and both are standard.
References #
This is the concrete input to Layer 0 of
TauCetiRoadmap/RepresentationTheory/LieHighestWeight/README.md, whose worked sl₂ is
"LieAlgebra.SpecialLinear.sl (Fin 2) K with its standard triple", and whose classification
targets carry the hypothesis htop : t.toLieSubalgebra K = ⊤ that
Ado.toLieSubalgebra_isSl2Triple_single_eq_top discharges for that model.
If the Cartan element of an sl₂ triple acts on its raising element by a scalar, that scalar
is two, provided scalar multiplication on the ambient Lie algebra has no zero divisors.
Rescaling an sl₂ triple by a unit of the base ring. Scaling the raising element by c
and the lowering element by c⁻¹ leaves their bracket, hence the Cartan element, unchanged.
The standard triples of sl n R #
⁅Eᵢⱼ, Eⱼᵢ⁆ = Eᵢᵢ - Eⱼⱼ in sl n R: the defining relation ⁅e, f⁆ = h of the standard
sl₂ triple.
⁅Eᵢᵢ - Eⱼⱼ, Eᵢⱼ⁆ = 2 Eᵢⱼ in sl n R: the relation ⁅h, e⁆ = 2e of the standard sl₂
triple.
Swapping the two indices of Eᵢᵢ - Eⱼⱼ negates it.
⁅Eᵢᵢ - Eⱼⱼ, Eⱼᵢ⁆ = -2 Eⱼᵢ in sl n R: the relation ⁅h, f⁆ = -2f of the standard sl₂
triple. It is the previous relation for the opposite pair of indices, since swapping them negates
h.
Eᵢᵢ (c) - Eⱼⱼ (c) is nonzero in sl n R when i ≠ j and c ≠ 0: its (i, i) entry is
c.
The standard sl₂ triple of sl n R. For i ≠ j the matrix units e = Eᵢⱼ, f = Eⱼᵢ
and h = Eᵢᵢ - Eⱼⱼ satisfy the sl₂ relations. These are the concrete counterparts of the triples
that LieAlgebra.IsKilling.exists_isSl2Triple_of_weight_isNonZero attaches to a root of a
Killing-semisimple Lie algebra: e and f span the root spaces of εᵢ - εⱼ and of its negative,
and h is the corresponding coroot.
sl (Fin 2) R as the model sl₂ #
The bottom-right entry of a trace-zero 2 × 2 matrix is minus its top-left entry.
The coordinates of a trace-zero 2 × 2 matrix in the standard basis (e, f, h), namely
A ↦ (A 0 1, A 1 0, A 0 0). The inverse rebuilds A from them, using that the trace-zero
condition forces A 1 1 = -A 0 0.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The standard basis of sl₂. The matrix units e = E₀₁, f = E₁₀ and h = E₀₀ - E₁₁ are
a basis of sl (Fin 2) R; see Ado.slFinTwoBasis_apply.
Equations
Instances For
The three vectors of the standard basis of sl (Fin 2) R, as matrices: index 0 is the
raising element e = E₀₁, index 1 the lowering element f = E₁₀, and index 2 the semisimple
element h = E₀₀ - E₁₁. The individual cases, phrased inside sl (Fin 2) R rather than in
matrices, are Ado.slFinTwoBasis_zero, Ado.slFinTwoBasis_one and
Ado.slFinTwoBasis_two.
The first standard basis vector of sl₂ is the raising element e = E₀₁.
The second standard basis vector of sl₂ is the lowering element f = E₁₀.
The third standard basis vector of sl₂ is the semisimple element h = E₀₀ - E₁₁.
Every element of sl (Fin 2) R is a combination of a standard triple: the coefficients are
read off from the entries, using A 1 1 = -A 0 0.
The standard triple generates sl₂. In sl (Fin 2) R the Lie subalgebra spanned by a
standard sl₂ triple is everything, so sl (Fin 2) R is the model in which the classification
hypothesis t.toLieSubalgebra R = ⊤ holds.
Homomorphisms determined by the sl₂ relations #
The sl₂ relations determine a homomorphism. If a basis (b₀, b₁, b₂) of a Lie algebra
L obeys the sl₂ relations, then any three elements E, F, H of a Lie algebra L' obeying
the same relations determine a Lie algebra homomorphism L →ₗ⁅K⁆ L' carrying the basis to them
(Ado.lieHomOfSl2Basis_apply). Bracket preservation is bilinear, so it is enough to check it
on the basis, where it is the nine brackets of the relations.
Equations
Instances For
The homomorphism presented by the sl₂ relations sends the basis to the three chosen
elements.
A triple inside the subalgebra it generates #
An sl₂ triple is carried to an sl₂ triple by any Lie algebra homomorphism that does not
kill the Cartan element. The three bracket relations hold for any homomorphism, so φ h ≠ 0 is
the only hypothesis needed; an injective φ supplies it from t.h_ne_zero.
The raising element of an sl₂ triple belongs to the Lie subalgebra generated by the
triple.
The lowering element of an sl₂ triple belongs to the Lie subalgebra generated by the
triple.
The Cartan element of an sl₂ triple belongs to the Lie subalgebra generated by the
triple.
An sl₂ triple, regarded inside the Lie subalgebra that it generates.
A triple regarded inside the subalgebra that it generates still generates the whole subalgebra.
A submodule stable under the raising and lowering elements of an sl₂ triple is a Lie
submodule over the subalgebra they generate. Every element of t.toLieSubalgebra K is a
combination c₁ • e + c₂ • f + c₃ • h, and the Cartan element is h = ⁅e, f⁆, so stability under
e and f is all that has to be checked.
The underlying submodule is S itself, recorded in
IsSl2Triple.lieSubmoduleOfStable_toSubmodule, and membership in
IsSl2Triple.mem_lieSubmoduleOfStable.
Equations
- t.lieSubmoduleOfStable S he hf = { toSubmodule := S, lie_mem := ⋯ }
Instances For
Membership in IsSl2Triple.lieSubmoduleOfStable is membership in the submodule it is built
from. This is the abstraction boundary for membership: a consumer should rewrite with this lemma
rather than unfold the definition.
A generating triple as a basis #
An sl₂ triple is linearly independent. Its three elements are eigenvectors of ad h for
the eigenvalues 2, -2 and 0, which are distinct in characteristic zero.
A generating sl₂ triple is a basis. A Lie algebra spanned by an sl₂ triple is free of
rank 3 on it: the triple spans by hypothesis and is linearly independent by
Ado.linearIndependent_isSl2Triple.
Equations
- Ado.basisOfIsSl2Triple t htop = Module.Basis.mk ⋯ ⋯
Instances For
The first vector of the basis of a generating triple is the raising element e.
The second vector of the basis of a generating triple is the lowering element f.
The third vector of the basis of a generating triple is the semisimple element h.
Perfectness of a generating triple #
A Lie algebra generated by an sl₂ triple is perfect, in the form in which the statement is
used: if the action of L on M composes to zero then it is already zero. Indeed each of
h = ⁅e, f⁆, 2e = ⁅h, e⁆ and -2f = ⁅h, f⁆ is a bracket, so each acts as a composite.