2 * File: ordertransform.h
5 * Created on August 28, 2017, 10:35 AM
8 #ifndef ORDERTRANSFORM_H
9 #define ORDERTRANSFORM_H
10 #include "classlist.h"
11 #include "transform.h"
14 class DecomposeOrderTransform : public Transform {
16 DecomposeOrderTransform(CSolver *_solver);
17 ~DecomposeOrderTransform();
22 bool isMustBeTrueNode(OrderNode *node);
23 void bypassMustBeTrueNode(OrderGraph *graph, OrderNode *node, DecomposeOrderResolver *dor);
24 void decomposeOrder(Order *currOrder, OrderGraph *currGraph, DecomposeOrderResolver *dor);
25 void removeMustBeTrueNodes(OrderGraph *graph, DecomposeOrderResolver *dor);
26 void mustEdgePrune(OrderGraph *graph, DecomposeOrderResolver *dor);
27 void attemptNodeMerge(OrderGraph *graph, OrderNode *node, DecomposeOrderResolver *dor);
28 void mergeNodes(OrderGraph *graph, OrderNode *node, OrderEdge *edge, OrderNode *dstnode, DecomposeOrderResolver *dor);
33 #endif/* ORDERTRANSFORM_H */