Chains of roots #
Given roots α
and β
, the α
-chain through β
is the set of roots of the form α + z • β
for an integer z
. This is known as a "root chain" and also a "root string". For linearly
independent roots in finite crystallographic root pairings, these chains are always unbroken, i.e.,
of the form: β - q • α, ..., β - α, β, β + α, ..., β + p • α
for natural numbers p
, q
, and the
length, p + q
is at most 3.
Main definitions / results: #
RootPairing.chainTopCoeff
: the natural numberp
in the chainβ - q • α, ..., β - α, β, β + α, ..., β + p • α
RootPairing.chainTopCoeff
: the natural numberq
in the chainβ - q • α, ..., β - α, β, β + α, ..., β + p • α
RootPairing.root_add_zsmul_mem_range_iff
: every chain is an interval (aka unbroken).RootPairing.chainBotCoeff_add_chainTopCoeff_le
: every chain has length at most three.
Note that it is often more convenient to use RootPairing.root_add_zsmul_mem_range_iff
than
to invoke this lemma directly.
If α = P.root i
and β = P.root j
are linearly independent, this is the value p ≥ 0
where
β - q • α, ..., β - α, β, β + α, ..., β + p • α
is the α
-chain through β
.
In the absence of linear independence, it takes a junk value.
Equations
- RootPairing.chainTopCoeff i j = if h : LinearIndependent R ![P.root i, P.root j] then ⋯.choose.toNat else 0
Instances For
If α = P.root i
and β = P.root j
are linearly independent, this is the value q ≥ 0
where
β - q • α, ..., β - α, β, β + α, ..., β + p • α
is the α
-chain through β
.
In the absence of linear independence, it takes a junk value.
Equations
Instances For
If α = P.root i
and β = P.root j
are linearly independent, this is the index of the root
β + p • α
where β - q • α, ..., β - α, β, β + α, ..., β + p • α
is the α
-chain through β
.
In the absence of linear independence, it takes a junk value.
Equations
- RootPairing.chainTopIdx i j = if h : LinearIndependent R ![P.root i, P.root j] then Exists.choose ⋯ else j
Instances For
If α = P.root i
and β = P.root j
are linearly independent, this is the index of the root
β - q • α
where β - q • α, ..., β - α, β, β + α, ..., β + p • α
is the α
-chain through β
.
In the absence of linear independence, it takes a junk value.
Equations
- RootPairing.chainBotIdx i j = if h : LinearIndependent R ![P.root i, P.root j] then Exists.choose ⋯ else j