Unsharing variables
Functionality by programming task » Programming models » Using integer variables and constraints

Unsharing replaces multiple occurences of the same variable by fresh yet equal (enforced through propagators for equality) variables: after unsharing a variable appears at most once. Note that this is only done for not yet assigned variables (as all propagators can handle multiple occurences of the same variable provided it is already assigned).

Unsharing is useful for constraints that only accept variable arrays without multiple occurences of the same variable, for example extensional.