Documentation

Mathlib.Algebra.Category.AlgebraCat.Basic

Category instance for algebras over a commutative ring #

We introduce the bundled category AlgebraCat of algebras over a fixed commutative ring R along with the forgetful functors to RingCat and ModuleCat. We furthermore show that the functor associating to a type the free R-algebra on that type is left adjoint to the forgetful functor.

structure AlgebraCat (R : Type u) [CommRing R] :
Type (max u (v + 1))

The category of R-algebras and their morphisms.

  • carrier : Type v

    The underlying type.

  • isRing : Ring self
  • isAlgebra : Algebra R self
Instances For
    @[reducible, inline]
    abbrev AlgebraCatMax (R : Type u₁) [CommRing R] :
    Type (max u₁ ((max v₁ v₂) + 1))

    An alias for AlgebraCat.{max u₁ u₂}, to deal around unification issues. Since the universe the ring lives in can be inferred, we put that last.

    Equations
    Instances For
      Equations
      @[reducible, inline]
      abbrev AlgebraCat.of (R : Type u) [CommRing R] (X : Type v) [Ring X] [Algebra R X] :

      The object in the category of R-algebras associated to a type equipped with the appropriate typeclasses. This is the preferred way to construct a term of AlgebraCat R.

      Equations
      Instances For
        theorem AlgebraCat.coe_of (R : Type u) [CommRing R] (X : Type v) [Ring X] [Algebra R X] :
        (AlgebraCat.of R X) = X
        structure AlgebraCat.Hom {R : Type u} [CommRing R] (A B : AlgebraCat R) :

        The type of morphisms in AlgebraCat R.

        • hom : A →ₐ[R] B

          The underlying algebra map.

        Instances For
          theorem AlgebraCat.Hom.ext {R : Type u} {inst✝ : CommRing R} {A B : AlgebraCat R} {x y : A.Hom B} (hom : x.hom = y.hom) :
          x = y
          instance AlgebraCat.instCoeFunHomForallCarrier (R : Type u) [CommRing R] {M N : AlgebraCat R} :
          CoeFun (M N) fun (x : M N) => MN
          Equations
          @[simp]
          theorem AlgebraCat.id_apply (R : Type u) [CommRing R] (A : AlgebraCat R) (a : A) :
          @[simp]
          theorem AlgebraCat.hom_comp (R : Type u) [CommRing R] {A B C : AlgebraCat R} (f : A B) (g : B C) :
          (CategoryTheory.CategoryStruct.comp f g).hom = g.hom.comp f.hom
          theorem AlgebraCat.comp_apply (R : Type u) [CommRing R] {A B C : AlgebraCat R} (f : A B) (g : B C) (a : A) :
          (CategoryTheory.CategoryStruct.comp f g).hom a = g.hom (f.hom a)
          theorem AlgebraCat.hom_ext (R : Type u) [CommRing R] {A B : AlgebraCat R} {f g : A B} (hf : f.hom = g.hom) :
          f = g
          @[reducible, inline]
          abbrev AlgebraCat.ofHom {R : Type u} [CommRing R] {X Y : Type v} [Ring X] [Algebra R X] [Ring Y] [Algebra R Y] (f : X →ₐ[R] Y) :

          Typecheck an AlgHom as a morphism in AlgebraCat R.

          Equations
          Instances For
            theorem AlgebraCat.hom_ofHom {R : Type u} [CommRing R] {X Y : Type v} [Ring X] [Algebra R X] [Ring Y] [Algebra R Y] (f : X →ₐ[R] Y) :
            @[simp]
            theorem AlgebraCat.ofHom_hom (R : Type u) [CommRing R] {A B : AlgebraCat R} (f : A B) :
            @[simp]
            theorem AlgebraCat.ofHom_comp (R : Type u) [CommRing R] {X Y Z : Type v} [Ring X] [Ring Y] [Ring Z] [Algebra R X] [Algebra R Y] [Algebra R Z] (f : X →ₐ[R] Y) (g : Y →ₐ[R] Z) :
            theorem AlgebraCat.ofHom_apply {R : Type u} [CommRing R] {X Y : Type v} [Ring X] [Algebra R X] [Ring Y] [Algebra R Y] (f : X →ₐ[R] Y) (x : X) :
            (AlgebraCat.ofHom f).hom x = f x
            @[simp]
            theorem AlgebraCat.inv_hom_apply (R : Type u) [CommRing R] {A B : AlgebraCat R} (e : A B) (x : A) :
            e.inv.hom (e.hom.hom x) = x
            @[simp]
            theorem AlgebraCat.hom_inv_apply (R : Type u) [CommRing R] {A B : AlgebraCat R} (e : A B) (x : B) :
            e.hom.hom (e.inv.hom x) = x
            Equations
            • One or more equations did not get rendered due to their size.
            theorem AlgebraCat.forget_map (R : Type u) [CommRing R] {A B : AlgebraCat R} (f : A B) :
            (CategoryTheory.forget (AlgebraCat R)).map f = f.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.
            @[simp]
            theorem AlgebraCat.forget₂_module_map (R : Type u) [CommRing R] {X Y : AlgebraCat R} (f : X Y) :
            def AlgebraCat.ofSelfIso {R : Type u} [CommRing R] (M : AlgebraCat R) :

            Forgetting to the underlying type and then building the bundled object returns the original algebra.

            Equations
            Instances For
              @[simp]
              @[simp]

              The "free algebra" functor, sending a type S to the free algebra on S.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem AlgebraCat.free_map (R : Type u) [CommRing R] {X✝ Y✝ : Type u} (f : X✝ Y✝) :
                @[simp]
                theorem AlgebraCat.free_obj (R : Type u) [CommRing R] (S : Type u) :

                The free/forget adjunction for R-algebras.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def AlgEquiv.toAlgebraIso {R : Type u} [CommRing R] {X₁ X₂ : Type u} {g₁ : Ring X₁} {g₂ : Ring X₂} {m₁ : Algebra R X₁} {m₂ : Algebra R X₂} (e : X₁ ≃ₐ[R] X₂) :

                  Build an isomorphism in the category AlgebraCat R from a AlgEquiv between Algebras.

                  Equations
                  Instances For
                    @[simp]
                    theorem AlgEquiv.toAlgebraIso_inv_hom {R : Type u} [CommRing R] {X₁ X₂ : Type u} {g₁ : Ring X₁} {g₂ : Ring X₂} {m₁ : Algebra R X₁} {m₂ : Algebra R X₂} (e : X₁ ≃ₐ[R] X₂) :
                    e.toAlgebraIso.inv.hom = e.symm
                    @[simp]
                    theorem AlgEquiv.toAlgebraIso_hom_hom {R : Type u} [CommRing R] {X₁ X₂ : Type u} {g₁ : Ring X₁} {g₂ : Ring X₂} {m₁ : Algebra R X₁} {m₂ : Algebra R X₂} (e : X₁ ≃ₐ[R] X₂) :
                    e.toAlgebraIso.hom.hom = e
                    def CategoryTheory.Iso.toAlgEquiv {R : Type u} [CommRing R] {X Y : AlgebraCat R} (i : X Y) :
                    X ≃ₐ[R] Y

                    Build a AlgEquiv from an isomorphism in the category AlgebraCat R.

                    Equations
                    • i.toAlgEquiv = { toFun := i.hom.hom, invFun := i.inv.hom, left_inv := , right_inv := , map_mul' := , map_add' := , commutes' := }
                    Instances For
                      @[simp]
                      theorem CategoryTheory.Iso.toAlgEquiv_apply {R : Type u} [CommRing R] {X Y : AlgebraCat R} (i : X Y) (a : X) :
                      i.toAlgEquiv a = i.hom.hom a
                      @[simp]
                      theorem CategoryTheory.Iso.toAlgEquiv_symm_apply {R : Type u} [CommRing R] {X Y : AlgebraCat R} (i : X Y) (a : Y) :
                      i.toAlgEquiv.symm a = i.inv.hom a
                      def algEquivIsoAlgebraIso {R : Type u} [CommRing R] {X Y : Type u} [Ring X] [Ring Y] [Algebra R X] [Algebra R Y] :

                      Algebra equivalences between Algebras are the same as (isomorphic to) isomorphisms in AlgebraCat.

                      Equations
                      Instances For
                        @[simp]
                        theorem algEquivIsoAlgebraIso_inv {R : Type u} [CommRing R] {X Y : Type u} [Ring X] [Ring Y] [Algebra R X] [Algebra R Y] (i : AlgebraCat.of R X AlgebraCat.of R Y) :
                        algEquivIsoAlgebraIso.inv i = i.toAlgEquiv
                        @[simp]
                        theorem algEquivIsoAlgebraIso_hom {R : Type u} [CommRing R] {X Y : Type u} [Ring X] [Ring Y] [Algebra R X] [Algebra R Y] (e : X ≃ₐ[R] Y) :
                        algEquivIsoAlgebraIso.hom e = e.toAlgebraIso