Next: Cannot bind external
port to non-external
port, Previous: Cannot bind wildcard to requires
port, Up: Well-formedness – System [Contents][Index]
A system may instantiate an arbitrary set of components, which in turn can be systems themselves. It is not allowed to have a self-instance neither directly nor indirectly, since that would lead to an infinite tree of components.
In the example below five systems are defined that have mutual
instances. System c1
instantiates c3
, which
instantiates c4
, which instantiates c1
.
component c1 { system { c2 ci2; c3 ci3; } } component c2 { system { c5 ci5; } } component c3 { system { c4 ci4; c2 ci2; } } component c4 { system { c1 ci1; } } component c5 { system { } // an empty system }
This results in the following error messages:
recursive-system.dzn:1:1: error: system composition of `c1' is recursive recursive-system.dzn:14:1: error: system composition of `c3' is recursive recursive-system.dzn:21:1: error: system composition of `c4' is recursive