Documentation

Mathlib.Algebra.Category.Grp.Basic

Category instances for Group, AddGroup, CommGroup, and AddCommGroup. #

We introduce the bundled categories:

along with the relevant forgetful functors between them, and to the bundled monoid categories.

structure AddGrpCat :
Type (u + 1)

The category of additive groups and group morphisms.

Instances For
    structure GrpCat :
    Type (u + 1)

    The category of groups and group morphisms.

    • carrier : Type u

      The underlying type.

    • str : Group self
    Instances For
      @[reducible, inline]
      abbrev GrpCat.of (M : Type u) [Group M] :

      Construct a bundled GrpCat from the underlying type and typeclass.

      Equations
      Instances For
        @[reducible, inline]
        abbrev AddGrpCat.of (M : Type u) [AddGroup M] :

        Construct a bundled AddGrpCat from the underlying type and typeclass.

        Equations
        Instances For
          structure AddGrpCat.Hom (A B : AddGrpCat) :

          The type of morphisms in AddGrpCat R.

          • hom' : A →+ B

            The underlying monoid homomorphism.

          Instances For
            theorem AddGrpCat.Hom.ext_iff {A B : AddGrpCat} {x y : A.Hom B} :
            x = y x.hom' = y.hom'
            theorem AddGrpCat.Hom.ext {A B : AddGrpCat} {x y : A.Hom B} (hom' : x.hom' = y.hom') :
            x = y
            structure GrpCat.Hom (A B : GrpCat) :

            The type of morphisms in GrpCat R.

            • hom' : A →* B

              The underlying monoid homomorphism.

            Instances For
              theorem GrpCat.Hom.ext_iff {A B : GrpCat} {x y : A.Hom B} :
              x = y x.hom' = y.hom'
              theorem GrpCat.Hom.ext {A B : GrpCat} {x y : A.Hom B} (hom' : x.hom' = y.hom') :
              x = y
              Equations
              • One or more equations did not get rendered due to their size.
              Equations
              • One or more equations did not get rendered due to their size.
              Equations
              • One or more equations did not get rendered due to their size.
              Equations
              • One or more equations did not get rendered due to their size.
              @[reducible, inline]
              abbrev GrpCat.Hom.hom {X Y : GrpCat} (f : X.Hom Y) :
              X →* Y

              Turn a morphism in GrpCat back into a MonoidHom.

              Equations
              Instances For
                @[reducible, inline]
                abbrev AddGrpCat.Hom.hom {X Y : AddGrpCat} (f : X.Hom Y) :
                X →+ Y

                Turn a morphism in AddGrpCat back into an AddMonoidHom.

                Equations
                Instances For
                  @[reducible, inline]
                  abbrev GrpCat.ofHom {X Y : Type u} [Group X] [Group Y] (f : X →* Y) :
                  of X of Y

                  Typecheck a MonoidHom as a morphism in GrpCat.

                  Equations
                  Instances For
                    @[reducible, inline]
                    abbrev AddGrpCat.ofHom {X Y : Type u} [AddGroup X] [AddGroup Y] (f : X →+ Y) :
                    of X of Y

                    Typecheck an AddMonoidHom as a morphism in AddGrpCat.

                    Equations
                    Instances For
                      def GrpCat.Hom.Simps.hom (X Y : GrpCat) (f : X.Hom Y) :
                      X →* Y

                      Use the ConcreteCategory.hom projection for @[simps] lemmas.

                      Equations
                      Instances For

                        The results below duplicate the ConcreteCategory simp lemmas, but we can keep them for dsimp.

                        theorem GrpCat.ext {X Y : GrpCat} {f g : X Y} (w : ∀ (x : X), (CategoryTheory.ConcreteCategory.hom f) x = (CategoryTheory.ConcreteCategory.hom g) x) :
                        f = g
                        theorem AddGrpCat.ext {X Y : AddGrpCat} {f g : X Y} (w : ∀ (x : X), (CategoryTheory.ConcreteCategory.hom f) x = (CategoryTheory.ConcreteCategory.hom g) x) :
                        f = g
                        theorem GrpCat.coe_of (R : Type u) [Group R] :
                        (of R) = R
                        theorem AddGrpCat.coe_of (R : Type u) [AddGroup R] :
                        (of R) = R
                        @[simp]
                        theorem GrpCat.hom_comp {X Y T : GrpCat} (f : X Y) (g : Y T) :
                        @[simp]
                        theorem AddGrpCat.hom_comp {X Y T : AddGrpCat} (f : X Y) (g : Y T) :
                        theorem GrpCat.hom_ext {X Y : GrpCat} {f g : X Y} (hf : Hom.hom f = Hom.hom g) :
                        f = g
                        theorem AddGrpCat.hom_ext {X Y : AddGrpCat} {f g : X Y} (hf : Hom.hom f = Hom.hom g) :
                        f = g
                        theorem GrpCat.hom_ext_iff {X Y : GrpCat} {f g : X Y} :
                        theorem AddGrpCat.hom_ext_iff {X Y : AddGrpCat} {f g : X Y} :
                        @[simp]
                        theorem GrpCat.hom_ofHom {R S : Type u} [Group R] [Group S] (f : R →* S) :
                        @[simp]
                        theorem AddGrpCat.hom_ofHom {R S : Type u} [AddGroup R] [AddGroup S] (f : R →+ S) :
                        @[simp]
                        theorem GrpCat.ofHom_hom {X Y : GrpCat} (f : X Y) :
                        @[simp]
                        theorem AddGrpCat.ofHom_hom {X Y : AddGrpCat} (f : X Y) :
                        @[simp]
                        theorem GrpCat.ofHom_comp {X Y Z : Type u} [Group X] [Group Y] [Group Z] (f : X →* Y) (g : Y →* Z) :
                        @[simp]
                        theorem AddGrpCat.ofHom_comp {X Y Z : Type u} [AddGroup X] [AddGroup Y] [AddGroup Z] (f : X →+ Y) (g : Y →+ Z) :
                        theorem GrpCat.ofHom_apply {X Y : Type u} [Group X] [Group Y] (f : X →* Y) (x : X) :
                        theorem AddGrpCat.ofHom_apply {X Y : Type u} [AddGroup X] [AddGroup Y] (f : X →+ Y) (x : X) :
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Equations
                        • One or more equations did not get rendered due to their size.
                        instance GrpCat.instOneHom (G H : GrpCat) :
                        One (G H)
                        Equations
                        instance AddGrpCat.instZeroHom (G H : AddGrpCat) :
                        Zero (G H)
                        Equations
                        @[simp]
                        theorem GrpCat.one_apply (G H : GrpCat) (g : G) :
                        theorem GrpCat.ofHom_injective {X Y : Type u} [Group X] [Group Y] :
                        Function.Injective fun (f : X →* Y) => ofHom f
                        theorem AddGrpCat.ofHom_injective {X Y : Type u} [AddGroup X] [AddGroup Y] :
                        Function.Injective fun (f : X →+ Y) => ofHom f

                        The forgetful functor from groups to monoids is fully faithful.

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

                          The forgetful functor from additive groups to additive monoids is fully faithful.

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

                            Universe lift functor for groups.

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

                              Universe lift functor for additive groups.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                structure AddCommGrpCat :
                                Type (u + 1)

                                The category of additive groups and group morphisms.

                                Instances For
                                  structure CommGrpCat :
                                  Type (u + 1)

                                  The category of groups and group morphisms.

                                  Instances For
                                    @[reducible, inline]
                                    abbrev Ab :
                                    Type (u_1 + 1)

                                    Ab is an abbreviation for AddCommGroup, for the sake of mathematicians' sanity.

                                    Equations
                                    Instances For
                                      @[reducible, inline]

                                      Construct a bundled CommGrpCat from the underlying type and typeclass.

                                      Equations
                                      Instances For
                                        @[reducible, inline]

                                        Construct a bundled AddCommGrpCat from the underlying type and typeclass.

                                        Equations
                                        Instances For
                                          structure AddCommGrpCat.Hom (A B : AddCommGrpCat) :

                                          The type of morphisms in AddCommGrpCat R.

                                          • hom' : A →+ B

                                            The underlying monoid homomorphism.

                                          Instances For
                                            theorem AddCommGrpCat.Hom.ext {A B : AddCommGrpCat} {x y : A.Hom B} (hom' : x.hom' = y.hom') :
                                            x = y
                                            theorem AddCommGrpCat.Hom.ext_iff {A B : AddCommGrpCat} {x y : A.Hom B} :
                                            x = y x.hom' = y.hom'
                                            structure CommGrpCat.Hom (A B : CommGrpCat) :

                                            The type of morphisms in CommGrpCat R.

                                            • hom' : A →* B

                                              The underlying monoid homomorphism.

                                            Instances For
                                              theorem CommGrpCat.Hom.ext {A B : CommGrpCat} {x y : A.Hom B} (hom' : x.hom' = y.hom') :
                                              x = y
                                              theorem CommGrpCat.Hom.ext_iff {A B : CommGrpCat} {x y : A.Hom B} :
                                              x = y x.hom' = y.hom'
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              @[reducible, inline]
                                              abbrev CommGrpCat.Hom.hom {X Y : CommGrpCat} (f : X.Hom Y) :
                                              X →* Y

                                              Turn a morphism in CommGrpCat back into a MonoidHom.

                                              Equations
                                              Instances For
                                                @[reducible, inline]
                                                abbrev AddCommGrpCat.Hom.hom {X Y : AddCommGrpCat} (f : X.Hom Y) :
                                                X →+ Y

                                                Turn a morphism in AddCommGrpCat back into an AddMonoidHom.

                                                Equations
                                                Instances For
                                                  @[reducible, inline]
                                                  abbrev CommGrpCat.ofHom {X Y : Type u} [CommGroup X] [CommGroup Y] (f : X →* Y) :
                                                  of X of Y

                                                  Typecheck a MonoidHom as a morphism in CommGrpCat.

                                                  Equations
                                                  Instances For
                                                    @[reducible, inline]
                                                    abbrev AddCommGrpCat.ofHom {X Y : Type u} [AddCommGroup X] [AddCommGroup Y] (f : X →+ Y) :
                                                    of X of Y

                                                    Typecheck an AddMonoidHom as a morphism in AddCommGrpCat.

                                                    Equations
                                                    Instances For
                                                      def CommGrpCat.Hom.Simps.hom (X Y : CommGrpCat) (f : X.Hom Y) :
                                                      X →* Y

                                                      Use the ConcreteCategory.hom projection for @[simps] lemmas.

                                                      Equations
                                                      Instances For
                                                        def AddCommGrpCat.Hom.Simps.hom (X Y : AddCommGrpCat) (f : X.Hom Y) :
                                                        X →+ Y

                                                        Use the ConcreteCategory.hom projection for @[simps] lemmas.

                                                        Equations
                                                        Instances For

                                                          The results below duplicate the ConcreteCategory simp lemmas, but we can keep them for dsimp.

                                                          theorem CommGrpCat.ext {X Y : CommGrpCat} {f g : X Y} (w : ∀ (x : X), (CategoryTheory.ConcreteCategory.hom f) x = (CategoryTheory.ConcreteCategory.hom g) x) :
                                                          f = g
                                                          theorem CommGrpCat.coe_of (R : Type u) [CommGroup R] :
                                                          (of R) = R
                                                          theorem AddCommGrpCat.coe_of (R : Type u) [AddCommGroup R] :
                                                          (of R) = R
                                                          @[simp]
                                                          theorem CommGrpCat.hom_ext {X Y : CommGrpCat} {f g : X Y} (hf : Hom.hom f = Hom.hom g) :
                                                          f = g
                                                          theorem AddCommGrpCat.hom_ext {X Y : AddCommGrpCat} {f g : X Y} (hf : Hom.hom f = Hom.hom g) :
                                                          f = g
                                                          theorem AddCommGrpCat.hom_ext_iff {X Y : AddCommGrpCat} {f g : X Y} :
                                                          theorem CommGrpCat.hom_ext_iff {X Y : CommGrpCat} {f g : X Y} :
                                                          @[simp]
                                                          theorem CommGrpCat.hom_ofHom {X Y : Type u} [CommGroup X] [CommGroup Y] (f : X →* Y) :
                                                          @[simp]
                                                          theorem AddCommGrpCat.hom_ofHom {X Y : Type u} [AddCommGroup X] [AddCommGroup Y] (f : X →+ Y) :
                                                          @[simp]
                                                          theorem CommGrpCat.ofHom_hom {X Y : CommGrpCat} (f : X Y) :
                                                          @[simp]
                                                          theorem AddCommGrpCat.ofHom_hom {X Y : AddCommGrpCat} (f : X Y) :
                                                          @[simp]
                                                          theorem CommGrpCat.ofHom_comp {X Y Z : Type u} [CommGroup X] [CommGroup Y] [CommGroup Z] (f : X →* Y) (g : Y →* Z) :
                                                          theorem CommGrpCat.ofHom_apply {X Y : Type u} [CommGroup X] [CommGroup Y] (f : X →* Y) (x : X) :
                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Equations
                                                          • One or more equations did not get rendered due to their size.

                                                          The forgetful functor from commutative groups to groups is fully faithful.

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

                                                            The forgetful functor from additive commutative groups to additive groups is fully faithful.

                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            Instances For
                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              instance CommGrpCat.instOneHom (G H : CommGrpCat) :
                                                              One (G H)
                                                              Equations

                                                              Universe lift functor for commutative groups.

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

                                                                Universe lift functor for additive commutative groups.

                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                Instances For
                                                                  def AddCommGrpCat.asHom {G : AddCommGrpCat} (g : G) :

                                                                  Any element of an abelian group gives a unique morphism from sending 1 to that element.

                                                                  Equations
                                                                  Instances For
                                                                    @[simp]
                                                                    theorem AddCommGrpCat.asHom_hom_apply {G : AddCommGrpCat} (g : G) (n : ) :
                                                                    (Hom.hom (asHom g)) n = n g
                                                                    def MulEquiv.toGrpIso {X Y : GrpCat} (e : X ≃* Y) :
                                                                    X Y

                                                                    Build an isomorphism in the category GrpCat from a MulEquiv between Groups.

                                                                    Equations
                                                                    Instances For
                                                                      def AddEquiv.toAddGrpIso {X Y : AddGrpCat} (e : X ≃+ Y) :
                                                                      X Y

                                                                      Build an isomorphism in the category AddGroup from an AddEquiv between AddGroups.

                                                                      Equations
                                                                      Instances For
                                                                        @[simp]
                                                                        @[simp]
                                                                        theorem MulEquiv.toGrpIso_hom {X Y : GrpCat} (e : X ≃* Y) :
                                                                        def MulEquiv.toCommGrpIso {X Y : CommGrpCat} (e : X ≃* Y) :
                                                                        X Y

                                                                        Build an isomorphism in the category CommGrpCat from a MulEquiv between CommGroups.

                                                                        Equations
                                                                        Instances For
                                                                          def AddEquiv.toAddCommGrpIso {X Y : AddCommGrpCat} (e : X ≃+ Y) :
                                                                          X Y

                                                                          Build an isomorphism in the category AddCommGrpCat from an AddEquiv between AddCommGroups.

                                                                          Equations
                                                                          Instances For
                                                                            def CategoryTheory.Iso.groupIsoToMulEquiv {X Y : GrpCat} (i : X Y) :
                                                                            X ≃* Y

                                                                            Build a MulEquiv from an isomorphism in the category GrpCat.

                                                                            Equations
                                                                            Instances For

                                                                              Build an addEquiv from an isomorphism in the category AddGroup

                                                                              Equations
                                                                              Instances For

                                                                                Build a MulEquiv from an isomorphism in the category CommGroup.

                                                                                Equations
                                                                                Instances For

                                                                                  Build an AddEquiv from an isomorphism in the category AddCommGroup.

                                                                                  Equations
                                                                                  Instances For
                                                                                    def mulEquivIsoGroupIso {X Y : GrpCat} :
                                                                                    X ≃* Y X Y

                                                                                    multiplicative equivalences between Groups are the same as (isomorphic to) isomorphisms in GrpCat

                                                                                    Equations
                                                                                    Instances For
                                                                                      def addEquivIsoAddGroupIso {X Y : AddGrpCat} :
                                                                                      X ≃+ Y X Y

                                                                                      Additive equivalences between AddGroups are the same as (isomorphic to) isomorphisms in AddGrpCat.

                                                                                      Equations
                                                                                      Instances For
                                                                                        def mulEquivIsoCommGroupIso {X Y : CommGrpCat} :
                                                                                        X ≃* Y X Y

                                                                                        Multiplicative equivalences between CommGroups are the same as (isomorphic to) isomorphisms in CommGrpCat.

                                                                                        Equations
                                                                                        Instances For

                                                                                          Additive equivalences between AddCommGroups are the same as (isomorphic to) isomorphisms in AddCommGrpCat.

                                                                                          Equations
                                                                                          Instances For

                                                                                            The (bundled) group of automorphisms of a type is isomorphic to the (bundled) group of permutations.

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

                                                                                              The (unbundled) group of automorphisms of a type is MulEquiv to the (unbundled) group of permutations.

                                                                                              Equations
                                                                                              Instances For
                                                                                                @[reducible, inline]
                                                                                                abbrev GrpMax :
                                                                                                Type ((max u1 u2) + 1)

                                                                                                An alias for GrpCat.{max u v}, to deal around unification issues.

                                                                                                Equations
                                                                                                Instances For
                                                                                                  @[reducible, inline]
                                                                                                  abbrev GrpMaxAux :
                                                                                                  Type ((max u1 u2) + 1)

                                                                                                  An alias for AddGrpCat.{max u v}, to deal around unification issues.

                                                                                                  Equations
                                                                                                  Instances For
                                                                                                    @[reducible, inline]
                                                                                                    abbrev AddGrpMax :
                                                                                                    Type ((max u1 u2) + 1)

                                                                                                    An alias for AddGrpCat.{max u v}, to deal around unification issues.

                                                                                                    Equations
                                                                                                    Instances For
                                                                                                      @[reducible, inline]
                                                                                                      abbrev CommGrpMax :
                                                                                                      Type ((max u1 u2) + 1)

                                                                                                      An alias for CommGrpCat.{max u v}, to deal around unification issues.

                                                                                                      Equations
                                                                                                      Instances For
                                                                                                        @[reducible, inline]
                                                                                                        abbrev AddCommGrpMaxAux :
                                                                                                        Type ((max u1 u2) + 1)

                                                                                                        An alias for AddCommGrpCat.{max u v}, to deal around unification issues.

                                                                                                        Equations
                                                                                                        Instances For
                                                                                                          @[reducible, inline]
                                                                                                          abbrev AddCommGrpMax :
                                                                                                          Type ((max u1 u2) + 1)

                                                                                                          An alias for AddCommGrpCat.{max u v}, to deal around unification issues.

                                                                                                          Equations
                                                                                                          Instances For

                                                                                                            Deprecated lemmas for MonoidHom.comp and categorical identities.

                                                                                                            @[deprecated "Proven by `simp only [GrpCat.hom_id, comp_id]`" (since := "2025-01-28")]
                                                                                                            @[deprecated "Proven by `simp only [GrpCat.hom_id, comp_id]`" (since := "2025-01-28")]
                                                                                                            @[deprecated "Proven by `simp only [GrpCat.hom_id, id_comp]`" (since := "2025-01-28")]
                                                                                                            @[deprecated "Proven by `simp only [GrpCat.hom_id, id_comp]`" (since := "2025-01-28")]
                                                                                                            @[deprecated "Proven by `simp only [CommGrpCat.hom_id, comp_id]`" (since := "2025-01-28")]
                                                                                                            @[deprecated "Proven by `simp only [CommGrpCat.hom_id, comp_id]`" (since := "2025-01-28")]
                                                                                                            @[deprecated "Proven by `simp only [CommGrpCat.hom_id, id_comp]`" (since := "2025-01-28")]
                                                                                                            @[deprecated "Proven by `simp only [CommGrpCat.hom_id, id_comp]`" (since := "2025-01-28")]