Before any exploration, all constraints are automatically distributed to the appropriate Fragment Generators. The appropriate FG for a given constraint is the lowest level FG that satisfy the following condition: all residues needed by the constraint are part of the FG's fragment. This ensures that a constraint will be checked as soon as possible, in order to eliminate subsets of the exploration space that are as large as possible. This means that when a FG generates a sub-structure, it first checks all constraints that are specific to that fragment. If all constraints are satisfied, the structure is returned. If not, the next sub-structure is constructed and so on.
In the MC-SYM object-oriented approach, constraints are abstract objects. This implies that we can define algorithms using abstract constraints: we only need to be able to ask a constraint if it is satisfied or not and each constraint has its personnal manner to be so.
The available constraints and the way to use them are depicted in Section 4 below.