Documentation

Mathlib.GroupTheory.PresentedGroup

Defining a group given by generators and relations #

Given a subset rels of relations of the free group on a type α, this file constructs the group given by generators x : α and relations r ∈ rels.

Main definitions #

Tags #

generators, relations, group presentations

def PresentedGroup {α : Type u_1} (rels : Set (FreeGroup α)) :
Type u_1

Given a set of relations, rels, over a type α, PresentedGroup constructs the group with generators x : α and relations rels as a quotient of FreeGroup α.

Equations
Instances For
    @[implicit_reducible]
    instance instGroupPresentedGroup {α : Type u_1} (rels : Set (FreeGroup α)) :
    Equations
    • One or more equations did not get rendered due to their size.
    def PresentedGroup.mk {α : Type u_1} (rels : Set (FreeGroup α)) :

    The canonical map from the free group on α to a presented group with generators x : α, where x is mapped to its equivalence class under the given set of relations rels

    Equations
    Instances For
      theorem PresentedGroup.mk_surjective {α : Type u_1} (rels : Set (FreeGroup α)) :
      def PresentedGroup.of {α : Type u_1} {rels : Set (FreeGroup α)} (x : α) :

      of is the canonical map from α to a presented group with generators x : α. The term x is mapped to the equivalence class of the image of x in FreeGroup α.

      Equations
      Instances For
        def PresentedGroup.map {α : Type u_1} {β : Type u_2} (f : FreeGroup α →* FreeGroup β) {s : Set (FreeGroup α)} {t : Set (FreeGroup β)} (hst : Set.MapsTo (⇑f) s t) :

        FreeGroup α →* FreeGroup β induces a homomorphism PresentedGroup s →* PresentedGroup t if the image of s is contained in t.

        Equations
        Instances For
          theorem PresentedGroup.mk_eq_one_iff {α : Type u_1} {rels : Set (FreeGroup α)} {x : FreeGroup α} :
          (mk rels) x = 1 x Subgroup.normalClosure rels
          theorem PresentedGroup.one_of_mem {α : Type u_1} {rels : Set (FreeGroup α)} {x : FreeGroup α} (hx : x rels) :
          (mk rels) x = 1
          theorem PresentedGroup.mk_eq_mk_of_mul_inv_mem {α : Type u_1} {rels : Set (FreeGroup α)} {x y : FreeGroup α} (hx : x * y⁻¹ rels) :
          (mk rels) x = (mk rels) y
          theorem PresentedGroup.mk_eq_mk_of_inv_mul_mem {α : Type u_1} {rels : Set (FreeGroup α)} {x y : FreeGroup α} (hx : x⁻¹ * y rels) :
          (mk rels) x = (mk rels) y
          @[simp]

          The generators of a presented group generate the presented group. That is, the subgroup closure of the set of generators equals .

          theorem PresentedGroup.induction_on {α : Type u_1} {rels : Set (FreeGroup α)} {C : PresentedGroup relsProp} (x : PresentedGroup rels) (H : ∀ (z : FreeGroup α), C ((mk rels) z)) :
          C x
          theorem PresentedGroup.generated_by {α : Type u_1} (rels : Set (FreeGroup α)) (H : Subgroup (PresentedGroup rels)) (h : ∀ (j : α), of j H) (x : PresentedGroup rels) :
          x H
          theorem PresentedGroup.closure_rels_subset_ker {α : Type u_1} {G : Type u_3} [Group G] {f : αG} {rels : Set (FreeGroup α)} (h : rrels, (FreeGroup.lift f) r = 1) :
          theorem PresentedGroup.to_group_eq_one_of_mem_closure {α : Type u_1} {G : Type u_3} [Group G] {f : αG} {rels : Set (FreeGroup α)} (h : rrels, (FreeGroup.lift f) r = 1) (x : FreeGroup α) :
          def PresentedGroup.toGroup {α : Type u_1} {G : Type u_3} [Group G] {f : αG} {rels : Set (FreeGroup α)} (h : rrels, (FreeGroup.lift f) r = 1) :

          The extension of a map f : α → G that satisfies the given relations to a group homomorphism from PresentedGroup rels → G.

          Equations
          Instances For
            @[simp]
            theorem PresentedGroup.toGroup.of {α : Type u_1} {G : Type u_3} [Group G] {f : αG} {rels : Set (FreeGroup α)} (h : rrels, (FreeGroup.lift f) r = 1) {x : α} :
            theorem PresentedGroup.toGroup.unique {α : Type u_1} {G : Type u_3} [Group G] {f : αG} {rels : Set (FreeGroup α)} (h : rrels, (FreeGroup.lift f) r = 1) (g : PresentedGroup rels →* G) (hg : ∀ (x : α), g (PresentedGroup.of x) = f x) {x : PresentedGroup rels} :
            g x = (toGroup h) x
            theorem PresentedGroup.ext {α : Type u_1} {G : Type u_3} [Group G] {rels : Set (FreeGroup α)} {φ ψ : PresentedGroup rels →* G} (hx : ∀ (x : α), φ (of x) = ψ (of x)) :
            φ = ψ
            theorem PresentedGroup.ext_iff {α : Type u_1} {G : Type u_3} [Group G] {rels : Set (FreeGroup α)} {φ ψ : PresentedGroup rels →* G} :
            φ = ψ ∀ (x : α), φ (of x) = ψ (of x)
            def PresentedGroup.equivPresentedGroup {α : Type u_1} {β : Type u_2} (rels : Set (FreeGroup α)) (e : α β) :

            Presented groups of isomorphic types are isomorphic.

            Equations
            Instances For
              theorem PresentedGroup.equivPresentedGroup_apply_of {α : Type u_1} {β : Type u_2} (x : α) (rels : Set (FreeGroup α)) (e : α β) :
              (equivPresentedGroup rels e) (of x) = of (e x)
              theorem PresentedGroup.equivPresentedGroup_symm_apply_of {α : Type u_1} {β : Type u_2} (x : β) (rels : Set (FreeGroup α)) (e : α β) :
              (equivPresentedGroup rels e).symm (of x) = of (e.symm x)
              @[implicit_reducible]
              instance PresentedGroup.instInhabited {α : Type u_1} (rels : Set (FreeGroup α)) :
              Equations
              def PresentedGroup.toCoprod {α : Type u_1} {β : Type u_2} (rels₁ : Set (FreeGroup α)) (rels₂ : Set (FreeGroup β)) :
              α βMonoid.Coprod (PresentedGroup rels₁) (PresentedGroup rels₂)

              The canonical inclusion map from the disjoint union of types to the free product of the relations

              Equations
              Instances For
                @[simp]
                theorem PresentedGroup.lift_toCoprod_inl_eq_inl_mk {α : Type u_1} {β : Type u_2} (rels₁ : Set (FreeGroup α)) (rels₂ : Set (FreeGroup β)) :
                @[simp]
                theorem PresentedGroup.lift_toCoprod_inr_eq_inr_mk {α : Type u_1} {β : Type u_2} (rels₁ : Set (FreeGroup α)) (rels₂ : Set (FreeGroup β)) :
                theorem PresentedGroup.lift_toCoprod_eq_one {α : Type u_1} {β : Type u_2} (rels₁ : Set (FreeGroup α)) (rels₂ : Set (FreeGroup β)) (r : FreeGroup (α β)) (hr : r (FreeGroup.map Sum.inl) '' rels₁ (FreeGroup.map Sum.inr) '' rels₂) :
                (FreeGroup.lift (toCoprod rels₁ rels₂)) r = 1
                def PresentedGroup.coprodPresentations {α : Type u_1} {β : Type u_2} (rels₁ : Set (FreeGroup α)) (rels₂ : Set (FreeGroup β)) :

                The free product (Coproduct) of presentations is isomorphic to the presentation of the union over the FreeGroup (α ⊕ β)

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For