diff options
author | Tim King <taking@cs.nyu.edu> | 2012-11-12 23:50:29 +0000 |
---|---|---|
committer | Tim King <taking@cs.nyu.edu> | 2012-11-12 23:50:29 +0000 |
commit | 79b80442e5df070fe838de3fe4c09b235f6bddf5 (patch) | |
tree | 7aed459a84a1ab94b7a6e90f2d308cd24488430b /src/theory/arith/theory_arith.cpp | |
parent | 8c325a4bf6888e33fb8fdc1e071a8aab4aa20b6f (diff) |
Improved error reporting for improperly using non-linear division in linear arithmetic.
Diffstat (limited to 'src/theory/arith/theory_arith.cpp')
-rw-r--r-- | src/theory/arith/theory_arith.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/theory/arith/theory_arith.cpp b/src/theory/arith/theory_arith.cpp index e23262137..1d89c02d4 100644 --- a/src/theory/arith/theory_arith.cpp +++ b/src/theory/arith/theory_arith.cpp @@ -1134,7 +1134,9 @@ void TheoryArith::preRegisterTerm(TNode n) { ArithVar TheoryArith::requestArithVar(TNode x, bool slack){ //TODO : The VarList trick is good enough? Assert(isLeaf(x) || VarList::isMember(x) || x.getKind() == PLUS); - Assert(!Variable::isDivMember(x) || !getLogicInfo().isLinear()); + if(getLogicInfo().isLinear() && Variable::isDivMember(x)){ + throw LogicException("Non-linear term was asserted to arithmetic in a linear logic."); + } Assert(!d_arithvarNodeMap.hasArithVar(x)); Assert(x.getType().isReal());// real or integer |