In reply to Etrx91:
The terms “solved first” or “solve before” can be misleading. A solution space representing all possible solutions that satisfy the constraints gets created first. Then values are picked for each random variable in the required order.
In your example, brc == 0 is not part of the solution space because constraint CC can never be satisfied regardless of whether brc is declared rand or randc. br ==0 is always a valid value regardless of which valid value is picked for brc.
In the case when both br and brc are declared randc, then you can have a failure with the following scenario
br brc brc>br
0 1 1
1 3 1
2 2 0 // fails because 2 is the only available value for brc