OAI/GroupTheory/RightAngledArtin/ResidualFiniteness.lean

GitHub source file

56 declarations, 0 contain sorry, 0 declared as axioms

Finite permutation separation for free groups.

  1. theorem OAI.EilenbergGanea.finite_translation_extension line 21

    Source documentation

    Left translation, restricted wherever both endpoints lie in a finite set, extends to a permutation of that finite set.

    theorem finite_translation_extension (s : Finset A) (a : A) :
        ∃ σ : Equiv.Perm s, ∀ (x : s), a * x.val ∈ s → (σ x).val = a * x.val := by
    …
  2. def OAI.EilenbergGanea.finiteTranslation line 36
  3. theorem OAI.EilenbergGanea.finiteTranslation_apply line 39
  4. theorem OAI.EilenbergGanea.finiteTranslation_inv_apply line 43
  5. def OAI.EilenbergGanea.wordVertices line 57

    Source documentation

    The finite set of suffix vertices of a free word, including both endpoints.

    def wordVertices (w : List (X × Bool)) : Finset (FreeGroup X) := by
    …
  6. theorem OAI.EilenbergGanea.mk_mem_wordVertices line 61
  7. theorem OAI.EilenbergGanea.one_mem_wordVertices line 66
  8. theorem OAI.EilenbergGanea.wordVertices_tail_subset line 71
  9. theorem OAI.EilenbergGanea.mk_cons_sign line 77
  10. def OAI.EilenbergGanea.finiteWordAction line 82
  11. theorem OAI.EilenbergGanea.finiteWordAction_tracks line 88

    Source documentation

    Whenever a finite set includes all suffix vertices, the finite action follows that word exactly starting at the identity. No reduced-word choice is needed.

    theorem finiteWordAction_tracks (s : Finset (FreeGroup X)) (w : List (X × Bool))
        (hw : wordVertices w ⊆ s) (h1 : (1 : FreeGroup X) ∈ s) :
        (finiteWordAction s (FreeGroup.mk w) ⟨1, h1⟩).val = FreeGroup.mk w := by
    …

    Mentions: OAI.EilenbergGanea.wordVertices, OAI.EilenbergGanea.finiteWordAction

  12. theorem OAI.EilenbergGanea.freeGroup_residuallyFinite line 116

    Source documentation

    Free groups on arbitrary types are residually finite; this is proved using finite partial translations, not assumed as a literature result.

    theorem freeGroup_residuallyFinite (X : Type*) : Group.ResiduallyFinite (FreeGroup X) := by
    …
  13. def OAI.EilenbergGanea.functionShift line 137

    Source documentation

    The right translation action on a group-valued function space.

    def functionShift (D K : Type*) [Group D] [Group K] : D →* MulAut (D → K) where
    …
  14. def OAI.EilenbergGanea.orbitObservation line 148

    Source documentation

    All translates of a finite observation of the normal factor, simultaneously.

    def orbitObservation (φ : D →* MulAut N) (f : N →* K) : N →* (D → K) where
    …
  15. theorem OAI.EilenbergGanea.orbitObservation_equivariant line 153
  16. theorem OAI.EilenbergGanea.finite_semidirect_residuallyFinite line 161

    Source documentation

    A finite extension of a residually finite group is residually finite. Only the semidirect form needed by the source is used.

    theorem finite_semidirect_residuallyFinite [Finite D] [Group.ResiduallyFinite N]
        (φ : D →* MulAut N) : Group.ResiduallyFinite (N ⋊[φ] D) := by
    …
  17. def OAI.EilenbergGanea.freeAction line 197
  18. theorem OAI.EilenbergGanea.freeAction_of line 212
  19. theorem OAI.EilenbergGanea.freeAction_apply line 215
  20. theorem OAI.EilenbergGanea.freeAction_map_equivariant line 220
  21. theorem OAI.EilenbergGanea.finite_nonidentity_separation line 236

    Source documentation

    Finitely many nonidentity elements can be excluded by one finite quotient.

    theorem finite_nonidentity_separation (s : Finset A) :
        ∃ H : FiniteIndexNormalSubgroup A, ∀ a ∈ s, a ≠ 1 → a ∉ H := by
    …
  22. theorem OAI.EilenbergGanea.finite_set_quotient_injective line 258

    Source documentation

    The exact finite-set injectivity consequence of residual finiteness.

    theorem finite_set_quotient_injective (s : Finset A) :
        ∃ H : FiniteIndexNormalSubgroup A,
          Set.InjOn (QuotientGroup.mk' H.toSubgroup) (s : Set A) := by
    …
  23. def OAI.EilenbergGanea.cosetMap line 279

    Source documentation

    A homomorphism induces a map on left cosets of a subgroup, without a normality hypothesis on that subgroup.

    def cosetMap (q : A →* D) (C : Subgroup A) : A ⧸ C → D ⧸ C.map q :=
    …
  24. theorem OAI.EilenbergGanea.cosetMap_mk line 286
  25. theorem OAI.EilenbergGanea.cosetMap_equivariant line 289
  26. theorem OAI.EilenbergGanea.cosetMap_out line 294
  27. theorem OAI.EilenbergGanea.retract_coset_finite_separation line 300

    Source documentation

    A retract is separable on any finite set of cosets. The two observations (p, p ∘ r) implement the source's diagonal separation argument exactly.

    theorem retract_coset_finite_separation [Group.ResiduallyFinite A]
        (C : Subgroup A) (r : A →* A) (hr : ∀ a, r a ∈ C)
        (hfix : ∀ c ∈ C, r c = c) (s : Finset (A ⧸ C)) :
        ∃ (D : Type u) (_ : Group D) (_ : Finite D) (q : A →* D),
          Set.InjOn (cosetMap q C) (s : Set (A ⧸ C)) := by
    …

    Mentions: OAI.EilenbergGanea.cosetMap

  28. theorem OAI.EilenbergGanea.freeGroup_map_ne_one_of_injOn line 337

    Source documentation

    Only the finitely many letters of a word must survive a map of alphabets.

    theorem freeGroup_map_ne_one_of_injOn {X Y : Type*} [Nonempty X] [DecidableEq X]
        (f : X → Y) (w : FreeGroup X) (hw : w ≠ 1)
        (hf : Set.InjOn f {x | x ∈ w.toWord.map Prod.fst}) :
        FreeGroup.map f w ≠ 1 := by
    …
  29. theorem OAI.EilenbergGanea.retract_semidirect_residuallyFinite line 361

    Source documentation

    The special permutational semidirect product used to add a graph-group vertex is residually finite when the stabilizer is a retract.

    theorem retract_semidirect_residuallyFinite {A : Type u} [Group A]
        [Group.ResiduallyFinite A] (C : Subgroup A) (r : A →* A)
        (hr : ∀ a, r a ∈ C) (hfix : ∀ c ∈ C, r c = c) :
        Group.ResiduallyFinite (FreeGroup (A ⧸ C) ⋊[freeAction A (A ⧸ C)] A) := by
    …

    Mentions: OAI.EilenbergGanea.freeAction

  30. def OAI.EilenbergGanea.artinLift line 405

    Source documentation

    Universal property in commuting-generator form.

    def artinLift (f : V → K) (hf : ∀ v w, L.Adj v w → Commute (f v) (f w)) :
        ArtinGroup L →* K :=
    …
  31. theorem OAI.EilenbergGanea.artinLift_generator line 413
  32. def OAI.EilenbergGanea.artinMap line 419

    Source documentation

    Renaming vertices along a graph isomorphism gives the expected group map.

    def artinMap (M : SimpleGraph W) (f : V → W)
        (hf : ∀ v w, L.Adj v w → M.Adj (f v) (f w)) : ArtinGroup L →* ArtinGroup M :=
    …
  33. theorem OAI.EilenbergGanea.artinMap_generator line 424
  34. theorem OAI.EilenbergGanea.residuallyFinite_of_injective line 430

    Source documentation

    Residual finiteness pulls back along an injective homomorphism.

    theorem residuallyFinite_of_injective {G H : Type*} [Group G] [Group H]
        [Group.ResiduallyFinite H] (f : G →* H) (hf : Function.Injective f) :
        Group.ResiduallyFinite G := by
    …
  35. def OAI.EilenbergGanea.cosetConjugate line 448

    Source documentation

    The formal inverse to the graph-group splitting, on its free generators.

    def cosetConjugate (C : Subgroup A) (i : A →* P) (t : P)
        (ht : ∀ c ∈ C, Commute (i c) t) : A ⧸ C → P :=
    …
  36. theorem OAI.EilenbergGanea.cosetConjugate_mk line 460
  37. theorem OAI.EilenbergGanea.cosetConjugate_equivariant line 464
  38. def OAI.EilenbergGanea.cosetSemidirectLift line 472
  39. theorem OAI.EilenbergGanea.cosetSemidirectLift_inr line 481
  40. theorem OAI.EilenbergGanea.cosetSemidirectLift_base line 486
  41. abbrev OAI.EilenbergGanea.deletedGraph line 498
  42. abbrev OAI.EilenbergGanea.deletedGroup line 499
  43. def OAI.EilenbergGanea.deletedInclusion line 501
  44. def OAI.EilenbergGanea.linkSubgroup line 504
  45. def OAI.EilenbergGanea.linkRetraction line 509
  46. theorem OAI.EilenbergGanea.linkRetraction_generator line 519
  47. theorem OAI.EilenbergGanea.linkRetraction_mem line 524
  48. theorem OAI.EilenbergGanea.linkRetraction_fix line 535
  49. theorem OAI.EilenbergGanea.link_commutes_new line 545
  50. abbrev OAI.EilenbergGanea.optionSemidirect line 555
  51. def OAI.EilenbergGanea.optionGenerator line 558
  52. theorem OAI.EilenbergGanea.optionGenerator_commute line 562
  53. def OAI.EilenbergGanea.optionForward line 585
  54. def OAI.EilenbergGanea.optionBackward line 588
  55. theorem OAI.EilenbergGanea.optionForward_injective line 592
  56. theorem OAI.EilenbergGanea.artin_residuallyFinite line 604

    Source documentation

    Graph groups on finite graphs are residually finite, by deletion of a vertex and the retract-coset semidirect splitting.

    theorem artin_residuallyFinite (V : Type u) [Finite V] (L : SimpleGraph V) :
        Group.ResiduallyFinite (ArtinGroup L) := by
    …