Can we have a unidirectional constraint implementation

There are two fields

cmd = {A, B, C, D} 
size = {size_8, size_16, size_32, size_64}

The constraints are as follows

cmd            rsize
--------------------
A             size_8/size_16/size_32/size_64 (Any size) 
B             size_64
C             size_8/size_16/size_32/size_64 (Any size)      
D             size_8/size_16/size_32/size_64 (Any size)

The expectation is to control both cmd and rsize through distribution of weights.

constraint cmd_const {
  cmd dist {
            A := weight_A
            ...
            }
  size dist {
            size_8 := weight_size_8
            ...      
            }

Now, if below constraint is added,

   constraint {
      (cmd == B) -> (size == size_64)
   }

As I understand, this leads to having the size as “size_64” only for “cmd_B” and not for others, because of the bi-directional nature of the implication

How can we add a constraint such that we can get other legal combinations of {cmd_A, size_64}, [cmd_C, size_64} etc…

}

In reply to Chinky:

The implication operator is not “bidirectional” in the sense that the implication is still satified when size == size_64 and cmd != B. The constraint is bidirectional in the choice of the random value for size affects the choice for cmd and vice versa. A better choice of words might be “simultaneously”.

What this means is if you pick a distribution for size, or constrain it such that choosing size==size_64 occurs only 1% of the time, there’s no way you could choose cmd==B more than 1% of the time as well.

In reply to dave_59:

Thanks Dave! I got what you are saying.

To be more clear, if the weights are such that

Weightage :

cmd               size 
------------------------------
cmd_B =90%      size_64 == 10%
cmd_A =10%      size_others = 90%

The combinations can be

{cmd_B, size_64} <= 10% of total weight,

But also, since the cmd_A is only chosen 10% of the time,

{cmd_A, size_64/size_others} ~= 10% of total weight.

Therefore, does this mean the above combination of legal values will happen almost in equal numbers . i.e 50% of the total number of legal combinations.

In reply to Chinky:

The LRM does not spell out how competing distribution play out, but the resulting probability will come out around 50/50. cmd_B comes out slightly less because there are few valid solutions available.