FenchelNielsenZomorrodian.Profinite.CuspedQuotient

9 Theorem | 4 Definition | 1 Abbreviation | 3 Instance

This module develops Fenchel--Nielsen--Zomorrodian presentation reductions, period relations, reindexings, and quotient maps.

import
Imported by

Declarations

private theorem ulift_list_prod_down {α : Type v} [Monoid α]
    (xs : List (ULift.{u, v} α)) :
    xs.prod.down = (xs.map (fun x => x.down)).prod

The lifted list product descends to the corresponding profinite product.

Show proof
private def firstCusp (σ : FenchelSignature) (hCusps : σ.HasCusps) : Fin σ.numCusps :=
  ⟨0, hCusps⟩

The distinguished cusp used to cancel the total relation in the direct cusped quotient.

abbrev CuspedSmoothQuotient (σ : FenchelSignature) :=
  Multiplicative (FenchelPeriodCoordinate σ)

The finite abelian target used in the cusped one-step quotient.

instance instTopologicalSpaceCuspedSmoothQuotient (σ : FenchelSignature) :
    TopologicalSpace (CuspedSmoothQuotient σ) :=
  ⊥

The cusped smooth quotient carries the topology induced by its finite quotient construction.

instance instDiscreteTopologyCuspedSmoothQuotient (σ : FenchelSignature) :
    DiscreteTopology (CuspedSmoothQuotient σ) :=
  ⟨rfl

The cusped smooth quotient carries the discrete topology at the finite quotient stage.

noncomputable instance instFiniteULiftCuspedSmoothQuotient (σ : FenchelSignature) :
    Finite (ULift.{u, 0} (CuspedSmoothQuotient σ)) := by
  letI : Finite (FenchelPeriodCoordinate σ) :=
    zmodCoordinateFamily_finite σ.periods
      (fun i => lt_of_lt_of_le (by decide : 0 < 2) (σ.period_ge_two i))
  infer_instance

The lifted cusped smooth quotient type is finite.

def cuspedSmoothGeneratorImageCore
    (σ : FenchelSignature) (hCusps : σ.HasCusps) :
    ProfiniteFenchelGeneratorIndex.{u} σ → CuspedSmoothQuotient σ
  | ULift.up (.surfaceA _) => 1
  | ULift.up (.surfaceB _) => 1
  | ULift.up (.cusp j) =>
      if j = firstCusp σ hCusps then
        Multiplicative.ofAdd (-(fenchelPeriodBasisSum σ))
      else
        1
  | ULift.up (.inertia k) =>
      Multiplicative.ofAdd (fenchelPeriodBasisVector σ k)

The direct cusped quotient on profinite Fenchel generators. It replaces the previous detour through the general discrete cusped presentation; the cusped branch only needs the finite abelian target and the generator assignment.

def cuspedSmoothGeneratorImage
    (Δ : ProfiniteFGroup.{u}) (hCusps : Δ.signature.HasCusps) :
    ProfiniteFenchelGeneratorIndex.{u} Δ.signature →
      ULift.{u, 0} (CuspedSmoothQuotient Δ.signature) :=
  fun x => ULift.up (cuspedSmoothGeneratorImageCore Δ.signature hCusps x)

The cusped smooth generator image is the direct cusped quotient, universe-lifted to match the carrier of \(\Delta\).

private theorem cuspedSmooth_inertia_list_product
    (σ : FenchelSignature) (hCusps : σ.HasCusps) :
    (List.map
        (fun k : Fin σ.numPeriods =>
          cuspedSmoothGeneratorImageCore (σ := σ) hCusps
            (ULift.up.{u, 0} (ProfiniteFenchelGenerator.inertia k)))
        (List.finRange σ.numPeriods)).prod =
      Multiplicative.ofAdd (fenchelPeriodBasisSum σ)

The cusped smooth generator list product gives the required relation.

Show proof
private theorem cuspedSmooth_cusp_list_product
    (σ : FenchelSignature) (hCusps : σ.HasCusps) :
    (List.map
        (fun j : Fin σ.numCusps =>
          cuspedSmoothGeneratorImageCore (σ := σ) hCusps
            (ULift.up.{u, 0} (ProfiniteFenchelGenerator.cusp j)))
        (List.finRange σ.numCusps)).prod =
      Multiplicative.ofAdd (-(fenchelPeriodBasisSum σ))

The cusped smooth generator list product gives the required relation.

Show proof
private theorem cuspedSmoothGeneratorImage_total_relation
    (Δ : ProfiniteFGroup.{u}) (hCusps : Δ.signature.HasCusps) :
    profiniteFenchelTotalRelation
        (fun i => cuspedSmoothGeneratorImageCore Δ.signature hCusps
          (ULift.up.{u, 0} (ProfiniteFenchelGenerator.surfaceA i)))
        (fun i => cuspedSmoothGeneratorImageCore Δ.signature hCusps
          (ULift.up.{u, 0} (ProfiniteFenchelGenerator.surfaceB i)))
      (fun j => cuspedSmoothGeneratorImageCore Δ.signature hCusps
        (ULift.up.{u, 0} (ProfiniteFenchelGenerator.cusp j)))
      (fun k => cuspedSmoothGeneratorImageCore Δ.signature hCusps
        (ULift.up.{u, 0} (ProfiniteFenchelGenerator.inertia k))) = 1

The cusped smooth generator images satisfy the total relation.

Show proof
private theorem cuspedSmoothGeneratorImage_lifted_total_relation
    (Δ : ProfiniteFGroup.{u}) (hCusps : Δ.signature.HasCusps) :
    profiniteFenchelTotalRelation
        (fun i => cuspedSmoothGeneratorImage Δ hCusps
          (ULift.up.{u, 0} (ProfiniteFenchelGenerator.surfaceA i)))
        (fun i => cuspedSmoothGeneratorImage Δ hCusps
          (ULift.up.{u, 0} (ProfiniteFenchelGenerator.surfaceB i)))
      (fun j => cuspedSmoothGeneratorImage Δ hCusps
        (ULift.up.{u, 0} (ProfiniteFenchelGenerator.cusp j)))
      (fun k => cuspedSmoothGeneratorImage Δ hCusps
        (ULift.up.{u, 0} (ProfiniteFenchelGenerator.inertia k))) = 1

The cusped smooth generator images satisfy the total relation.

Show proof
private theorem cuspedSmoothGeneratorImage_period_relation
    (Δ : ProfiniteFGroup.{u}) (hCusps : Δ.signature.HasCusps)
    (k : Fin Δ.signature.numPeriods) :
    cuspedSmoothGeneratorImageCore Δ.signature hCusps
        (ULift.up.{u, 0} (ProfiniteFenchelGenerator.inertia k)) ^
      Δ.signature.periods k = 1

The cusped smooth generator image satisfies each prescribed period relation.

Show proof
private theorem cuspedSmoothGeneratorImage_lifted_period_relation
    (Δ : ProfiniteFGroup.{u}) (hCusps : Δ.signature.HasCusps)
    (k : Fin Δ.signature.numPeriods) :
    cuspedSmoothGeneratorImage Δ hCusps
        (ULift.up.{u, 0} (ProfiniteFenchelGenerator.inertia k)) ^
      Δ.signature.periods k = 1

The lifted cusped smooth generator image satisfies each prescribed period relation.

Show proof
private theorem cuspedSmoothGeneratorImage_inertia_order
    (Δ : ProfiniteFGroup.{u}) (hCusps : Δ.signature.HasCusps)
    (k : Fin Δ.signature.numPeriods) :
    orderOf
        (cuspedSmoothGeneratorImageCore Δ.signature hCusps
          (ULift.up.{u, 0} (ProfiniteFenchelGenerator.inertia k))) =
      Δ.signature.periods k

The image of a cusped smooth generator has the prescribed inertia order.

Show proof
private theorem cuspedSmoothGeneratorImage_lifted_inertia_order
    (Δ : ProfiniteFGroup.{u}) (hCusps : Δ.signature.HasCusps)
    (k : Fin Δ.signature.numPeriods) :
    orderOf
        (cuspedSmoothGeneratorImage Δ hCusps
          (ULift.up.{u, 0} (ProfiniteFenchelGenerator.inertia k))) =
      Δ.signature.periods k

The image of a cusped smooth generator has the prescribed inertia order.

Show proof
noncomputable def cuspedSmoothQuotientData
    (Δ : ProfiniteFGroup.{u}) (hCusps : Δ.signature.HasCusps) :
    ProfiniteSmoothQuotientData Δ 1 :=
  ProfiniteSmoothQuotientData.ofPresentationLiftToFiniteOfRelations
    Δ (cuspedSmoothGeneratorImage Δ hCusps)
    (cuspedSmoothGeneratorImage_lifted_total_relation Δ hCusps)
    (cuspedSmoothGeneratorImage_lifted_period_relation Δ hCusps)
    (profiniteDerivedSeries_one_eq_bot_of_commGroup
      (ULift.{u, 0} (CuspedSmoothQuotient Δ.signature)))
    (cuspedSmoothGeneratorImage_lifted_inertia_order Δ hCusps)

The smooth quotient data for the cusped profinite F-group quotient.