Documentation

Mathlib.Algebra.Category.CommAlgCat.Basic

The category of commutative algebras over a commutative ring #

This file defines the bundled category CommAlgCat of commutative algebras over a fixed commutative ring R along with the forgetful functors to CommRingCat and AlgCat.

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

The category of R-algebras and their morphisms.

  • _mkInternal :: (
  • )
Instances For
    @[instance_reducible]
    Equations
    @[reducible, inline]
    abbrev CommAlgCat.of (R : Type u) [CommRing R] (X : Type v) [CommRing 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 CommAlgCat R.

    Equations
    • X = { carrier := X, commRing := inst✝¹, algebra := inst✝ }
    Instances For
      theorem CommAlgCat.coe_of (R : Type u) [CommRing R] (X : Type v) [CommRing X] [Algebra R X] :
      X = X
      structure CommAlgCat.Hom {R : Type u} [CommRing R] (A B : CommAlgCat R) :

      The type of morphisms in CommAlgCat R.

      • _mkInternal :: (
        • hom' : A →ₐ[R] B

          The underlying algebra map.

      • )
      Instances For
        theorem CommAlgCat.Hom.ext {R : Type u} {inst✝ : CommRing R} {A B : CommAlgCat R} {x y : A.Hom B} (hom' : x.hom' = y.hom') :
        x = y
        theorem CommAlgCat.Hom.ext_iff {R : Type u} {inst✝ : CommRing R} {A B : CommAlgCat R} {x y : A.Hom B} :
        x = y x.hom' = y.hom'
        @[instance_reducible]
        Equations
        • One or more equations did not get rendered due to their size.
        @[instance_reducible]
        Equations
        • One or more equations did not get rendered due to their size.
        @[reducible, inline]
        abbrev CommAlgCat.Hom.hom {R : Type u} [CommRing R] {A B : CommAlgCat R} (f : A.Hom B) :
        A →ₐ[R] B

        Turn a morphism in CommAlgCat back into an AlgHom.

        Equations
        Instances For
          @[reducible, inline]
          abbrev CommAlgCat.ofHom {R : Type u} [CommRing R] {X Y : Type v} [CommRing X] [Algebra R X] [CommRing Y] [Algebra R Y] (f : X →ₐ[R] Y) :
          X Y

          Typecheck an AlgHom as a morphism in CommAlgCat.

          Equations
          Instances For
            def CommAlgCat.Hom.Simps.hom {R : Type u} [CommRing R] (A B : CommAlgCat R) (f : A.Hom B) :
            A →ₐ[R] B

            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.

              @[simp]
              theorem CommAlgCat.hom_comp {R : Type u} [CommRing R] {A B C : CommAlgCat R} (f : A B) (g : B C) :
              theorem CommAlgCat.hom_ext {R : Type u} [CommRing R] {A B : CommAlgCat R} {f g : A B} (hf : Hom.hom f = Hom.hom g) :
              f = g
              theorem CommAlgCat.hom_ext_iff {R : Type u} [CommRing R] {A B : CommAlgCat R} {f g : A B} :
              @[simp]
              theorem CommAlgCat.hom_ofHom {R : Type u} [CommRing R] {X Y : Type v} [CommRing X] [Algebra R X] [CommRing Y] [Algebra R Y] (f : X →ₐ[R] Y) :
              @[simp]
              theorem CommAlgCat.ofHom_hom {R : Type u} [CommRing R] {A B : CommAlgCat R} (f : A B) :
              @[simp]
              theorem CommAlgCat.ofHom_comp {R : Type u} [CommRing R] {X Y Z : Type v} [CommRing X] [Algebra R X] [CommRing Y] [Algebra R Y] [CommRing Z] [Algebra R Z] (f : X →ₐ[R] Y) (g : Y →ₐ[R] Z) :
              theorem CommAlgCat.ofHom_apply {R : Type u} [CommRing R] {X Y : Type v} [CommRing X] [Algebra R X] [CommRing Y] [Algebra R Y] (f : X →ₐ[R] Y) (x : X) :
              @[instance_reducible]
              Equations
              @[deprecated CategoryTheory.ConcreteCategory.forget_map_eq_ofHom (since := "2026-03-06")]
              @[instance_reducible]
              Equations
              • One or more equations did not get rendered due to their size.
              @[instance_reducible]
              Equations
              • One or more equations did not get rendered due to their size.
              def CommAlgCat.homEquivCommRingCat {R : Type u} [CommRing R] (A B : CommAlgCat R) :
              (A B) { f : A B // (CommRingCat.Hom.hom f).comp (algebraMap R A) = algebraMap R B }

              The bijection between the set of morphisms A ⟶ B in CommAlgCat and the set of morphisms A ⟶ B in CommRingCat commuting with the corresponding algebra maps R → A and R → B.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                @[simp]
                theorem CommAlgCat.homEquivCommRingCat_symm_apply {R : Type u} [CommRing R] (A B : CommAlgCat R) (f : { f : A B // (CommRingCat.Hom.hom f).comp (algebraMap R A) = algebraMap R B }) :
                (A.homEquivCommRingCat B).symm f = ofHom { toRingHom := CommRingCat.Hom.hom f, commutes' := }
                def CommAlgCat.isoMk {R : Type u} [CommRing R] {X Y : Type v} {x✝ : CommRing X} {x✝¹ : CommRing Y} {x✝² : Algebra R X} {x✝³ : Algebra R Y} (e : X ≃ₐ[R] Y) :
                X Y

                Build an isomorphism in the category CommAlgCat R from an AlgEquiv between commutative Algebras.

                Equations
                Instances For
                  @[simp]
                  theorem CommAlgCat.isoMk_inv {R : Type u} [CommRing R] {X Y : Type v} {x✝ : CommRing X} {x✝¹ : CommRing Y} {x✝² : Algebra R X} {x✝³ : Algebra R Y} (e : X ≃ₐ[R] Y) :
                  (isoMk e).inv = ofHom e.symm
                  @[simp]
                  theorem CommAlgCat.isoMk_hom {R : Type u} [CommRing R] {X Y : Type v} {x✝ : CommRing X} {x✝¹ : CommRing Y} {x✝² : Algebra R X} {x✝³ : Algebra R Y} (e : X ≃ₐ[R] Y) :
                  (isoMk e).hom = ofHom e
                  def CommAlgCat.algEquivOfIso {R : Type u} [CommRing R] {A B : CommAlgCat R} (i : A B) :
                  A ≃ₐ[R] B

                  Build an AlgEquiv from an isomorphism in the category CommAlgCat R.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[simp]
                    theorem CommAlgCat.algEquivOfIso_apply {R : Type u} [CommRing R] {A B : CommAlgCat R} (i : A B) (a : A) :
                    def CommAlgCat.isoEquivAlgEquiv {R : Type u} [CommRing R] {X Y : Type v} [CommRing X] [Algebra R X] [CommRing Y] [Algebra R Y] :
                    (X Y) X ≃ₐ[R] Y

                    Algebra equivalences between Algebras are the same as isomorphisms in CommAlgCat.

                    Equations
                    Instances For
                      @[simp]
                      @[simp]
                      theorem CommAlgCat.isoEquivAlgEquiv_apply {R : Type u} [CommRing R] {X Y : Type v} [CommRing X] [Algebra R X] [CommRing Y] [Algebra R Y] (i : X Y) :

                      Universe lift functor for commutative algebras.

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

                        The universe lift functor for commutative algebras is fully faithful.

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

                          The category of commutative algebras over a commutative ring R is the same as commutative rings under R.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            @[simp]
                            theorem commAlgCatEquivUnder_counitIso (R : CommRingCat) :
                            (commAlgCatEquivUnder R).counitIso = CategoryTheory.Iso.refl ({ obj := fun (A : CategoryTheory.Under R) => A.right, map := fun {A B : CategoryTheory.Under R} (f : A B) => CommAlgCat.ofHom (CommRingCat.toAlgHom f), map_id := , map_comp := }.comp { obj := fun (A : CommAlgCat R) => R.mkUnder A, map := fun {A B : CommAlgCat R} (f : A B) => (CommAlgCat.Hom.hom f).toUnder, map_id := , map_comp := })
                            @[simp]
                            theorem commAlgCatEquivUnder_unitIso (R : CommRingCat) :
                            (commAlgCatEquivUnder R).unitIso = CategoryTheory.NatIso.ofComponents (fun (A : CommAlgCat R) => CommAlgCat.isoMk (let __RingEquiv := RingEquiv.refl A; { toEquiv := __RingEquiv.toEquiv, map_mul' := , map_add' := , commutes' := }))