Closed informarte closed 3 years ago
Just running this example on a clean MiniZinc installation with Gecode seems to work for me. Your example compiles to:
var bool: c:: output_var;
var bool: d:: output_var;
var bool: e:: output_var;
var bool: x;
var bool: X_INTRODUCED_6_ ::var_is_introduced :: is_defined_var;
var bool: X_INTRODUCED_7_ ::var_is_introduced :: is_defined_var;
var bool: y;
var bool: X_INTRODUCED_12_ ::var_is_introduced :: is_defined_var;
var bool: X_INTRODUCED_13_ ::var_is_introduced :: is_defined_var;
constraint bool_clause([X_INTRODUCED_6_],[c]);
constraint array_bool_or([c,X_INTRODUCED_7_],true);
constraint array_bool_or([c,X_INTRODUCED_12_],true);
constraint bool_clause([X_INTRODUCED_13_],[c]);
constraint bool_eq_reif(x,d,X_INTRODUCED_6_):: defines_var(X_INTRODUCED_6_);
constraint bool_eq_reif(x,e,X_INTRODUCED_7_):: defines_var(X_INTRODUCED_7_);
constraint bool_eq_reif(y,d,X_INTRODUCED_12_):: defines_var(X_INTRODUCED_12_);
constraint bool_eq_reif(y,e,X_INTRODUCED_13_):: defines_var(X_INTRODUCED_13_);
solve satisfy;
And that is solved correctly by Gecode.
It might need to be noted that fzn_if_then_else_var_bool
is not a Gecode primitive. Gecode uses the redefinition in the MiniZinc standard library (it doesn't ship its own fzn_if_then_else_var_bool.mzn
file with a redefinition).
Oops, I am sorry, it seems that I messed up my MiniZinc installation.
Describe the bug
Gecode aborts with the above error when applied to a problem with an expression that translates to
fzn_if_then_else_var_bool
.To Reproduce
if_then_else_var_bool_test.mzn.gz
Gecode and Platform Configuration
Gecode 6.3.0 (as delivered with MiniZinc 2.5.5) on Linux x86_64