In prolog, is it possible to force a fail? Something like:
check(F,A,[1,2,3]) :- FAIL.
check(F,A,_) : greater_than(F,A).
This may be a bad example, but something along the lines of this.
So if it does a pattern match on F,A,[1,2,3], then we just stop the who unifying process, and return a false.