Bases for root pairings / systems #
This file contains a theory of bases for root pairings / systems.
Implementation details #
For reduced root pairings RootSystem.Base
is equivalent to the usual definition appearing in the
informal literature (e.g., it follows from [Ser87](Ch. V, §8, Proposition 7) that
RootSystem.Base
is equivalent to both [Ser87](Ch. V, §8, Definition 5) and
[Bou02](Ch. VI, §1.5) for reduced pairings). However for non-reduced root pairings, it is
more restrictive because it includes axioms on coroots as well as on roots. For example by
RootPairing.Base.eq_one_or_neg_one_of_mem_support_of_smul_mem
it is clear that the 1-dimensional
root system {-2, -1, 0, 1, 2} ⊆ ℝ
has no base in the sense of RootSystem.Base
.
It is also worth remembering that it is only for reduced root systems that one has the simply transitive action of the Weyl group on the set of bases, and that the Weyl group of a non-reduced root system is the same as that of the reduced root system obtained by passing to the indivisible roots.
For infinite root systems, RootSystem.Base
is usually not the right notion: linear independence
is too strong.
Main definitions / results: #
RootSystem.Base
: a base of a root pairing.
TODO #
- Develop a theory of base / separation / positive roots for infinite systems which specialises to the concept here for finite systems.
A base of a root pairing.
For reduced root pairings this definition is equivalent to the usual definition appearing in the informal literature but not for non-reduced root pairings it is more restrictive. See the module doc string for further remarks.
- support : Set ι
The set of roots / coroots belonging to the base.
- linInd_root : LinearIndependent R fun (i : ↑self.support) => P.root ↑i
- linInd_coroot : LinearIndependent R fun (i : ↑self.support) => P.coroot ↑i
- root_mem_or_neg_mem (i : ι) : P.root i ∈ AddSubmonoid.closure (⇑P.root '' self.support) ∨ -P.root i ∈ AddSubmonoid.closure (⇑P.root '' self.support)
- coroot_mem_or_neg_mem (i : ι) : P.coroot i ∈ AddSubmonoid.closure (⇑P.coroot '' self.support) ∨ -P.coroot i ∈ AddSubmonoid.closure (⇑P.coroot '' self.support)
Instances For
Interchanging roots and coroots, one still has a base of a root pairing.
Equations
- b.flip = { support := b.support, linInd_root := ⋯, linInd_coroot := ⋯, root_mem_or_neg_mem := ⋯, coroot_mem_or_neg_mem := ⋯ }
Instances For
A base of a root system yields a basis of the root space.
Instances For
A base of a root system yields a basis of the coroot space.
Equations
- b.toCoweightBasis = b.flip.toWeightBasis