Documentation

Mathlib.GroupTheory.ResiduallyFinite

Residually Finite Groups #

In this file we define residually finite groups and prove some basic properties.

Main definitions #

An additive group G is residually finite if the intersection of all finite index normal additive subgroups is trivial.

Instances
    class Group.ResiduallyFinite (G : Type u_1) [Group G] :

    A group G is residually finite if the intersection of all finite index normal subgroups is trivial.

    Instances
      theorem Group.exists_finiteIndexNormalSubgroup_notMem {G : Type u_1} [Group G] [ResiduallyFinite G] (g : G) (hg : g 1) :
      ∃ (H : FiniteIndexNormalSubgroup G), gH
      theorem Group.residuallyFinite_iff_forall_finiteIndex {G : Type u_1} [Group G] :
      ResiduallyFinite G ∀ (g : G), (∀ (H : Subgroup G) [H.FiniteIndex], g H)g = 1
      theorem AddGroup.residuallyFinite_iff_forall_finiteIndex {G : Type u_1} [AddGroup G] :
      ResiduallyFinite G ∀ (g : G), (∀ (H : AddSubgroup G) [H.FiniteIndex], g H)g = 0
      theorem Group.residuallyFinite_iff_exists_finiteIndex {G : Type u_1} [Group G] :
      ResiduallyFinite G ∀ (g : G), g 1∃ (H : Subgroup G), H.FiniteIndex gH
      theorem AddGroup.residuallyFinite_iff_exists_finiteIndex {G : Type u_1} [AddGroup G] :
      ResiduallyFinite G ∀ (g : G), g 0∃ (H : AddSubgroup G), H.FiniteIndex gH
      theorem Group.exists_finiteIndexNormalSubgroup_of_residuallyFinite {G : Type u_1} [Group G] [ResiduallyFinite G] (g h : G) (hgh : g h) :
      ∃ (H : FiniteIndexNormalSubgroup G), g h

      If G is residually finite, for every pair of distinct elements g, h there exists a finite index normal subgroup H such that g and h differ in the quotient G ⧸ H.

      theorem Group.residuallyFinite_of_forall_exists_finite_monoidHom {G : Type u_1} [Group G] (h : ∀ (g : G), g 1∃ (H : Type u) (x : Group H) (_ : Finite H) (f : G →* H), f g 1) :

      G is residually finite if for every element g not equal to 1 there exists a group homomorphism f to a finite group H such that f g ≠ 1.

      theorem AddGroup.residuallyFinite_of_forall_exists_finite_addMonoidHom {G : Type u_1} [AddGroup G] (h : ∀ (g : G), g 0∃ (H : Type u) (x : AddGroup H) (_ : Finite H) (f : G →+ H), f g 0) :