Homomorphic equivalence

In the mathematics of graph theory, two graphs, G and H, are called homomorphically equivalent if there exists a graph homomorphism $$f\colon G\to H$$ and a graph homomorphism $$g\colon H\to G$$. An example usage of this notion is that any two cores of a graph are homomorphically equivalent.

Homomorphic equivalence also comes up in the theory of databases. Given a database schema, two instances I and J on it are called homomorphically equivalent if there exists an instance homomorphism $$f\colon I\to J$$ and an instance homomorphism $$g\colon J\to I$$.

Deciding whether two graphs are homomorphically equivalent is NP-complete.

In fact for any category C, one can define homomorphic equivalence. It is used in the theory of accessible categories, where "weak universality" is the best one can hope for in terms of injectivity classes; see