[ library(cardinal) | Reference Manual | Alphabetic Index ]
# ?SetVariable `:: ?Domain

Set variable declaration
*SetVariable*
- A variable.
*Domain*
- A set domain with optional cardinality declaration.

## Description

Declare or constrain a set domain variable to have Domain as domain.
Domain may assume 3 forms: Glb..Lub, Glb+Poss or Glb+Poss:Cardinality.

Glb is a ground set denoting the SetVariable's glb. Lub is a ground set
denoting the SetVariable's lub. Poss is a ground set denoting the SetVariable's
poss (lub\glb). Cardinality is the SetVariable's cardinality, which may be
an integer, an FD variable, or an integer domain (list or range).

### Fail Conditions

Fails if SetVariable can not be constrained accordingly.
### Resatisfiable

No.
## Examples

?- S `:: []..[a,b].
?- S `:: []+[a,b].
?- S `:: []+[a,b]:1.
?- S `:: [x]+[a,b]:C.
?- S `:: []+[a,b]:[0,2].
?- S `:: [c]+[a,b,d,e,f,g,h,i,j,k]:[2,4..7].

## See Also

set / 4, sets / 4, cardinality / 2, union_var / 2, minimum / 2, maximum / 2, set_labeling / 1