Category instance for algebras over a commutative ring #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
We introduce the bundled category Algebra
of algebras over a fixed commutative ring R
along
with the forgetful functors to Ring
and Module
. We furthermore show that the functor associating
to a type the free R
-algebra on that type is left adjoint to the forgetful functor.
The category of R-algebras and their morphisms.
Equations
- Algebra.has_coe_to_sort R = {coe := Algebra.carrier _inst_1}
The object in the category of R-algebras associated to a type equipped with the appropriate typeclasses.
Equations
- Algebra.of R X = Algebra.mk X
Typecheck a alg_hom
as a morphism in Algebra R
.
Equations
- Algebra.of_hom f = f
Equations
- Algebra.inhabited R = {default := Algebra.of R R (algebra.id R)}
Forgetting to the underlying type and then building the bundled object returns the original algebra.
Equations
- M.of_self_iso = {hom := 𝟙 M, inv := 𝟙 M, hom_inv_id' := _, inv_hom_id' := _}
The "free algebra" functor, sending a type S
to the free algebra on S
.
Equations
- Algebra.free R = {obj := λ (S : Type u), Algebra.mk (free_algebra R S), map := λ (S T : Type u) (f : S ⟶ T), ⇑(free_algebra.lift R) (free_algebra.ι R ∘ f), map_id' := _, map_comp' := _}
The free/forget adjunction for R
-algebras.
Equations
- Algebra.adj R = category_theory.adjunction.mk_of_hom_equiv {hom_equiv := λ (X : Type u) (A : Algebra R), (free_algebra.lift R).symm, hom_equiv_naturality_left_symm' := _, hom_equiv_naturality_right' := _}
Equations
- Algebra.category_theory.forget.category_theory.is_right_adjoint R = {left := Algebra.free R _inst_1, adj := Algebra.adj R _inst_1}
Build an isomorphism in the category Algebra R
from a alg_equiv
between algebra
s.
Equations
- e.to_Algebra_iso = {hom := ↑e, inv := ↑(e.symm), hom_inv_id' := _, inv_hom_id' := _}
Algebra equivalences between algebras
s are the same as (isomorphic to) isomorphisms in
Algebra
.
Equations
- alg_equiv_iso_Algebra_iso = {hom := λ (e : X ≃ₐ[R] Y), e.to_Algebra_iso, inv := λ (i : Algebra.of R X ≅ Algebra.of R Y), i.to_alg_equiv, hom_inv_id' := _, inv_hom_id' := _}
Equations
- Algebra.has_coe X = {coe := λ (N : subalgebra R X), Algebra.of R ↥N}