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.
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
- AlgebraCatMax R = AlgebraCat R
Instances For
Equations
- AlgebraCat.instCoeSortType R = { coe := AlgebraCat.carrier }
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
- AlgebraCat.of R X = AlgebraCat.mk✝ X
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Turn a morphism in AlgebraCat
back into an AlgHom
.
Equations
- f.hom = CategoryTheory.ConcreteCategory.hom f
Instances For
Use the ConcreteCategory.hom
projection for @[simps]
lemmas.
Equations
- AlgebraCat.Hom.Simps.hom A B f = f.hom
Instances For
The results below duplicate the ConcreteCategory
simp lemmas, but we can keep them for dsimp
.
Equations
- AlgebraCat.instInhabited R = { default := AlgebraCat.of R R }
Equations
Equations
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.
Forgetting to the underlying type and then building the bundled object returns the original algebra.
Equations
- M.ofSelfIso = { hom := CategoryTheory.CategoryStruct.id M, inv := CategoryTheory.CategoryStruct.id M, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
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
The free/forget adjunction for R
-algebras.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Build an isomorphism in the category AlgebraCat R
from a AlgEquiv
between Algebra
s.
Equations
- e.toAlgebraIso = { hom := AlgebraCat.ofHom ↑e, inv := AlgebraCat.ofHom ↑e.symm, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
Build a AlgEquiv
from an isomorphism in the category AlgebraCat R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Algebra equivalences between Algebra
s are the same as (isomorphic to) isomorphisms in
AlgebraCat
.
Equations
- algEquivIsoAlgebraIso = { hom := fun (e : X ≃ₐ[R] Y) => e.toAlgebraIso, inv := fun (i : AlgebraCat.of R X ≅ AlgebraCat.of R Y) => i.toAlgEquiv, hom_inv_id := ⋯, inv_hom_id := ⋯ }