channel CIO{ out r1(x1:Int, set1(y1:Int)) == y1 out r1(x1, e) == x1 } channel CIO2{ out r2(x2:Int, set2(y2:Int)) == y2 out r2(x2, e) == x2 } channel C1{ in r1(x1, update(x1:Int, y1:Int, x2:Int, y2:Int)) == y1 in r2(x2, update(x1, y1, x2, y2)) == y2 out r3(x3:Int, update(x1, y1, x2, y2)) == x1 + y1 + x2 + y2 }