// this program demonstrates how a given graph coloring problem
// can be converted in linear time to a register assignment problem
nat a,b,c,d,e;

thread Coloring {
    a = 0;
    b = 1;
    a = a + b;
    a = 0;
    e = 1;
    a = a + e;
    b = 0;
    e = 1;
    b = b + e;
    b = 0;
    c = 1;
    b = b + c;
    c = 0;
    d = 1;
    c = c + d;
    d = 0;
    e = 1;
    d = d + e;
}