Constraints are defined in view of a program implementation. Constraints
check program state or variables to maintain data consistency. A
constraint component determines a constraint's scope and variables upon
which a constraint depends. Program flow is altered so constraints are
checked whenever a variable upon which a constraint depends is updated.
Optionally, program flow is altered dynamically to re-establish
constraints whenever a variable upon which a constraint depends is
updated. Re-establishing constraints provides efficiency, since a program
flow is altered for a minimum cost based on a present evolving minimum
set of active constraint-variable relationships.