It is apparently impossible to implement list intersection in pure Prolog (i.e. Horn-clauses only). Implementations of list intersection exist in Prolog, of course,