
<ConsistencyModule:> bool_channeling(?Var, +DomainBools, +Min)

   Channel the domain values of Vars to the 0/1 boolean variables in DomainBools

Arguments
   Var                 A (domain) variable (array notation accepted)
   DomainBools         A collection of N 0/1 (domain) variables or integers
   Min                 An integer

Type
   library(gfd)

Description

    Var is a domain variable whose initial interval is Min..(Min+N),
    and this constraint links the domain values of Var with the N 0/1
    variables in DomainBools such that the i'th variable in DomainBools
    represents the value Min+i, and its value is 0 if the value is not in
    Var's domain, and 1 if Var is assigned the value [Thus, only one variable
    in DomainBools can take the value 1].

    ConsistencyModule is the optional module specification to give the 
    consistency level for the propagation for this constraint: 
    gfd_gac for generalised arc consistency (domain consistency).

    A variant of this constraint, called 'domain_constraint' is in the global 
    constraint catalog. There, instead of having DomainBools and Min, there
    is a collection of Value-Bool pairs, representing a possible domain value
    and its associated 0/1 variable. This constraint is implemented using
    Gecode's channel() constraint (variant with BoolVarArgs and IntVar).



Examples
   
[eclipse 53]: bool_channeling(V, [0,1,1,0,1,0,0], 3).  % fail

[eclipse 54]:  bool_channeling(V, [0,0,1,0,0,0,B], 3).

V = 5
B = 0

[eclipse 55]: bool_channeling(V, [B1,B2,B3,B4,B5], 6), B4 = 0.

V = V{[6 .. 8, 10]}
B1 = B1{[0, 1]}
B2 = B2{[0, 1]}
B3 = B3{[0, 1]}
B4 = 0
B5 = B5{[0, 1]}



See Also
   fd_global : bool_channeling / 3, ic_global : bool_channeling / 3
