FenchelNielsenZomorrodian.Discrete.Singerman.CyclicQuotientActions

7 Theorem | 3 Definition

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
Imported by

Declarations

noncomputable def cyclicQuotientRightRep
    {G : Type*} [Group G] {N : ℕ}
    (φ : G →* Multiplicative (ZMod N)) (t : G) :
    Quotient (QuotientGroup.rightRel φ.ker) → G :=
  Quotient.lift
    (fun g => t ^ (Multiplicative.toAdd (φ g)).val)
    (by
      intro a b hab
      have hab' : QuotientGroup.rightRel φ.ker a b := hab
      rw [QuotientGroup.rightRel_apply] at hab'
      have habφ : φ a = φ b := by
        have habφ' : φ b = φ a := by
          apply eq_of_mul_inv_eq_one
          simpa [map_mul, map_inv] using MonoidHom.mem_ker.mp hab'
        exact habφ'.symm
      have hval :
          (Multiplicative.toAdd (φ a)).val = (Multiplicative.toAdd (φ b)).val := by
        exact congrArg ZMod.val (congrArg Multiplicative.toAdd habφ)
      simp only [hval])

The cyclic quotient acts by the right-regular representation on the quotient index set.

@[simp 900] theorem cyclicQuotientRightRep_spec
    {G : Type*} [Group G] {N : ℕ} [NeZero N]
    (φ : G →* Multiplicative (ZMod N)) (t : G)
    (ht : φ t = Multiplicative.ofAdd (1 : ZMod N))
    (q : Quotient (QuotientGroup.rightRel φ.ker)) :
    Quotient.mk'' (cyclicQuotientRightRep φ t q) = q

The cyclic quotient right representation has the prescribed action on generators.

Show proof
theorem ker_isComplement_range_cyclicQuotientRightRep
    {G : Type*} [Group G] {N : ℕ} [NeZero N]
    (φ : G →* Multiplicative (ZMod N)) (t : G)
    (ht : φ t = Multiplicative.ofAdd (1 : ZMod N)) :
    Subgroup.IsComplement (φ.ker : Set G) (Set.range (cyclicQuotientRightRep φ t))

The cyclic right representative set complements the kernel.

Show proof
theorem one_mem_range_cyclicQuotientRightRep
    {G : Type*} [Group G] {N : ℕ}
    (φ : G →* Multiplicative (ZMod N)) (t : G) :
    (1 : G) ∈ Set.range (cyclicQuotientRightRep φ t)

The chosen right-representative set for the cyclic quotient contains the identity element.

Show proof
theorem generatorPower_mem_range_cyclicQuotientRightRep
    {X : Type*} {N : ℕ} [NeZero N]
    (φ : FreeGroup X →* Multiplicative (ZMod N)) (x : X)
    (hx : φ (FreeGroup.of x) = Multiplicative.ofAdd (1 : ZMod N))
    {m : ℕ} (hm : m < N) :
    (FreeGroup.of x) ^ m ∈ Set.range (cyclicQuotientRightRep φ (FreeGroup.of x))

Powers below the modulus of the distinguished free generator lie in the representative set.

Show proof
theorem mem_range_cyclicQuotientRightRep_iff_generatorPower
    {X : Type*} {N : ℕ} [NeZero N]
    (φ : FreeGroup X →* Multiplicative (ZMod N)) {x : X}
    (hx : φ (FreeGroup.of x) = Multiplicative.ofAdd (1 : ZMod N))
    {t : FreeGroup X} :
    t ∈ Set.range (cyclicQuotientRightRep φ (FreeGroup.of x)) ↔
      ∃ k : Fin N, t = (FreeGroup.of x) ^ k.val

Membership in the range of the cyclic quotient right representative is equivalent to being a bounded power of the distinguished generator.

Show proof
theorem cyclicQuotientRightRep_isRightSchreierTransversal_of_freeGroupGenerator
    {X : Type*} [DecidableEq X] {N : ℕ} [NeZero N]
    (φ : FreeGroup X →* Multiplicative (ZMod N)) (x : X)
    (hx : φ (FreeGroup.of x) = Multiplicative.ofAdd (1 : ZMod N)) :
    let T

The chosen Schreier representative is compatible with the quotient class and the induced right-coset action.

Show proof
noncomputable def freeGroupKernelSchreierBasisEquivOfCyclicQuotientGenerator
    {X : Type*} [DecidableEq X] {N : ℕ} [NeZero N]
    (φ : FreeGroup X →* Multiplicative (ZMod N)) (x : X)
    (hx : φ (FreeGroup.of x) = Multiplicative.ofAdd (1 : ZMod N)) :
    let T := Set.range (cyclicQuotientRightRep φ (FreeGroup.of x))
    let hT : IsRightSchreierTransversal φ.ker T :=
      cyclicQuotientRightRep_isRightSchreierTransversal_of_freeGroupGenerator φ x hx
    FreeGroup ↥(schreierGeneratorSet hT) ≃* φ.ker := by
  let T := Set.range (cyclicQuotientRightRep φ (FreeGroup.of x))
  let hT : IsRightSchreierTransversal φ.ker T :=
    cyclicQuotientRightRep_isRightSchreierTransversal_of_freeGroupGenerator φ x hx
  exact schreierGeneratorInverseBasisEquiv (X := X) hT

For a cyclic quotient generated by \(x\), the Schreier generators give a multiplicative equivalence from the free group on the Schreier generator set to the kernel.

@[simp 900] theorem freeGroupKernelSchreierBasisEquivOfCyclicQuotientGenerator_of
    {X : Type*} [DecidableEq X] {N : ℕ} [NeZero N]
    (φ : FreeGroup X →* Multiplicative (ZMod N)) (x : X)
    (hx : φ (FreeGroup.of x) = Multiplicative.ofAdd (1 : ZMod N)) :
    let T

On each Schreier generator, the cyclic-quotient Schreier-basis equivalence evaluates to the inverse of the corresponding kernel generator.

Show proof
noncomputable def presentedFreeKernelCyclicSchreierRelatorQuotientEquivPresentedKernel
    {X : Type*} [DecidableEq X] {N : ℕ} [NeZero N] {rels : Set (FreeGroup X)}
    {f : X → Multiplicative (ZMod N)}
    (hrels : ∀ r ∈ rels, FreeGroup.lift f r = 1)
    (x : X)
    (hx : FreeGroup.lift f (FreeGroup.of x) = Multiplicative.ofAdd (1 : ZMod N)) :
    let φ := FreeGroup.lift f
    let T := Set.range (cyclicQuotientRightRep φ (FreeGroup.of x))
    let hT : IsRightSchreierTransversal φ.ker T :=
      cyclicQuotientRightRep_isRightSchreierTransversal_of_freeGroupGenerator φ x hx
    let e : FreeGroup ↥(schreierGeneratorSet hT) ≃* φ.ker :=
      freeGroupKernelSchreierBasisEquivOfCyclicQuotientGenerator φ x hx
    FreeGroup ↥(schreierGeneratorSet hT) ⧸
        Subgroup.normalClosure
          (ReidemeisterSchreier.Discrete.Presentations.freeGroupPullbackRelatorSet e
            (ReidemeisterSchreier.Discrete.Presentations.freeKernelTransversalRelatorSet (f := f) (rels := rels) T)) ≃*
      (PresentedGroup.toGroup (rels := rels) (f := f) hrels).ker := by
  classical
  let φ : FreeGroup X →* Multiplicative (ZMod N) := FreeGroup.lift f
  let T : Set (FreeGroup X) := Set.range (cyclicQuotientRightRep φ (FreeGroup.of x))
  let hT : IsRightSchreierTransversal φ.ker T :=
    cyclicQuotientRightRep_isRightSchreierTransversal_of_freeGroupGenerator φ x hx
  let e : FreeGroup ↥(schreierGeneratorSet hT) ≃* φ.ker :=
    freeGroupKernelSchreierBasisEquivOfCyclicQuotientGenerator φ x hx
  simpa [φ, T, hT, e] using
    ReidemeisterSchreier.Discrete.Presentations.presentedFreeKernelSchreierRelatorQuotientEquivPresentedKernel hrels hT.1 e

The relator quotient built from the cyclic Schreier kernel presentation is equivalent to the presented kernel.