return;
}
Node *n=getNodePtrFromEdge(e);
- if (isNeg)
+ if (isNeg) {
+ //Pretty print things that are equivalent to OR's
+ if (getNodeType(e)==NodeType_AND) {
- printf("or(");
++ model_print("or(");
+ for(uint i=0;i<n->numEdges;i++) {
+ Edge e=n->edges[i];
+ if (i!=0)
- printf(" ");
++ model_print(" ");
+ printCNF(constraintNegate(e));
+ }
- printf(")");
++ model_print(")");
+ return;
+ }
+
- printf("!");
+ model_print("!");
+ }
switch(getNodeType(e)) {
case NodeType_AND:
- printf("and");
+ model_print("and");
break;
case NodeType_ITE:
- printf("ite");
+ model_print("ite");
break;
case NodeType_IFF:
- printf("iff");
+ model_print("iff");
break;
}
- printf("(");
+ model_print("(");
for(uint i=0;i<n->numEdges;i++) {
Edge e=n->edges[i];
if (i!=0)