#include "integerencodingrecord.h"
#include "integerencorderresolver.h"
#include "tunable.h"
+#include "polarityassignment.h"
IntegerEncodingTransform::IntegerEncodingTransform(CSolver *_solver)
: Transform(_solver)
}
void IntegerEncodingTransform::doTransform() {
+ if(solver->isUnSAT()){
+ return;
+ }
HashsetOrder *orders = solver->getActiveOrders()->copy();
SetIteratorOrder *orderit = orders->iterator();
while (orderit->hasNext()) {
//getting two elements and using LT predicate ...
Element *elem1 = ierec->getOrderIntegerElement(solver, boolOrder->first);
Element *elem2 = ierec->getOrderIntegerElement(solver, boolOrder->second);
- Set *sarray[] = {ierec->getSecondarySet(), ierec->getSecondarySet()};
- Predicate *predicate = solver->createPredicateOperator(SATC_LT, sarray, 2);
+ Predicate *predicate = solver->createPredicateOperator(SATC_LT);
Element *parray[] = {elem1, elem2};
BooleanEdge boolean = solver->applyPredicate(predicate, parray, 2);
+ updateEdgePolarity(boolean, boolOrder);
solver->replaceBooleanWithBoolean(boolOrder, boolean);
}