In Sections 5.2 and 5.3 we define parameterisable design components, each of which is a set of predicate definitions in which there may be gaps for predicate names; relations; or sometimes entire subsets of predicate definitions. These gaps are filled by constraints attached to the component. In addition, each component may introduce new predicate names for which we need to construct definitions using the application of other parameterisable components. For example a parameterisable component might contain a set of predicates:
with the constraint:
denoting that we must construct a function from X to Y which fills
gap , and that we need to define Q via some other component.
Although the parameterisation mechanisms are domain independent, constraints
are satisfied by referring to problem descriptions which are domain specific.