Setoid.Categories.Reduct¶
Reduct as a functor on algebras¶
This is the Setoid.Categories.Reduct module of the Agda Universal Algebra Library.
A signature morphism Ο : SigMorphism πβ πβ induces a covariant functor
reductF Ο : Alg πβ βΆ Alg πβ between the algebra categories.
On objects it is reductΟ; on a homomorphism it keeps the
same underlying setoid map and transfers the πβ-homomorphism condition to πβ by the
ΞΊ-reindex β compatible at the πβ-symbol o is f's πβ-compatible at ΞΉ Ο o,
definitionally on the nose, because (o ^ reduct Ο π¨) = (ΞΉ Ο o ^ π¨) β (_β ΞΊ Ο o).
The functor laws are immediate: F-resp-β is the identity (the underlying maps are
unchanged, and the hom-equality is pointwise on them), and identity / homomorphism hold
by the codomain's refl (the underlying maps of both sides are the same β πΎπΉ and β-hom
are the identity map and function composition).
This functor lives in Setoid.Categories, alongside the rest of the category vocabulary; its
object map reduct is Setoid.Algebras.Reduct, also a Setoid/
construction. (Both were relocated from Classical/ by
ADR-006, M4-16: reduct is universal
algebra, not classical, and depends on nothing in Classical/.)
reductF : {πβ πβ : Signature π π₯} (Ο : SigMorphism πβ πβ) β Functor (Alg {π = πβ} Ξ± Ο) (Alg {π = πβ} Ξ± Ο) reductF Ο = record { Fβ = reduct Ο ; Fβ = Ξ» f β projβ f , mkIsHom Ξ»{o a} β compatible (projβ f) {ΞΉ Ο o} {a β ΞΊ Ο o} ; F-resp-β = id ; identity = Ξ» {π¨} _ β Setoid.refl π»[ reduct Ο π¨ ] ; homomorphism = Ξ» {_} {_} {E} _ β Setoid.refl π»[ reduct Ο E ] }