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
- AlgebraCat.instCoeFunHomForallCarrier R = { coe := fun (f : M ⟶ N) => ⇑f.hom }
Typecheck an AlgHom
as a morphism in AlgebraCat R
.
Equations
- AlgebraCat.ofHom f = { hom := f }
Instances For
Equations
- AlgebraCat.instInhabited R = { default := AlgebraCat.of R R }
Equations
- One or more equations did not get rendered due to their size.
Equations
- AlgebraCat.instRingObjForget R = inferInstance
Equations
- AlgebraCat.instAlgebraObjForget R = inferInstance
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
- i.toAlgEquiv = { toFun := ⇑i.hom.hom, invFun := ⇑i.inv.hom, left_inv := ⋯, right_inv := ⋯, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
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 := ⋯ }