Graph C {\displaystyle C} is a core if every homomorphism f : C → C {\displaystyle f:C\to C} is an isomorphism, that is it is a bijection of vertices of C {\displaystyle C} .
A core of a graph G {\displaystyle G} is a graph C {\displaystyle C} such that
Two graphs are said to be homomorphism equivalent or hom-equivalent if they have isomorphic cores.
Every finite graph has a core, which is determined uniquely, up to isomorphism. The core of a graph G is always an induced subgraph of G. If G → H {\displaystyle G\to H} and H → G {\displaystyle H\to G} then the graphs G {\displaystyle G} and H {\displaystyle H} are necessarily homomorphically equivalent.
It is NP-complete to test whether a graph has a homomorphism to a proper subgraph, and co-NP-complete to test whether a graph is its own core (i.e. whether no such homomorphism exists) (Hell & Nešetřil 1992).