>>595
P(X)の定義域がX>=0であるなら最初に表明してしまえばいい。

P(X) :- X < 0, !, fail.
P(X) :- a(X), b(X), c(X), ..., z(X).