FenchelNielsenZomorrodian.Discrete.CompactFuchsian.AbelianizationKernel.Conditions
This module develops the rewriting and basis constructions behind the subgroup calculations. It tracks words and relations through the chosen transversal to obtain the required presentation or basis statements.
import
- FenchelNielsenZomorrodian.Discrete.CompactFuchsian.AbelianizationKernel.Periods
- Mathlib.Data.Fintype.Sigma
def AbelianizationKernelConditionFamily {ι : Type*} [Fintype ι] [DecidableEq ι]
(periods : ι → ℕ) : Prop :=
∀ i, periods i ∣ otherPeriodsLcmFamily periods i ∨
2 * otherPeriodsLcmFamily periods i ≤ otherPeriodsProductFamily periods iThe abelianization-kernel condition is rewritten as the corresponding finite presentation relation on elliptic and canonical generators.
def AbelianizationKernelCondition (σ : FenchelSignature) : Prop :=
AbelianizationKernelConditionFamily σ.periodsThe abelianization-kernel condition is rewritten as the corresponding finite presentation relation on elliptic and canonical generators.
def FenchelSignature.OneStepNumericalCondition (σ : FenchelSignature) : Prop :=
σ.HasCusps ∨ σ.IsCompact ∧ σ.AbelianPeriodConditionThis abelianization lemma computes the period-coordinate relation determined by the elliptic generators.
def FenchelSignature.DeltaOneAbelianPeriodCondition (σ : FenchelSignature) : Prop :=
LCMConditionFamily
(nonOneSubfamilyPeriods (abelianizationKernelRawPeriods σ.periods))def FenchelSignature.TwoStepNumericalCondition (σ : FenchelSignature) : Prop :=
(σ.orbitGenus, σ.numCusps) ≠ (0, 0) ∨
(σ.orbitGenus, σ.numCusps) = (0, 0) ∧
σ.DeltaOneAbelianPeriodConditionThis abelianization lemma computes the period-coordinate relation determined by the elliptic generators.