Core (graph theory)
In the mathematical field of graph theory, a core is a notion that describes behavior of a graph with respect to graph homomorphisms.

Definition 
Graph  is a core if every homomorphism  is an isomorphism, that is it is a bijection of vertices of .

A core of a graph  is a graph  such that
 There exists a homomorphism from  to ,
 there exists a homomorphism from  to , and
  is minimal with this property.

Two graphs are said to be homomorphism equivalent or hom-equivalent if they have isomorphic cores.

Examples 
 Any complete graph is a core.
 A cycle of odd length is its own core.
 Every two cycles of even length, and more generally every two bipartite graphs are hom-equivalent. The core of each of these graphs is the two-vertex complete graph K2.

Properties 
Every 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  and  then the graphs  and  are necessarily homomorphically equivalent.

Computational complexity
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) .

References
 Godsil, Chris, and Royle, Gordon.  Algebraic Graph Theory.  Graduate Texts in Mathematics, Vol. 207.  Springer-Verlag, New York, 2001.  Chapter 6 section 2.
.
.

Graph theory objects