?- LP = not(true(LP)).
LP = not(true(LP)).
?- unify_with_occurs_check(LP, not(true(LP))).
false.
unify_with_occurs_check/2 fails, because LP occurs in not(true(LP)), just like it would for whatever(LP) or whatever1(whatever2(LP)).
The not and true are just term names.
You probably want clpb: SWI-Prolog -- Manual