Skip to content

nosets.mzn flattening error #330

Closed
Closed
@stevenhvtran

Description

@stevenhvtran

Example code that fails on Chuffed 0.10.4 and COIN-BC 2.10/1.17:

set of int: edges = {1, 2, 3};
array[1..3] of set of edges: adj_list = [{3}, {}, {2}];
array[1..3] of var edges: path;

constraint forall(t in 1..3 where t < 3)(
    (path[t + 1] in adj_list[path[t]])
);

solve satisfy;

This same model works on Gecode 6.1.1. The following error output is printed to stdout when run:

MiniZinc: flattening error: 
/home/stran/Dropbox/Uni/FIT2082/Optimised Solver/test.mzn:5:
  in call 'forall'
  in array comprehension expression
    with t = 2
/home/stran/Dropbox/Uni/FIT2082/Optimised Solver/test.mzn:6:
  in binary 'in' operator expression
  in array access
/opt/minizinc/share/minizinc/std//builtins.mzn:2360:
  in if-then-else expression
  in let expression
/opt/minizinc/share/minizinc/std//builtins.mzn:2362:
  in call 'element_t'
/opt/minizinc/share/minizinc/std//builtins.mzn:2344:
  in let expression
/opt/minizinc/share/minizinc/std//builtins.mzn:2347:
  in call 'array_var_set_element_nonshifted'
/opt/minizinc/share/minizinc/std//redefinitions-2.0.2.mzn:45:
  in call 'array_var_set_element'
/opt/minizinc/share/minizinc/std//builtins.mzn:1930:
  in call 'array_set_element'
/opt/minizinc/share/minizinc/std//nosets.mzn:307:
  in let expression
/opt/minizinc/share/minizinc/std//nosets.mzn:314:
  in binary 'subset' operator expression
  cannot find matching declaration

Process finished with non-zero exit code 1

Expected output is:

Compiling test.mzn
Running test.mzn
path = array1d(1..3, [1, 3, 2]);
----------
Finished in 38msec

Issue originally posted here: chuffed/chuffed#47 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions