channel CIO {
out force(f, push(x)) == x
out time(t, push(x)) == t + 0.01
}
channel C1 {
in force(f, update1(y, m)) == y
in mass(m, update1(y, m)) == m
out acceleration(a, update1(y, m)) == y / m
}
channel C2 {
in acceleration(a, update2(z)) == z
out velocity(v, update2(z)) == v + 0.01 * z
}
channel C3 {
in velocity(v, update3(v)) == u
out position(p, update3(v)) == p + 0.01 * v
}