constraints empty_carries/1, request_consistent/1. empty_carries([F|Z]) <=> ( F=empty(B) -> B::1..3, not_holds_all(carries(B,_,_),Z) ; F=carries(B,R1,R2) -> B::1..3, [R1,R2]::1..6, not_holds(empty(B),Z), not_holds_all(carries(B,_,_),Z) ; true ), empty_carries(Z). request_consistent([F|Z]) <=> ( F=request(R1,R2) -> [R1,R2]::1..6 ; true ), request_consistent(Z).