"solve before" construct

In reply to Alex K.:

Wanted to rephrase the question:
bit A;
bit[1:0] B, C, D;

constraint my_cnstr_1 {
(A == 1) → (B == 3); }

constraint my_cnstr_2 {
(A == 0) → (D == 0);}

constraint my_cnstr_3 {
(D == 1) → (C == 0); }

solve A before B;
solve A before C;

A is randomized first.
After that based on the result of A, the values for B and C are chosen randomly.

But how about D? Is it randomized with B and C? Or with A?
my_cnstr_2 and my_cnstr_3 will have a different meaning based on when D is randomized.
Is it up to the simulator?

Thanks,
Alex