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
}