Fix a language, and let and be two -structures. For symbols from the language, such as a constant , let be the interpretation of in and similarly for the other classes of symbols (functions and relations).
A map from the domain of to the domain of is a homomorphism if the following conditions hold:
for every constant symbol , we have .
for every n-ary function symbol and , we have ,
for every n-ary relation symbol and we have
If in addition, the map is injective and the third condition is modified to read:
for every n-ary relation symbol and we have
then the map is an embedding (of into ).
Equivalent definitions of homomorphism and embedding are::