// This example has been taken from [Hack06] and has to be
// compared with Hack06.c. Both programs demonstrate that
// using SSA form may reduce the number of required colors.
bool f;

thread Hack01SSA {
    nat a,b,c,d1,d2,d3,e,x,z,m;
    a = 1;
    if(f) {
       b = a + a;
       c = a + 1;
       d1 = b + 1;
       x = c;
       d3 = d1;
    } else {
       e = 1;
       d2 = a + 1;
       z = e;
       d3 = d2;
    }
    m = d3;
    //return m;
}