From: Markus Triska Date: Mon, 9 Oct 2023 20:59:51 +0000 (+0200) Subject: ENHANCED: use (+)/2 to express unary minus X-Git-Tag: remove~39^2~1 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=8329d222cbbc1b90e3f57451e7a9c6faf90cedad;p=scryer-prolog.git ENHANCED: use (+)/2 to express unary minus This makes answers a bit shorter and more readable. Example: ?- X #= -Y. clpz:(X+Y#=0). This addresses #2058. --- diff --git a/src/lib/clpz.pl b/src/lib/clpz.pl index d4e59d45..5e73a14f 100644 --- a/src/lib/clpz.pl +++ b/src/lib/clpz.pl @@ -2566,7 +2566,7 @@ parse_clpz(E, R, g(power_var_num(E, V, N)) => [p(pexp(V, N, R))], m(A*B) => [p(ptimes(A, B, R))], m(A-B) => [p(pplus(R,B,A))], - m(-A) => [p(ptimes(-1,A,R))], + m(-A) => [p(pplus(A,R,0))], m(max(A,B)) => [g(A #=< #R), g(B #=< R), p(pmax(A, B, R))], m(min(A,B)) => [g(A #>= #R), g(B #>= R), p(pmin(A, B, R))], m(A mod B) => [g(B #\= 0), p(pmod(A, B, R))], @@ -2824,7 +2824,7 @@ matches([ m(var(X) #= var(Y)+var(Z)) => [p(pplus(Y,Z,X))], m(var(X) #= var(Y)-var(Z)) => [p(pplus(X,Z,Y))], m(var(X) #= var(Y)*var(Z)) => [p(ptimes(Y,Z,X))], - m(var(X) #= -var(Z)) => [p(ptimes(-1, Z, X))], + m(var(X) #= -var(Z)) => [p(pplus(X,Z,0))], m_c(any(X) #= any(Y), left_right_linsum_const(X, Y, Cs, Vs, S)) => [g(scalar_product_(#=, Cs, Vs, S))], m_c(var(X) #= abs(var(Y)) + any(V0), X == Y) => [d(V0,V),p(x_eq_abs_plus_v(X,V))], @@ -3560,7 +3560,7 @@ parse_reified(E, R, D, m(A+B) => [d(D), p(pplus(A,B,R)), a(A,B,R)], m(A*B) => [d(D), p(ptimes(A,B,R)), a(A,B,R)], m(A-B) => [d(D), p(pplus(R,B,A)), a(A,B,R)], - m(-A) => [d(D), p(ptimes(-1,A,R)), a(R)], + m(-A) => [d(D), p(pplus(A,R,0)), a(R)], m(max(A,B)) => [d(D), p(pgeq(R, A)), p(pgeq(R, B)), p(pmax(A,B,R)), a(A,B,R)], m(min(A,B)) => [d(D), p(pgeq(A, R)), p(pgeq(B, R)), p(pmin(A,B,R)), a(A,B,R)], m(abs(A)) => [d(D), g(#R#>=0), p(pabs(A, R)), a(A,R)],