Pure Prolog programs that distinguish between the equality and inequality of terms in a clean manner suffer from execution inefficiencies ; even when all terms of relevance
Well for one thing, the name should be more declarative, like equality_truth/2.
equality_truth/2