Documentation

Mathlib.Algebra.Category.SemigroupCat.Basic

Category instances for Mul, Add, Semigroup and AddSemigroup #

We introduce the bundled categories:

This closely follows Mathlib.Algebra.Category.MonCat.Basic.

TODO #

def AddMagmaCat :
Type (u + 1)

The category of additive magmas and additive magma morphisms.

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

    The category of magmas and magma morphisms.

    Equations
    Instances For
      theorem AddMagmaCat.bundledHom.proof_1 :
      ∀ {α β : Type u_1} ( : Add α) ( : Add β), Function.Injective fun (f : AddHom α β) => f
      theorem AddMagmaCat.bundledHom.proof_2 {α : Type u_1} (I : Add α) :
      (AddHom.id α).toFun = id
      theorem AddMagmaCat.bundledHom.proof_3 {α : Type u_1} {β : Type u_1} {γ : Type u_1} (Iα : Add α) (Iβ : Add β) (Iγ : Add γ) (f : AddHom α β) (g : AddHom β γ) :
      g f = g f
      Equations
      Instances For
        instance MagmaCat.instMulα (X : MagmaCat) :
        Mul X
        Equations
        instance AddMagmaCat.instFunLike (X : AddMagmaCat) (Y : AddMagmaCat) :
        FunLike (X Y) X Y
        Equations
        instance MagmaCat.instFunLike (X : MagmaCat) (Y : MagmaCat) :
        FunLike (X Y) X Y
        Equations
        instance AddMagmaCat.instAddHomClass (X : AddMagmaCat) (Y : AddMagmaCat) :
        AddHomClass (X Y) X Y
        Equations
        instance MagmaCat.instMulHomClass (X : MagmaCat) (Y : MagmaCat) :
        MulHomClass (X Y) X Y
        Equations

        Construct a bundled AddMagmaCat from the underlying type and typeclass.

        Equations
        Instances For
          def MagmaCat.of (M : Type u) [Mul M] :

          Construct a bundled MagmaCat from the underlying type and typeclass.

          Equations
          Instances For
            @[simp]
            theorem AddMagmaCat.coe_of (R : Type u) [Add R] :
            (AddMagmaCat.of R) = R
            @[simp]
            theorem MagmaCat.coe_of (R : Type u) [Mul R] :
            (MagmaCat.of R) = R
            @[simp]
            theorem AddMagmaCat.addEquiv_coe_eq {X : Type u_1} {Y : Type u_1} [Add X] [Add Y] (e : X ≃+ Y) :
            e = e
            @[simp]
            theorem MagmaCat.mulEquiv_coe_eq {X : Type u_1} {Y : Type u_1} [Mul X] [Mul Y] (e : X ≃* Y) :
            e = e
            def AddMagmaCat.ofHom {X : Type u} {Y : Type u} [Add X] [Add Y] (f : AddHom X Y) :

            Typecheck an AddHom as a morphism in AddMagmaCat.

            Equations
            Instances For
              def MagmaCat.ofHom {X : Type u} {Y : Type u} [Mul X] [Mul Y] (f : X →ₙ* Y) :

              Typecheck a MulHom as a morphism in MagmaCat.

              Equations
              Instances For
                theorem AddMagmaCat.ofHom_apply {X : Type u} {Y : Type u} [Add X] [Add Y] (f : AddHom X Y) (x : X) :
                theorem MagmaCat.ofHom_apply {X : Type u} {Y : Type u} [Mul X] [Mul Y] (f : X →ₙ* Y) (x : X) :
                (MagmaCat.ofHom f) x = f x
                def AddSemigroupCat :
                Type (u + 1)

                The category of additive semigroups and semigroup morphisms.

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

                  The category of semigroups and semigroup morphisms.

                  Equations
                  Instances For
                    instance SemigroupCat.instFunLike (X : SemigroupCat) (Y : SemigroupCat) :
                    FunLike (X Y) X Y
                    Equations
                    Equations
                    Equations

                    Construct a bundled AddSemigroupCat from the underlying type and typeclass.

                    Equations
                    Instances For

                      Construct a bundled SemigroupCat from the underlying type and typeclass.

                      Equations
                      Instances For
                        @[simp]
                        @[simp]
                        theorem SemigroupCat.coe_of (R : Type u) [Semigroup R] :
                        @[simp]
                        theorem AddSemigroupCat.addEquiv_coe_eq {X : Type u_1} {Y : Type u_1} [AddSemigroup X] [AddSemigroup Y] (e : X ≃+ Y) :
                        e = e
                        @[simp]
                        theorem SemigroupCat.mulEquiv_coe_eq {X : Type u_1} {Y : Type u_1} [Semigroup X] [Semigroup Y] (e : X ≃* Y) :
                        e = e

                        Typecheck an AddHom as a morphism in AddSemigroupCat.

                        Equations
                        Instances For

                          Typecheck a MulHom as a morphism in SemigroupCat.

                          Equations
                          Instances For
                            theorem AddSemigroupCat.ofHom_apply {X : Type u} {Y : Type u} [AddSemigroup X] [AddSemigroup Y] (f : AddHom X Y) (x : X) :
                            theorem SemigroupCat.ofHom_apply {X : Type u} {Y : Type u} [Semigroup X] [Semigroup Y] (f : X →ₙ* Y) (x : X) :
                            def AddEquiv.toAddMagmaCatIso {X : Type u} {Y : Type u} [Add X] [Add Y] (e : X ≃+ Y) :

                            Build an isomorphism in the category AddMagmaCat from an AddEquiv between Adds.

                            Equations
                            Instances For
                              @[simp]
                              theorem MulEquiv.toMagmaCatIso_hom_apply {X : Type u} {Y : Type u} [Mul X] [Mul Y] (e : X ≃* Y) :
                              ∀ (a : X), (MulEquiv.toMagmaCatIso e).hom a = e.toEquiv.toFun a
                              @[simp]
                              theorem AddEquiv.toAddMagmaCatIso_inv_apply {X : Type u} {Y : Type u} [Add X] [Add Y] (e : X ≃+ Y) :
                              ∀ (a : Y), (AddEquiv.toAddMagmaCatIso e).inv a = (AddEquiv.symm e).toEquiv.toFun a
                              @[simp]
                              theorem AddEquiv.toAddMagmaCatIso_hom_apply {X : Type u} {Y : Type u} [Add X] [Add Y] (e : X ≃+ Y) :
                              ∀ (a : X), (AddEquiv.toAddMagmaCatIso e).hom a = e.toEquiv.toFun a
                              @[simp]
                              theorem MulEquiv.toMagmaCatIso_inv_apply {X : Type u} {Y : Type u} [Mul X] [Mul Y] (e : X ≃* Y) :
                              ∀ (a : Y), (MulEquiv.toMagmaCatIso e).inv a = (MulEquiv.symm e).toEquiv.toFun a
                              def MulEquiv.toMagmaCatIso {X : Type u} {Y : Type u} [Mul X] [Mul Y] (e : X ≃* Y) :

                              Build an isomorphism in the category MagmaCat from a MulEquiv between Muls.

                              Equations
                              Instances For
                                @[simp]
                                theorem MulEquiv.toSemigroupCatIso_inv_apply {X : Type u} {Y : Type u} [Semigroup X] [Semigroup Y] (e : X ≃* Y) :
                                ∀ (a : Y), (MulEquiv.toSemigroupCatIso e).inv a = (MulEquiv.symm e).toEquiv.toFun a
                                @[simp]
                                theorem AddEquiv.toAddSemigroupCatIso_hom_apply {X : Type u} {Y : Type u} [AddSemigroup X] [AddSemigroup Y] (e : X ≃+ Y) :
                                ∀ (a : X), (AddEquiv.toAddSemigroupCatIso e).hom a = e.toEquiv.toFun a
                                @[simp]
                                theorem AddEquiv.toAddSemigroupCatIso_inv_apply {X : Type u} {Y : Type u} [AddSemigroup X] [AddSemigroup Y] (e : X ≃+ Y) :
                                ∀ (a : Y), (AddEquiv.toAddSemigroupCatIso e).inv a = (AddEquiv.symm e).toEquiv.toFun a
                                @[simp]
                                theorem MulEquiv.toSemigroupCatIso_hom_apply {X : Type u} {Y : Type u} [Semigroup X] [Semigroup Y] (e : X ≃* Y) :
                                ∀ (a : X), (MulEquiv.toSemigroupCatIso e).hom a = e.toEquiv.toFun a

                                Build an isomorphism in the category Semigroup from a MulEquiv between Semigroups.

                                Equations
                                Instances For

                                  Build an AddEquiv from an isomorphism in the category AddMagma.

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

                                    Build a MulEquiv from an isomorphism in the category Magma.

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

                                      Build an AddEquiv from an isomorphism in the category AddSemigroup.

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

                                        Build a MulEquiv from an isomorphism in the category Semigroup.

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

                                          additive equivalences between Adds are the same as (isomorphic to) isomorphisms in AddMagma

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            def mulEquivIsoMagmaIso {X : Type u} {Y : Type u} [Mul X] [Mul Y] :

                                            multiplicative equivalences between Muls are the same as (isomorphic to) isomorphisms in Magma

                                            Equations
                                            Instances For

                                              additive equivalences between AddSemigroups are the same as (isomorphic to) isomorphisms in AddSemigroup

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

                                                multiplicative equivalences between Semigroups are the same as (isomorphic to) isomorphisms in Semigroup

                                                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.

                                                  Once we've shown that the forgetful functors to type reflect isomorphisms, we automatically obtain that the forget₂ functors between our concrete categories reflect isomorphisms.