ReidemeisterSchreier.Profinite.OpenSubgroups.RightQuotient

6 Theorem | 2 Definition | 1 Abbreviation | 3 Instance

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

abbrev OpenSubgroupRightQuotient (H : OpenSubgroup F) :=
  _root_.ReidemeisterSchreier.RightQuotient (H : Subgroup F)

The right-coset space \(F/H\), encoded via right quotients.

def openSubgroupRightCoset (H : OpenSubgroup F) (g : F) : OpenSubgroupRightQuotient H :=
  _root_.ReidemeisterSchreier.rightCoset (H : Subgroup F) g

The right coset of an element modulo an open subgroup.

theorem openSubgroupRightCoset_eq_basepoint_iff_mem
    {H : OpenSubgroup F} {g : F} :
    openSubgroupRightCoset H g = openSubgroupRightCoset H (1 : F) ↔
      g ∈ (H : Subgroup F)

A right coset is the base coset exactly when its representative lies in the subgroup.

Show proof
@[simp] theorem openSubgroupRightCoset_smul
    (H : OpenSubgroup F) (g a : F) :
    letI : MulAction F (OpenSubgroupRightQuotient H)

The open-subgroup right-coset action sends the coset of \(a\) by \(g\) to the coset of \(a g^{-1}\).

Show proof
@[simp] theorem openSubgroupRightCoset_inv_smul
    (H : OpenSubgroup F) (g a : F) :
    letI : MulAction F (OpenSubgroupRightQuotient H)

The open-subgroup right-coset action sends the coset of \(a\) by \(g^{-1}\) to the coset of \(a g\).

Show proof
instance finite_openSubgroupRightQuotient (H : OpenSubgroup F) [CompactSpace F] :
    Finite (OpenSubgroupRightQuotient H) := by
  let e :=
    QuotientGroup.quotientRightRelEquivQuotientLeftRel (H : Subgroup F)
  exact Finite.of_equiv (F ⧸ (H : Subgroup F)) e.symm

Right cosets of an open subgroup are finite because they are equivalent to the left quotient.

noncomputable instance fintype_openSubgroupRightQuotient (H : OpenSubgroup F) [CompactSpace F] :
    Fintype (OpenSubgroupRightQuotient H) :=
  Fintype.ofFinite (OpenSubgroupRightQuotient H)

Right cosets of an open subgroup inherit a Fintype from compactness.

instance discreteTopology_openSubgroupRightQuotient (H : OpenSubgroup F) :
    DiscreteTopology (OpenSubgroupRightQuotient H) := by
  classical
  refine discreteTopology_iff_isOpen_singleton.2 ?_
  intro q
  rw [← isQuotientMap_quotient_mk'.isOpen_preimage]
  let qmk : F → OpenSubgroupRightQuotient H :=
    @Quotient.mk' F (QuotientGroup.rightRel (H : Subgroup F))
  let a : F := q.out
  have hpre :
      qmk ⁻¹' ({q} : Set (OpenSubgroupRightQuotient H)) =
        (fun x : F => a * x⁻¹) ⁻¹' ((H : Subgroup F) : Set F) := by
    ext x
    constructor
    · intro hx
      have hEq : (Quotient.mk'' x : OpenSubgroupRightQuotient H) = Quotient.mk'' a := by
        calc
          (Quotient.mk'' x : OpenSubgroupRightQuotient H) = q := hx
          _ = Quotient.mk'' a := (Quotient.out_eq' q).symm
      have hrel : QuotientGroup.rightRel (H : Subgroup F) x a := Quotient.eq''.mp hEq
      simpa [a] using (QuotientGroup.rightRel_apply.mp hrel)
    · intro hx
      have hrel : QuotientGroup.rightRel (H : Subgroup F) x a := by
        rw [QuotientGroup.rightRel_apply]
        simpa [a] using hx
      change (Quotient.mk'' x : OpenSubgroupRightQuotient H) = q
      calc
        (Quotient.mk'' x : OpenSubgroupRightQuotient H) = Quotient.mk'' a :=
          Quotient.eq''.mpr hrel
        _ = q := by simp only [Quotient.out_eq, a]
  have hpreOpen : IsOpen (qmk ⁻¹' ({q} : Set (OpenSubgroupRightQuotient H))) := by
    rw [hpre]
    exact H.isOpen'.preimage (continuous_const.mul continuous_inv)
  simpa [qmk] using hpreOpen

The quotient topology on right cosets of an open subgroup is discrete.

noncomputable def openSubgroupRightCosetSection
    (H : OpenSubgroup F) : OpenSubgroupRightQuotient H → F := by
  classical
  intro q
  exact
    if hq : q = openSubgroupRightCoset H (1 : F) then
      1
    else
      q.out

A normalized section of the right-coset projection, sending the trivial coset to \(1\).

@[simp] theorem openSubgroupRightCosetSection_spec
    (H : OpenSubgroup F) (q : OpenSubgroupRightQuotient H) :
    Quotient.mk'' (openSubgroupRightCosetSection (F := F) H q) = q

The chosen section of the open-subgroup right quotient projects back to the given right coset.

Show proof
@[simp] theorem openSubgroupRightCosetSection_one
    (H : OpenSubgroup F) :
    openSubgroupRightCosetSection (F := F) H (openSubgroupRightCoset H (1 : F)) = 1

The chosen section of the open-subgroup right quotient sends the identity coset to the identity representative.

Show proof
theorem continuous_openSubgroupRightCosetSection
    (H : OpenSubgroup F) :
    Continuous (openSubgroupRightCosetSection (F := F) H)

The normalized right-coset section is continuous because the right quotient is discrete. It is a continuity claim, checked through the topology generated by finite-stage projections.

Show proof