This version of circuit/4 uses the native Gecode indexing, which starts from 0. This is different from normal ECLiPSe's indexing, which starts from 1.
This constraint can be embedded in a constraint expression in its functional form (without the last argument).
See circuit/4 for a more detailed description of this predicate.
CostM = []([](0,3,5,7),[](4,0,9,6),[](2,1,0,5),[](-7,8,-2,0)), circuit_g([1,2,3,0], CostM, [C0,C1,C2,C3], C).