suppose
Structure : (M : Type l -> Type l) -> Type (lsuc l)
Structure M = Σ (Type l) (λ A -> M A)
I want
homomorphism :
{M : Type l -> Type l} -> (sA sB : Structure M)
(f : sA.fst -> sB.fst) -> Type l
such that homomorphism (A , MA) (B , MB) f would represent the proposition that f is a function from A to B that preserves the extra structure (M) (I dont know how to formally define the notion of extra structure and preservation)
for example, if M A = A -> A -> A, then Structure M would the type of all Magmas and homomorphism (A , _*A_) (B , _*B_) f would represent the proposition that f is a magma homomorphism from A to B
The Wikipedia page on homomorphisms formally defines homomorphisms only when M A consists of functions of A, I feel like this is too restrictive.
That being said, I feel like that is not possible without restricting Structure A somewhat
So really, I am asking two questions:
- What are the suitable and satisfactory restrictions I can place on
Structure A? - What should the definition of
homomorphismbe?
by satisfactory I want to disallow solutions I think cheat (One such dissatisfactory solution is requiring the existence of a category with Structure M as the type of objects, as it means that we have to manually give the type of morphisms (which will be the type of homomorphisms))
Assuming the univalence axiom, the type Id (Structure M) (A , MA) (B , MB) is almost what I need, as from it I can extract a function f : A -> B that is a bijective homomorphism.
-
It's possible to define homomorphisms for a broad class of structures, for example the one used in "Internalizing Representation Independence with Univalence" (see here). See also Jacob Neumann's PhD thesis for a synthetic approach to this which generalises the structure identity principle to a "structure morphism principle" so that homomorphisms are derived automatically.Naïm Camille Favier– Naïm Camille Favier2025年12月20日 19:27:36 +00:00Commented Dec 20, 2025 at 19:27