Prolog - diferenças entre corte vermelho e corte verde

Comecei a aprender prólogo e queria deixar tudo mais claro. Eu li que "o corte verde não muda o significado declarativo do programa, enquanto o corte vermelho". Mas, o significado do programa não é realmente puro declarativo (apenas pelo fato de o prólogo realmente voltar atrás para todas as opções).

Aqui está um exemplo:

p(1).
p(2) :- !.
p(3).

foi dito que este é um corte verde. Mas se eu executar isso:

p(X), X =:= 3.

Eu serei "verdadeiro" sem um corte e "falso" com um corte. então, do que sinto falta?

Desde já, obrigado.

questionAnswers(1)

yourAnswerToTheQuestion