7 void repairconstraint(Constraint *c, processobject *po, Hashtable *env);
8 Action * findrepairaction(CoercePredicate *cp);
9 Action * findbreakaction(CoercePredicate *cp);
10 bool analyzetermination();
14 void outputgraph(WorkSet *removededges, WorkRelation *wr, char *filename);
15 void repaireleexpr(Constraint *c, processobject *po, Elementexpr *ee, Hashtable *env);
16 void buildmap(WorkRelation *wr);
17 void checkpredicate(Action *repair,WorkRelation *wr, Constraint *c,CoercePredicate *cp);
18 bool checkforcycles(WorkSet *removededges, WorkRelation *wr);
19 bool checkcycles(CoerceSentence *cs,WorkSet *removededges, WorkSet *searchset,WorkRelation *wr);
20 bool breakcycles(WorkSet *removeedge, int number, WorkSet *cyclelinks, WorkRelation *wr);
21 void detectcycles(CoerceSentence *cs,WorkSet *searchset,WorkSet *cycleset, WorkRelation *wr);
22 WorkSet * searchcycles(WorkRelation *wr);
25 Action ** repairactions; // the available repair actions
28 WorkSet *removedsentences;