fact: Record AlgHom {S : OpSignature} (A : OpAlgebra S) (B : OpAlgebra S) := { map :> A → B ; op_commute : ∀ (o : operation S) (args : arity o → A), map (op A o args) = op B o (fun x => map (args x)) }.
imports: Category.Lib Category.Theory.Category Category.Structure.Terminal Category.Structure.Initial Category.Structure.Cartesian