### 3.7.173. Open constraint

A constraint from which all its variables are not completely known when the constraint is posted [HoeveRegin06]. In many situations, such as configuration, planning, or scheduling of process dependant activities, the variables of a constraint are not completely known initially when the constraint is posted. Instead, they are revealed during the search process  [Bartak03], [FaltingsMachoGonzalez02], [FaltingsMachoGonzalez05]. In practice, an additional argument of the constraint (a set variable or a set of 0-1 variables) provides the initial set of potential variables (the lower bound in the context of a set variable). In Bartak's model [Bartak03], an open constraint admits a sequence of domain variables ${V}_{1}{V}_{2}\cdots {V}_{m}$ $\left(m\ge 1\right)$ as well as an additional variable $C$ which gives the index of the last variable that effectively belongs to the constraint (i.e., variables ${V}_{C+1},{V}_{C+2},\cdots ,{V}_{m}$ are discarded). This is for instance the case for the $\mathrm{𝚜𝚒𝚣𝚎}_\mathrm{𝚖𝚊𝚡}_\mathrm{𝚜𝚝𝚊𝚛𝚝𝚒𝚗𝚐}_\mathrm{𝚜𝚎𝚚}_\mathrm{𝚊𝚕𝚕𝚍𝚒𝚏𝚏𝚎𝚛𝚎𝚗𝚝}$ constraint.

Within the context of open constraints, the notion of contractibility was introduced in [Maher09c] in order to characterise a global constraint for which any pruning rule that removes a value from one of its variable (or which enforces any type of condition) can be reused in the context of the corresponding open global constraint (i.e., the pruning rule still makes valid deductions in the context of the open case). Intuitively, many global constraints which impose a kind of at most condition are contractible, while this is typically not the case for global constraints which enforce a kind of at least condition.