Полагаю, это то, что вы хотите написать:
testif(X,Y) :-
X >= 6 ->
(writeln('X>= 6'), Y>=3 -> writeln('X >=6 and Y>=3'); writeln('X >=6 and Y<=3')) ;
writeln('X<6'),
writeln('Test over').
test(X,Y):-
testif(X,Y).
;
означает or
и ,
означает and
в Прологе, я думаю, вам следует заключить их в скобки, чтобы убедиться, что значения предложений соответствуют вашим ожиданиям.