channel CIO { out force(f, action(x)) == x out time(t, action(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(u)) == u out position(p, update3(u)) == p + 0.01 * u }