array_bool_xor.fzn 955 Bytes
% RUNS ON fzn_fd_canon

var bool: x1 :: output_var;
var bool: x2 :: output_var;
var bool: x3 :: output_var;
var bool: x4 :: output_var;

constraint array_bool_xor([true]);

constraint array_bool_xor([false, true]);
constraint array_bool_xor([true, false]);

constraint array_bool_xor([false, false, true]);
constraint array_bool_xor([false, true, false]);
constraint array_bool_xor([true, false, false]);
constraint array_bool_xor([true, true, true]);

constraint array_bool_xor([false, false, false, true]);
constraint array_bool_xor([false, false, true, false]);
constraint array_bool_xor([false, true, false, false]);
constraint array_bool_xor([false, true, true, true]);
constraint array_bool_xor([true, false, false, false]);
constraint array_bool_xor([true, false, true, true]);
constraint array_bool_xor([true, true, false, true]);
constraint array_bool_xor([true, true, true, false]);

constraint array_bool_xor([x1, x2, x3, x4]);

solve satisfy;