From: Markus Triska Date: Thu, 3 Jun 2021 20:56:08 +0000 (+0200) Subject: check for correct domain of integers in reifiable expressions also in the expanded... X-Git-Tag: v0.9.0~55^2 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=066f7408192609df43ce6a90f5bf9bc4e33e666f;p=scryer-prolog.git check for correct domain of integers in reifiable expressions also in the expanded code This is to preserve domain errors instead of failing silently. Example: ?- 5 #> 3 #<==> 2. %@ caught: error(domain_error(clpz_reifiable_expression,2),unknown(2)-1) --- diff --git a/src/lib/clpz.pl b/src/lib/clpz.pl index ee4174b3..6be3a110 100644 --- a/src/lib/clpz.pl +++ b/src/lib/clpz.pl @@ -2982,7 +2982,7 @@ clpz_expansion(A #<==> B, Reif) :- phrase(expr_conds(Y0, Y), Cs), list_goal(Cs0, Cond), Expr =.. [F,X,Y], - expansion_simpler(( Cond, ( var(B) ; integer(B) ) -> + expansion_simpler(( Cond, ( var(B) ; integer(B), clpz:between(0, 1, B) ) -> ( Expr -> B = 1 ; B = 0