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 {A B : AddGrpCat} {x y : A.Hom B} (hom' : x.hom' = y.hom') :
                x = y
                theorem AddGrpCat.Hom.ext_iff {A B : AddGrpCat} {x y : A.Hom B} :
                x = y x.hom' = y.hom'
                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
                  @[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) :
                                      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} :
                                      @[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) :
                                      instance GrpCat.instOneHom (G H : GrpCat) :
                                      One (G H)
                                      Equations
                                        instance AddGrpCat.instZeroHom (G H : AddGrpCat) :
                                        Zero (G H)
                                        Equations

                                          The forgetful functor from groups to monoids is fully faithful.

                                          Equations
                                            Instances For

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

                                              Equations
                                                Instances For

                                                  Universe lift functor for groups.

                                                  Equations
                                                    Instances For

                                                      Universe lift functor for additive groups.

                                                      Equations
                                                        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
                                                                            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'
                                                                              @[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 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
                                                                                                      @[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) :

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

                                                                                                      Equations
                                                                                                        Instances For

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

                                                                                                          Equations
                                                                                                            Instances For
                                                                                                              instance CommGrpCat.instOneHom (G H : CommGrpCat) :
                                                                                                              One (G H)
                                                                                                              Equations

                                                                                                                Universe lift functor for commutative groups.

                                                                                                                Equations
                                                                                                                  Instances For

                                                                                                                    Universe lift functor for additive commutative groups.

                                                                                                                    Equations
                                                                                                                      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
                                                                                                                                    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
                                                                                                                                                                              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