MiniZinc Documentation - Standard Library

These predicates allow users to mark constraints as e.g. symmetry breaking or redundant, so that solvers can choose to implement them differently.

We cannot easily use annotations for this purpose, since annotations are propagated to all constraints in a decomposition, which may be incorrect for redundant or symmetry breaking constraints in the presence of common subexpression elimination (CSE).

Functions and Predicates
predicate implied_constraint(var bool: b) =
b
(standard decomposition from redefinitions-2.0.2.mzn:7)

Mark b as an implied constraint (synonym for redundant_constraint)

predicate redundant_constraint(var bool: b)

Mark b as a redundant constraint

predicate symmetry_breaking_constraint(var bool: b)

Mark b as a symmetry breaking constraint