diff options
author | Tim King <taking@cs.nyu.edu> | 2011-11-29 21:11:45 +0000 |
---|---|---|
committer | Tim King <taking@cs.nyu.edu> | 2011-11-29 21:11:45 +0000 |
commit | e9198d9b99c6037165362870436b45826674303f (patch) | |
tree | b5e8d01a53d38d353dae7c16351ff9206e1f96c6 /src/theory/theory_engine.cpp | |
parent | 8b202bab8442c927e9ac18a35c71a82444acf63b (diff) |
Merging the branch branches/arithmetic/shared-terms into trunk. Arithmetic now supports propagating equalities when a slack variable corresponding to a difference of shared terms must be 0. Similarly disequalities are propagated when these variables cannot be zero.
Diffstat (limited to 'src/theory/theory_engine.cpp')
-rw-r--r-- | src/theory/theory_engine.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/theory/theory_engine.cpp b/src/theory/theory_engine.cpp index 386b8bbd4..e36d163a4 100644 --- a/src/theory/theory_engine.cpp +++ b/src/theory/theory_engine.cpp @@ -668,6 +668,8 @@ void TheoryEngine::explainEqualities(TheoryId theoryId, TNode literals, NodeBuil TNode atom = literal.getKind() == kind::NOT ? literal[0] : literal; if (atom.getKind() == kind::EQUAL) { explainEquality(theoryId, literal, builder); + } else if(literal.getKind() == kind::AND){ + explainEqualities(theoryId, literal, builder); } else { builder << literal; } |