summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/theory/arith/normal_form.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/theory/arith/normal_form.h b/src/theory/arith/normal_form.h
index a182bc3b0..a1a33fed0 100644
--- a/src/theory/arith/normal_form.h
+++ b/src/theory/arith/normal_form.h
@@ -570,10 +570,24 @@ public:
return true;
}else if(n.getKind() == kind::PLUS){
Assert(n.getNumChildren() >= 2);
- for(Node::iterator curr = n.begin(), end = n.end(); curr != end;++curr){
- if(!Monomial::isMember(*curr)){
+ Node::iterator currIter = n.begin(), end = n.end();
+ Node prev = *currIter;
+ if(!Monomial::isMember(prev)){
+ return false;
+ }
+
+ Monomial mprev = Monomial::parseMonomial(prev);
+ ++currIter;
+ for(; currIter != end; ++currIter){
+ Node curr = *currIter;
+ if(!Monomial::isMember(curr)){
+ return false;
+ }
+ Monomial mcurr = Monomial::parseMonomial(curr);
+ if(!(mprev < mcurr)){
return false;
}
+ mprev = mcurr;
}
return true;
} else {
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback