From 902cd5c3eadf8deb52a25bbfe199a9dacdb2b12b Mon Sep 17 00:00:00 2001 From: notoria Date: Mon, 8 Jan 2024 21:50:02 +0100 Subject: [PATCH] Special case for `(^)/2` The only solutions for `Z #= X^Z` are `X = Z, X in -1\/1`. Also helps avoid big numbers. --- src/lib/clpz.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/clpz.pl b/src/lib/clpz.pl index 8c21a6e92..573094704 100644 --- a/src/lib/clpz.pl +++ b/src/lib/clpz.pl @@ -5454,6 +5454,7 @@ morph_into_propagator(MState, [Y,Z], reified_eq(1,Y,1,0,[],Z), Morph) ; Y == 0 -> kill(MState), Z = 1 ; Y == 1 -> kill(MState), Z = X + ; Y == Z -> kill(MState), X = Y, queue_goal(X in -1\/1) ; nonvar(X) -> ( nonvar(Y) -> ( Y >= 0 -> true ; X =:= -1 ),