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
      • 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 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.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).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.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).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

                              Build an isomorphism in the category AddSemigroup from an AddEquiv between AddSemigroups.

                              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).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.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).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.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
                                  Instances For

                                    Build a MulEquiv from an isomorphism in the category Magma.

                                    Equations
                                    Instances For

                                      Build an AddEquiv from an isomorphism in the category AddSemigroup.

                                      Equations
                                      Instances For

                                        Build a MulEquiv from an isomorphism in the category Semigroup.

                                        Equations
                                        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
                                            • One or more equations did not get rendered due to their size.
                                            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.