FenchelNielsenZomorrodian.Discrete.CompactFuchsian.FirstReduction.ActualTransport

4 Theorem | 6 Definition

This module sets up the finite-stage and inverse-limit description of the construction. It records the stage maps, projections, and comparison lemmas used to pass back to the completed object.

import
Imported by

Declarations

private theorem firstReductionIndex_card_ge_three
    {tailLen p : ℕ} (hp : 2 ≤ p) (hTailLen : 0 < tailLen) :
    3 ≤ Fintype.card (FirstReductionIndex tailLen p)

The first-reduction index set has at least three elements in the canonical finite quotient data.

Show proof
private theorem firstReductionPeriods_ge_two
    {tailLen p : ℕ}
    (m₁' m₂' : ℕ) (tail : Fin tailLen → ℕ)
    (hm₁' : 2 ≤ m₁') (hm₂' : 2 ≤ m₂') (htail : ∀ j, 2 ≤ tail j)
    (x : FirstReductionIndex tailLen p) :
    2 ≤ firstReductionPeriods (p := p) m₁' m₂' tail x

Every period in the first-reduction period family is at least \(2\).

Show proof
noncomputable def firstReductionTransportSignature
    {tailLen p : ℕ}
    (m₁' m₂' : ℕ) (tail : Fin tailLen → ℕ)
    (hp : 2 ≤ p) (hm₁' : 2 ≤ m₁') (hm₂' : 2 ≤ m₂')
    (htail : ∀ j, 2 ≤ tail j) (hTailLen : 0 < tailLen) :
    FuchsianSignature :=
  familyFuchsianSignature
    (firstReductionPeriods (p := p) m₁' m₂' tail)
    (firstReductionPeriods_ge_two m₁' m₂' tail hm₁' hm₂' htail)
    (firstReductionIndex_card_ge_three hp hTailLen)

The first-reduction transport signature has the displayed canonical generator and finite-quotient image data.

def firstReductionTailSuccEquivFirstSecondTail
    (tailLen p : ℕ) :
    Fin (tailLen + 1) × Fin p ≃ Sum (Fin p) (Fin tailLen × Fin p) where
  toFun jk :=
    Fin.cases (motive := fun _ => Sum (Fin p) (Fin tailLen × Fin p))
      (.inl jk.2)
      (fun j => .inr (j, jk.2))
      jk.1
  invFun
    | .inl k => (0, k)
    | .inr jk => (jk.1.succ, jk.2)
  left_inv := by
    intro jk
    rcases jk with ⟨j, k⟩
    cases j using Fin.cases with
    | zero => rfl
    | succ j => rfl
  right_inv := by
    intro s
    cases s with
    | inl k => rfl
    | inr jk =>
        rcases jk with ⟨j, k⟩
        rfl

The named finite-index equivalence identifies the source and target index types used in the reduction step.

def firstReductionIndexSuccEquivFirstSecondInputIndex
    (tailLen p : ℕ) :
    FirstReductionIndex (tailLen + 1) p ≃ FirstSecondInputIndex tailLen p :=
  Equiv.sumCongr (Equiv.refl (Fin 2))
    (firstReductionTailSuccEquivFirstSecondTail tailLen p)

The named finite-index equivalence identifies the source and target index types used in the reduction step.

def finTwoRestEquiv {p : ℕ} (hp : 2 ≤ p) : Fin p ≃ Sum (Fin 2) (Fin (p - 2)) :=
  (finCongr (by omega : p = 2 + (p - 2))).trans finSumFinEquiv.symm

The named finite-index equivalence identifies the source and target index types used in the reduction step.

def firstSecondInputIndexEquivSecondReductionSourceIndex
    {tailLen p : ℕ} (hp : 2 ≤ p) :
    FirstSecondInputIndex tailLen p ≃ SecondReductionSourceIndex tailLen p :=
  Equiv.sumCongr (Equiv.refl (Fin 2))
    ((Equiv.sumCongr (finTwoRestEquiv hp) (Equiv.refl (Fin tailLen × Fin p))).trans
      (Equiv.sumAssoc (Fin 2) (Fin (p - 2)) (Fin tailLen × Fin p)))

The finite-index equivalence reindexes the first-second input periods as the second-reduction source periods.

def firstReductionIndexSuccEquivSecondReductionSourceIndex
    {tailLen p : ℕ} (hp : 2 ≤ p) :
    FirstReductionIndex (tailLen + 1) p ≃ SecondReductionSourceIndex tailLen p :=
  (firstReductionIndexSuccEquivFirstSecondInputIndex tailLen p).trans
    (firstSecondInputIndexEquivSecondReductionSourceIndex hp)

The named finite-index equivalence identifies the source and target index types used in the reduction step.

private theorem firstReductionTailIncludingThird_transportPeriods_reindexed
    {tailLen p q : ℕ}
    (m₁' m₂' m₃' : ℕ) (tail : Fin tailLen → ℕ) (hp : 2 ≤ p)
    (x : FirstReductionIndex (tailLen + 1) p) :
    firstReductionPeriods (p := p) m₁' m₂'
        (firstReductionTailIncludingThird (q := q) m₃' tail) x =
      secondReductionSourcePeriods (p := p) (q := q) m₁' m₂' m₃' tail
        (firstReductionIndexSuccEquivSecondReductionSourceIndex hp x)

The transported tail-including-third period family agrees with the corresponding reindexing.

Show proof
theorem firstReductionTransportSignature_mulEquiv_secondReductionSourceSignature_exists
    {tailLen p q : ℕ}
    (m₁' m₂' m₃' : ℕ) (tail : Fin tailLen → ℕ)
    (hp : 2 ≤ p) (hq : 2 ≤ q)
    (hm₁' : 2 ≤ m₁') (hm₂' : 2 ≤ m₂') (hm₃' : 0 < m₃')
    (htail : ∀ j, 2 ≤ tail j) :
    Nonempty
      (FuchsianPresentedGroup
          (firstReductionTransportSignature m₁' m₂'
            (firstReductionTailIncludingThird (q := q) m₃' tail)
            hp hm₁' hm₂'
            (firstReductionTailIncludingThird_ge_two_of_pos hq m₃' tail hm₃' htail)
            (Nat.succ_pos _))
        ≃*
        FuchsianPresentedGroup
          (secondReductionSourceSignature (p := p) m₁' m₂' m₃' tail hq hm₁' hm₂'
            hm₃' htail))

There is a multiplicative equivalence between the first-reduction transport signature and the second-reduction source signature.

Show proof