Documentation

Mathlib.Algebra.Category.MonCat.Basic

Category instances for Monoid, AddMonoid, CommMonoid, and AddCommMmonoid. #

We introduce the bundled categories:

def MonCat :
Type (u + 1)

The category of monoids and monoid morphisms.

Equations
Instances For
    def AddMonCat :
    Type (u + 1)

    The category of additive monoids and monoid morphisms.

    Equations
    Instances For
      @[reducible, inline]
      abbrev MonCat.AssocMonoidHom (M : Type u_1) (N : Type u_2) [Monoid M] [Monoid N] :
      Type (max u_1 u_2)

      MonoidHom doesn't actually assume associativity. This alias is needed to make the category theory machinery work.

      Equations
      Instances For
        @[reducible, inline]
        abbrev AddMonCat.AssocAddMonoidHom (M : Type u_1) (N : Type u_2) [AddMonoid M] [AddMonoid N] :
        Type (max u_1 u_2)

        AddMonoidHom doesn't actually assume associativity. This alias is needed to make the category theory machinery work.

        Equations
        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.
          Equations
          Equations
          instance MonCat.instMonoidα (X : MonCat) :
          Monoid X
          Equations
          • X.instMonoidα = X.str
          Equations
          • X.instMonoidα = X.str
          instance MonCat.instCoeFunHomForallαMonoid {X : MonCat} {Y : MonCat} :
          CoeFun (X Y) fun (x : X Y) => XY
          Equations
          • MonCat.instCoeFunHomForallαMonoid = { coe := fun (f : X →* Y) => f }
          instance AddMonCat.instCoeFunHomForallαAddMonoid {X : AddMonCat} {Y : AddMonCat} :
          CoeFun (X Y) fun (x : X Y) => XY
          Equations
          • AddMonCat.instCoeFunHomForallαAddMonoid = { coe := fun (f : X →+ Y) => f }
          instance MonCat.instFunLike (X : MonCat) (Y : MonCat) :
          FunLike (X Y) X Y
          Equations
          instance AddMonCat.instFunLike (X : AddMonCat) (Y : AddMonCat) :
          FunLike (X Y) X Y
          Equations
          instance MonCat.instMonoidHomClass (X : MonCat) (Y : MonCat) :
          MonoidHomClass (X Y) X Y
          Equations
          • =
          Equations
          • =
          @[simp]
          theorem MonCat.coe_comp {X : MonCat} {Y : MonCat} {Z : MonCat} {f : X Y} {g : Y Z} :
          @[simp]
          theorem AddMonCat.coe_comp {X : AddMonCat} {Y : AddMonCat} {Z : AddMonCat} {f : X Y} {g : Y Z} :
          @[simp]
          theorem MonCat.forget_map {X : MonCat} {Y : MonCat} (f : X Y) :
          @[simp]
          theorem AddMonCat.forget_map {X : AddMonCat} {Y : AddMonCat} (f : X Y) :
          theorem AddMonCat.ext {X : AddMonCat} {Y : AddMonCat} {f : X Y} {g : X Y} (w : ∀ (x : X), f x = g x) :
          f = g
          theorem MonCat.ext {X : MonCat} {Y : MonCat} {f : X Y} {g : X Y} (w : ∀ (x : X), f x = g x) :
          f = g
          def MonCat.of (M : Type u) [Monoid M] :

          Construct a bundled MonCat from the underlying type and typeclass.

          Equations
          Instances For

            Construct a bundled AddMonCat from the underlying type and typeclass.

            Equations
            Instances For
              theorem MonCat.coe_of (R : Type u) [Monoid R] :
              (MonCat.of R) = R
              theorem AddMonCat.coe_of (R : Type u) [AddMonoid R] :
              (AddMonCat.of R) = R
              def MonCat.ofHom {X : Type u} {Y : Type u} [Monoid X] [Monoid Y] (f : X →* Y) :

              Typecheck a MonoidHom as a morphism in MonCat.

              Equations
              Instances For
                def AddMonCat.ofHom {X : Type u} {Y : Type u} [AddMonoid X] [AddMonoid Y] (f : X →+ Y) :

                Typecheck an AddMonoidHom as a morphism in AddMonCat.

                Equations
                Instances For
                  @[simp]
                  theorem MonCat.ofHom_apply {X : Type u} {Y : Type u} [Monoid X] [Monoid Y] (f : X →* Y) (x : X) :
                  (MonCat.ofHom f) x = f x
                  @[simp]
                  theorem AddMonCat.ofHom_apply {X : Type u} {Y : Type u} [AddMonoid X] [AddMonoid Y] (f : X →+ Y) (x : X) :
                  (AddMonCat.ofHom f) x = f x
                  instance MonCat.instOneHom (X : MonCat) (Y : MonCat) :
                  One (X Y)
                  Equations
                  instance AddMonCat.instZeroHom (X : AddMonCat) (Y : AddMonCat) :
                  Zero (X Y)
                  Equations
                  @[simp]
                  theorem MonCat.oneHom_apply (X : MonCat) (Y : MonCat) (x : X) :
                  1 x = 1
                  @[simp]
                  theorem AddMonCat.zeroHom_apply (X : AddMonCat) (Y : AddMonCat) (x : X) :
                  0 x = 0
                  @[simp]
                  theorem MonCat.one_of {A : Type u_1} [Monoid A] :
                  1 = 1
                  @[simp]
                  theorem AddMonCat.zero_of {A : Type u_1} [AddMonoid A] :
                  0 = 0
                  @[simp]
                  theorem MonCat.mul_of {A : Type u_1} [Monoid A] (a : A) (b : A) :
                  a * b = a * b
                  @[simp]
                  theorem AddMonCat.add_of {A : Type u_1} [AddMonoid A] (a : A) (b : A) :
                  a + b = a + b
                  instance MonCat.instGroupαMonoidOf {G : Type u_1} [Group G] :
                  Equations
                  • MonCat.instGroupαMonoidOf = inst
                  Equations
                  • AddMonCat.instGroupαAddMonoidOf = inst

                  Universe lift functor for monoids.

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

                    Universe lift functor for additive monoids.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[simp]
                      theorem AddMonCat.uliftFunctor_map :
                      ∀ {x x_1 : AddMonCat} (f : x x_1), AddMonCat.uliftFunctor.map f = AddMonCat.ofHom (AddEquiv.ulift.symm.toAddMonoidHom.comp (AddMonoidHom.comp f AddEquiv.ulift.toAddMonoidHom))
                      @[simp]
                      theorem MonCat.uliftFunctor_map :
                      ∀ {x x_1 : MonCat} (f : x x_1), MonCat.uliftFunctor.map f = MonCat.ofHom (MulEquiv.ulift.symm.toMonoidHom.comp (MonoidHom.comp f MulEquiv.ulift.toMonoidHom))
                      def CommMonCat :
                      Type (u + 1)

                      The category of commutative monoids and monoid morphisms.

                      Equations
                      Instances For
                        def AddCommMonCat :
                        Type (u + 1)

                        The category of additive commutative monoids and monoid morphisms.

                        Equations
                        Instances For
                          Equations
                          • X.instCommMonoidα = X.str
                          Equations
                          • X.instCommMonoidα = X.str
                          instance CommMonCat.instCoeFunHomForallαCommMonoid {X : CommMonCat} {Y : CommMonCat} :
                          CoeFun (X Y) fun (x : X Y) => XY
                          Equations
                          • CommMonCat.instCoeFunHomForallαCommMonoid = { coe := fun (f : X →* Y) => f }
                          instance AddCommMonCat.instCoeFunHomForallαAddCommMonoid {X : AddCommMonCat} {Y : AddCommMonCat} :
                          CoeFun (X Y) fun (x : X Y) => XY
                          Equations
                          • AddCommMonCat.instCoeFunHomForallαAddCommMonoid = { coe := fun (f : X →+ Y) => f }
                          instance CommMonCat.instFunLike (X : CommMonCat) (Y : CommMonCat) :
                          FunLike (X Y) X Y
                          Equations
                          • X.instFunLike Y = inferInstance
                          instance AddCommMonCat.instFunLike (X : AddCommMonCat) (Y : AddCommMonCat) :
                          FunLike (X Y) X Y
                          Equations
                          • X.instFunLike Y = inferInstance
                          @[simp]
                          theorem CommMonCat.coe_comp {X : CommMonCat} {Y : CommMonCat} {Z : CommMonCat} {f : X Y} {g : Y Z} :
                          @[simp]
                          theorem AddCommMonCat.coe_comp {X : AddCommMonCat} {Y : AddCommMonCat} {Z : AddCommMonCat} {f : X Y} {g : Y Z} :
                          @[simp]
                          theorem AddCommMonCat.ext {X : AddCommMonCat} {Y : AddCommMonCat} {f : X Y} {g : X Y} (w : ∀ (x : X), f x = g x) :
                          f = g
                          theorem CommMonCat.ext {X : CommMonCat} {Y : CommMonCat} {f : X Y} {g : X Y} (w : ∀ (x : X), f x = g x) :
                          f = g

                          Construct a bundled CommMonCat from the underlying type and typeclass.

                          Equations
                          Instances For

                            Construct a bundled AddCommMonCat from the underlying type and typeclass.

                            Equations
                            Instances For
                              theorem CommMonCat.coe_of (R : Type u) [CommMonoid R] :
                              (CommMonCat.of R) = R

                              Typecheck a MonoidHom as a morphism in CommMonCat.

                              Equations
                              Instances For

                                Typecheck an AddMonoidHom as a morphism in AddCommMonCat.

                                Equations
                                Instances For
                                  @[simp]
                                  theorem CommMonCat.ofHom_apply {X : Type u} {Y : Type u} [CommMonoid X] [CommMonoid Y] (f : X →* Y) (x : X) :
                                  @[simp]
                                  theorem AddCommMonCat.ofHom_apply {X : Type u} {Y : Type u} [AddCommMonoid X] [AddCommMonoid Y] (f : X →+ Y) (x : X) :

                                  Universe lift functor for commutative monoids.

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

                                    Universe lift functor for additive commutative monoids.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      @[simp]
                                      theorem CommMonCat.uliftFunctor_map :
                                      ∀ {x x_1 : CommMonCat} (f : x x_1), CommMonCat.uliftFunctor.map f = CommMonCat.ofHom (MulEquiv.ulift.symm.toMonoidHom.comp (MonoidHom.comp f MulEquiv.ulift.toMonoidHom))
                                      @[simp]
                                      theorem AddCommMonCat.uliftFunctor_map :
                                      ∀ {x x_1 : AddCommMonCat} (f : x x_1), AddCommMonCat.uliftFunctor.map f = AddCommMonCat.ofHom (AddEquiv.ulift.symm.toAddMonoidHom.comp (AddMonoidHom.comp f AddEquiv.ulift.toAddMonoidHom))
                                      def MulEquiv.toMonCatIso {X : Type u} {Y : Type u} [Monoid X] [Monoid Y] (e : X ≃* Y) :

                                      Build an isomorphism in the category MonCat from a MulEquiv between Monoids.

                                      Equations
                                      • e.toMonCatIso = { hom := MonCat.ofHom e.toMonoidHom, inv := MonCat.ofHom e.symm.toMonoidHom, hom_inv_id := , inv_hom_id := }
                                      Instances For

                                        Build an isomorphism in the category AddMonCat from an AddEquiv between AddMonoids.

                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem AddEquiv.toAddMonCatIso_inv {X : Type u} {Y : Type u} [AddMonoid X] [AddMonoid Y] (e : X ≃+ Y) :
                                          e.toAddMonCatIso.inv = AddMonCat.ofHom e.symm.toAddMonoidHom
                                          @[simp]
                                          theorem AddEquiv.toAddMonCatIso_hom {X : Type u} {Y : Type u} [AddMonoid X] [AddMonoid Y] (e : X ≃+ Y) :
                                          e.toAddMonCatIso.hom = AddMonCat.ofHom e.toAddMonoidHom
                                          @[simp]
                                          theorem MulEquiv.toMonCatIso_inv {X : Type u} {Y : Type u} [Monoid X] [Monoid Y] (e : X ≃* Y) :
                                          e.toMonCatIso.inv = MonCat.ofHom e.symm.toMonoidHom
                                          @[simp]
                                          theorem MulEquiv.toMonCatIso_hom {X : Type u} {Y : Type u} [Monoid X] [Monoid Y] (e : X ≃* Y) :
                                          e.toMonCatIso.hom = MonCat.ofHom e.toMonoidHom

                                          Build an isomorphism in the category CommMonCat from a MulEquiv between CommMonoids.

                                          Equations
                                          Instances For

                                            Build an isomorphism in the category AddCommMonCat from an AddEquiv between AddCommMonoids.

                                            Equations
                                            Instances For
                                              @[simp]
                                              theorem MulEquiv.toCommMonCatIso_hom {X : Type u} {Y : Type u} [CommMonoid X] [CommMonoid Y] (e : X ≃* Y) :
                                              e.toCommMonCatIso.hom = CommMonCat.ofHom e.toMonoidHom
                                              @[simp]
                                              theorem AddEquiv.toAddCommMonCatIso_inv {X : Type u} {Y : Type u} [AddCommMonoid X] [AddCommMonoid Y] (e : X ≃+ Y) :
                                              e.toAddCommMonCatIso.inv = AddCommMonCat.ofHom e.symm.toAddMonoidHom
                                              @[simp]
                                              theorem MulEquiv.toCommMonCatIso_inv {X : Type u} {Y : Type u} [CommMonoid X] [CommMonoid Y] (e : X ≃* Y) :
                                              e.toCommMonCatIso.inv = CommMonCat.ofHom e.symm.toMonoidHom
                                              @[simp]
                                              theorem AddEquiv.toAddCommMonCatIso_hom {X : Type u} {Y : Type u} [AddCommMonoid X] [AddCommMonoid Y] (e : X ≃+ Y) :
                                              e.toAddCommMonCatIso.hom = AddCommMonCat.ofHom e.toAddMonoidHom
                                              def CategoryTheory.Iso.monCatIsoToMulEquiv {X : MonCat} {Y : MonCat} (i : X Y) :
                                              X ≃* Y

                                              Build a MulEquiv from an isomorphism in the category MonCat.

                                              Equations
                                              Instances For

                                                Build an AddEquiv from an isomorphism in the category AddMonCat.

                                                Equations
                                                Instances For

                                                  Build a MulEquiv from an isomorphism in the category CommMonCat.

                                                  Equations
                                                  Instances For

                                                    Build an AddEquiv from an isomorphism in the category AddCommMonCat.

                                                    Equations
                                                    Instances For
                                                      def mulEquivIsoMonCatIso {X : Type u} {Y : Type u} [Monoid X] [Monoid Y] :

                                                      multiplicative equivalences between Monoids are the same as (isomorphic to) isomorphisms in MonCat

                                                      Equations
                                                      • mulEquivIsoMonCatIso = { hom := fun (e : X ≃* Y) => e.toMonCatIso, inv := fun (i : MonCat.of X MonCat.of Y) => i.monCatIsoToMulEquiv, hom_inv_id := , inv_hom_id := }
                                                      Instances For

                                                        additive equivalences between AddMonoids are the same as (isomorphic to) isomorphisms in AddMonCat

                                                        Equations
                                                        • addEquivIsoAddMonCatIso = { hom := fun (e : X ≃+ Y) => e.toAddMonCatIso, inv := fun (i : AddMonCat.of X AddMonCat.of Y) => i.addMonCatIsoToAddEquiv, hom_inv_id := , inv_hom_id := }
                                                        Instances For

                                                          multiplicative equivalences between CommMonoids are the same as (isomorphic to) isomorphisms in CommMonCat

                                                          Equations
                                                          • mulEquivIsoCommMonCatIso = { hom := fun (e : X ≃* Y) => e.toCommMonCatIso, inv := fun (i : CommMonCat.of X CommMonCat.of Y) => i.commMonCatIsoToMulEquiv, hom_inv_id := , inv_hom_id := }
                                                          Instances For

                                                            additive equivalences between AddCommMonoids are the same as (isomorphic to) isomorphisms in AddCommMonCat

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

                                                              @[simp] lemmas for MonoidHom.comp and categorical identities.

                                                              @[simp]
                                                              theorem MonoidHom.comp_id_monCat {G : MonCat} {H : Type u} [Monoid H] (f : G →* H) :
                                                              @[simp]
                                                              theorem AddMonoidHom.comp_id_monCat {G : AddMonCat} {H : Type u} [AddMonoid H] (f : G →+ H) :
                                                              @[simp]