Contractual dependencies between points

Contractual dependencies need to be  mapped which will control the way some of the points operate.

Points

For example, points 2 & 3 have a contract with each other wherein when one of them is thrown, the other must match it. Points 2 & 3 are either both straight or both branched.

Points 5 and 6 are contractually dependent as well. When point 5 is branched left, point 6 must also be branched left. When point 5 is straight through or branched right, point 6 must always be straight.

Points 1 and 4 have no immediate dependencies because there is enough track between them and the next point for a train to wait until the all clear signal is given.

For this section of track there are 7 servos required (point 5 uses two), however since 2&3 and 5&6 are dependant, there will be 5 controllers used here.