| OCR Text |
Show 51 6.2.6 GroupConstralnts. GroupConstralnts assumes that some set of constraints (constraintlist) need to be regrouped and some set of objects (rootobjects) have been added to the model and/or need new premise_of sets. Constraintlist is a list of new constraints, and constraints which were attached to a deleted constraint. Rootobjects is a list of objeds which were either added to model, or they had their list of prerequisite or dependents change. The second case occurs when the derivation of an object in the model changes. In that case the list of prerequisite objects used to derive an object may be different from those originally used to derive the object. Objects which are no longer prerequisites of the object may need new premise_of sets. The constraints are grouped into connected components. Each constraint in a component is labeled with a constraint group identifier. The identifier is one of the constraints In the group. Sometimes, as when two constraint groups are merged into a single group, some of the constraints will retain their previous label and others will be relabeled. In all cases, the objects constrained by relabeled constraints need new premise_of sets. These objects are added to the rootobjects. The prerequisites of the objects in rootlist require new premise_of sets. The objects In rootobjects and their prerequisites are ordered using with a topological sort and the premise_of sets are computed in topological order. Not all of the objects in rootobjects are roots of the DAG, such as objects with new derivations, as described above. ComputePremlseOfCount and PropagatePremlses handle this correctly. Finally, all of the constraint groups which constrain objects with modified premise_of sets must recompute their list of dependent constraint groups. Producing the list of dependent groups is in fact the purpose of the premise_of set. GroupCOnstralnts is: |