title: Why atleast a==b constraint not solved for the constraint solvers
body: <p>I have a code that has a constraint </p>
  
  <pre><code>((((a == b) == c) == d) == e)
  </code></pre>
  
  <p>I can understand the values taken by c,d and e. But since <code>a == b</code> is a constraint here, why doesn't the solver solve for <code>a == b</code>? At least a and b should have same values.</p>
  
  <pre><code>module tb;
    class packet;
      rand bit [4:0] a,b,c,d,e;
  
    endclass
  
    initial
    begin
      packet pkt;
      pkt = new();
      if(pkt.randomize() with {pkt.a == pkt.b == pkt.c == pkt.d == pkt.e;})
        $display("a is %h, b is %h, c is %h,d is %h, e is %d \n", pkt.a, pkt.b, pkt.c, pkt.d, pkt.e);
      if(pkt.randomize() with {pkt.a == pkt.b == pkt.c;})
        $display("a is %h, b is %h, c is %h,d is %h \n", pkt.a, pkt.b, pkt.c, pkt.d);
  
    end  
  
  endmodule
  </code></pre>
  
  <p>I get the output as</p>
  
  <pre><code>a is 00, b is 08, c is 1c,d is 00, e is  1 
  
  a is 0d, b is 1d, c is 00,d is 09
  </code></pre>
  
  <p>I can relate the values taken by c,d and e. But, the values a and b I don't understand. </p>