component d {
  component c {
    bool f = !f : false;
  }
  component b {
    int j = 1 + if( f, 1, 2 );
    component a {
      h = g + j;
      component k {
	z = z % 3 + 1 : 0;
	f; /* constraint */
      }
    } 
  }
  g = .95 * g : 10000;
  g >= 9000;
  g >= 8000;
  g >= 7000;
}

a = b : 0;
b = c : 1;
c = a : 2;

/* 
tag 4 :: component:"d" - active {
    component:"d.b" - active {
        component:"d.b.a" - active {
            real element d.b.a.h = ( real )( d.g + d.b.j ) : 9502 - active
            component:"d.b.a.k" - active {
                real element d.b.a.k.z = old d.b.a.k.z % 3 + 1 : 1 - active
            }
        }
        int element d.b.j = ( int )( 1 + if( d.c.f, 1, 2 ) ) : 2 - active
    }
    component:"d.c" - active {
        boolean element d.c.f = !old d.c.f : true - active
    }
    real element d.g = 0.95 * old d.g : 9500 - active
}
*/