FenchelNielsenZomorrodian.Profinite.LowPeriodQuotient

9 Theorem | 5 Definition | 5 Instance

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

import
Imported by

Declarations

noncomputable def twoPeriodIndexZero
    (Δ : ProfiniteFGroup.{u}) (hTwo : Δ.signature.numPeriods = 2) :
    Fin Δ.signature.numPeriods :=
  Fin.cast hTwo.symm (0 : Fin 2)

The first distinguished period index in the two-period case.

noncomputable def twoPeriodIndexOne
    (Δ : ProfiniteFGroup.{u}) (hTwo : Δ.signature.numPeriods = 2) :
    Fin Δ.signature.numPeriods :=
  Fin.cast hTwo.symm (1 : Fin 2)

The second distinguished period index in the two-period case.

theorem twoPeriod_inertia_list_product
    (Δ : ProfiniteFGroup.{u}) (hTwo : Δ.signature.numPeriods = 2) :
    ((List.finRange Δ.signature.numPeriods).map fun k => Δ.inertia k).prod =
      Δ.inertia (twoPeriodIndexZero Δ hTwo) *
        Δ.inertia (twoPeriodIndexOne Δ hTwo)

With two periods, the inertia part of the total relation is the product of the two indexed inertia generators.

Show proof
theorem twoPeriod_inertia_mul_eq_one
    (Δ : ProfiniteFGroup.{u})
    (hCompact : Δ.signature.IsCompact)
    (hZero : Δ.signature.orbitGenus = 0)
    (hTwo : Δ.signature.numPeriods = 2) :
    Δ.inertia (twoPeriodIndexZero Δ hTwo) *
        Δ.inertia (twoPeriodIndexOne Δ hTwo) = 1

In the compact zero-genus two-period case, the two inertia generators multiply to one.

Show proof
theorem twoPeriod_periods_eq
    (Δ : ProfiniteFGroup.{u})
    (hCompact : Δ.signature.IsCompact)
    (hZero : Δ.signature.orbitGenus = 0)
    (hTwo : Δ.signature.numPeriods = 2) :
    Δ.signature.periods (twoPeriodIndexZero Δ hTwo) =
      Δ.signature.periods (twoPeriodIndexOne Δ hTwo)

In the compact zero-genus two-period case, the two periods are equal.

Show proof
instance instTopologicalSpaceMultiplicativeZMod (n : ℕ) :
    TopologicalSpace (Multiplicative (ZMod n)) :=
  ⊥

The multiplicative group of \(\mathrm{ZMod}\,n\) is given the discrete topology.

instance instDiscreteTopologyMultiplicativeZMod (n : ℕ) :
    DiscreteTopology (Multiplicative (ZMod n)) :=
  ⟨rfl

The multiplicative group of \(\mathrm{ZMod}\,n\) is a discrete topological space.

noncomputable instance instFintypeMultiplicativeZMod (n : ℕ) [NeZero n] :
    Fintype (Multiplicative (ZMod n)) :=
  Fintype.ofEquiv (ZMod n) Multiplicative.toAdd

The multiplicative group of \(\mathbb{Z} / n\mathbb{Z}\) has a fintype instance when \(n\) is nonzero.

noncomputable instance instFiniteMultiplicativeZMod (n : ℕ) [NeZero n] :
    Finite (Multiplicative (ZMod n)) :=
  Finite.of_fintype _

The multiplicative finite cyclic group is finite.

noncomputable instance instFiniteULiftMultiplicativeZMod (n : ℕ) [NeZero n] :
    Finite (ULift.{u, 0} (Multiplicative (ZMod n))) := by
  infer_instance

The lifted multiplicative finite cyclic group is finite.

noncomputable def twoPeriodCyclicGeneratorImageCore
    (Δ : ProfiniteFGroup.{u}) (hTwo : Δ.signature.numPeriods = 2) :
    ProfiniteFenchelGeneratorIndex.{u} Δ.signature →
      Multiplicative
        (ZMod (Δ.signature.periods (twoPeriodIndexZero Δ hTwo)))
  | ULift.up (.inertia k) =>
      if (Fin.cast hTwo k).val = 0 then
        Multiplicative.ofAdd (1 :
          ZMod (Δ.signature.periods (twoPeriodIndexZero Δ hTwo)))
      else
        (Multiplicative.ofAdd (1 :
          ZMod (Δ.signature.periods (twoPeriodIndexZero Δ hTwo))))⁻¹
  | ULift.up (.surfaceA _) => 1
  | ULift.up (.surfaceB _) => 1
  | ULift.up (.cusp _) => 1

Core generator-image map for the two-period cyclic quotient.

noncomputable def twoPeriodCyclicGeneratorImage
    (Δ : ProfiniteFGroup.{u}) (hTwo : Δ.signature.numPeriods = 2) :
    ProfiniteFenchelGeneratorIndex.{u} Δ.signature →
      ULift.{u, 0}
        (Multiplicative
          (ZMod (Δ.signature.periods (twoPeriodIndexZero Δ hTwo)))) :=
  fun x => ULift.up (twoPeriodCyclicGeneratorImageCore Δ hTwo x)

Lifted generator-image map for the two-period cyclic quotient.

private theorem twoPeriodCyclicGeneratorImage_total_relation
    (Δ : ProfiniteFGroup.{u})
    (hCompact : Δ.signature.IsCompact)
    (hZero : Δ.signature.orbitGenus = 0)
    (hTwo : Δ.signature.numPeriods = 2) :
    profiniteFenchelTotalRelation
        (fun i => twoPeriodCyclicGeneratorImageCore Δ hTwo
          (ULift.up (ProfiniteFenchelGenerator.surfaceA i)))
        (fun i => twoPeriodCyclicGeneratorImageCore Δ hTwo
          (ULift.up (ProfiniteFenchelGenerator.surfaceB i)))
        (fun j => twoPeriodCyclicGeneratorImageCore Δ hTwo
          (ULift.up (ProfiniteFenchelGenerator.cusp j)))
        (fun k => twoPeriodCyclicGeneratorImageCore Δ hTwo
          (ULift.up (ProfiniteFenchelGenerator.inertia k))) = 1

The two-period cyclic generator image satisfies the total Fenchel relation.

Show proof
private theorem twoPeriodCyclicGeneratorImage_lifted_total_relation
    (Δ : ProfiniteFGroup.{u})
    (hCompact : Δ.signature.IsCompact)
    (hZero : Δ.signature.orbitGenus = 0)
    (hTwo : Δ.signature.numPeriods = 2) :
    profiniteFenchelTotalRelation
        (fun i => twoPeriodCyclicGeneratorImage Δ hTwo
          (ULift.up (ProfiniteFenchelGenerator.surfaceA i)))
        (fun i => twoPeriodCyclicGeneratorImage Δ hTwo
          (ULift.up (ProfiniteFenchelGenerator.surfaceB i)))
        (fun j => twoPeriodCyclicGeneratorImage Δ hTwo
          (ULift.up (ProfiniteFenchelGenerator.cusp j)))
        (fun k => twoPeriodCyclicGeneratorImage Δ hTwo
          (ULift.up (ProfiniteFenchelGenerator.inertia k))) = 1

The lifted two-period cyclic generator image satisfies the total Fenchel relation.

Show proof
private theorem twoPeriodCyclicGeneratorImage_period_relation
    (Δ : ProfiniteFGroup.{u})
    (hCompact : Δ.signature.IsCompact)
    (hZero : Δ.signature.orbitGenus = 0)
    (hTwo : Δ.signature.numPeriods = 2)
    (k : Fin Δ.signature.numPeriods) :
    twoPeriodCyclicGeneratorImageCore Δ hTwo
        (ULift.up (ProfiniteFenchelGenerator.inertia k)) ^
      Δ.signature.periods k = 1

The two-period cyclic generator image satisfies each prescribed period relation.

Show proof
private theorem twoPeriodCyclicGeneratorImage_lifted_period_relation
    (Δ : ProfiniteFGroup.{u})
    (hCompact : Δ.signature.IsCompact)
    (hZero : Δ.signature.orbitGenus = 0)
    (hTwo : Δ.signature.numPeriods = 2)
    (k : Fin Δ.signature.numPeriods) :
    twoPeriodCyclicGeneratorImage Δ hTwo
        (ULift.up (ProfiniteFenchelGenerator.inertia k)) ^
      Δ.signature.periods k = 1

The lifted two-period cyclic generator image satisfies each prescribed period relation.

Show proof
private theorem twoPeriodCyclicGeneratorImage_inertia_order
    (Δ : ProfiniteFGroup.{u})
    (hCompact : Δ.signature.IsCompact)
    (hZero : Δ.signature.orbitGenus = 0)
    (hTwo : Δ.signature.numPeriods = 2)
    (k : Fin Δ.signature.numPeriods) :
    orderOf
        (twoPeriodCyclicGeneratorImageCore Δ hTwo
          (ULift.up (ProfiniteFenchelGenerator.inertia k))) =
      Δ.signature.periods k

In the two-period cyclic quotient, each inertia generator image has the prescribed order.

Show proof
private theorem twoPeriodCyclicGeneratorImage_lifted_inertia_order
    (Δ : ProfiniteFGroup.{u})
    (hCompact : Δ.signature.IsCompact)
    (hZero : Δ.signature.orbitGenus = 0)
    (hTwo : Δ.signature.numPeriods = 2)
    (k : Fin Δ.signature.numPeriods) :
    orderOf
        (twoPeriodCyclicGeneratorImage Δ hTwo
          (ULift.up (ProfiniteFenchelGenerator.inertia k))) =
      Δ.signature.periods k

The lifted two-period cyclic generator image has the prescribed inertia-generator orders.

Show proof
noncomputable def twoPeriodCyclicSmoothQuotientData
    (Δ : ProfiniteFGroup.{u})
    (hCompact : Δ.signature.IsCompact)
    (hZero : Δ.signature.orbitGenus = 0)
    (hTwo : Δ.signature.numPeriods = 2) :
    ProfiniteSmoothQuotientData Δ 1 :=
  have hpos :
      0 < Δ.signature.periods (twoPeriodIndexZero Δ hTwo) :=
    lt_of_lt_of_le (by decide : 0 < 2)
      (Δ.signature.period_ge_two (twoPeriodIndexZero Δ hTwo))
  letI : NeZero (Δ.signature.periods (twoPeriodIndexZero Δ hTwo)) :=
    ⟨Nat.pos_iff_ne_zero.mp hpos⟩
  ProfiniteSmoothQuotientData.ofPresentationLiftToFiniteOfRelations
    Δ (twoPeriodCyclicGeneratorImage Δ hTwo)
    (twoPeriodCyclicGeneratorImage_lifted_total_relation
      Δ hCompact hZero hTwo)
    (twoPeriodCyclicGeneratorImage_lifted_period_relation
      Δ hCompact hZero hTwo)
    (profiniteDerivedSeries_one_eq_bot_of_commGroup
      (ULift.{u, 0}
        (Multiplicative
          (ZMod (Δ.signature.periods (twoPeriodIndexZero Δ hTwo))))))
    (twoPeriodCyclicGeneratorImage_lifted_inertia_order
      Δ hCompact hZero hTwo)

The smooth quotient data obtained from the two-period cyclic quotient.