| OCR Text |
Show line :• line'l'hru2Pts ( pl, p2 ) ; pl :• pt( zl, yl ); p2 :• pt( z2, y2 ); Evaluation begins with the last element on the list and continues In reverse order. 6 Dependency propagation using a topological sort is a two pass scheme which executes in O(n) time where n is the number of nodes which need to be recof11)uted. The first pass produces the ordering of the nodes, the second pass actually recomputes the nodes. Dependencies are a natural, convenient and efficient way to if11)1ement automatic model maintenance. 1.5 Constraint Based Model Maintenance. A constraint is the statement of a relation among a set of objects which should be true. An example constraint in figure 2 is a + b = c where a := 2, b := 3 and c :: 5. : --r-+-.....).,____..c Figure 2: A Single Constraint. A constraint is satisfied if the relation between the constrained objects is true, or unsatisfied if the relation is false. In figure 2, the constraint is initially satisfied. If a is set to 3 then the relation among a, b and c is false and the constraint is unsatisfied. In a constraint based modeling system a constraint fires to satisfy itseH. A constraint fires by modifying the values of some subset of its related quantities which will make its relation true once more. In this case, it may fire in one of two ways, by setting b :: 2 or c := 6. Even in a simple case such as this, there is often no unique way for a constraint to fire. The important difference between firing a constraint and propagating a dependency is |