summaryrefslogtreecommitdiff
path: root/src/prop
diff options
context:
space:
mode:
authorDejan Jovanović <dejan.jovanovic@gmail.com>2011-07-05 16:21:50 +0000
committerDejan Jovanović <dejan.jovanovic@gmail.com>2011-07-05 16:21:50 +0000
commit7342d1ca87397f3d5beb2c04b819243303e69a7c (patch)
tree9e166f1884275be7d4b33b13b8bcfe9418e61033 /src/prop
parentaf25c3f8498198dd6dd114c3b4ef39af54611e1e (diff)
updated preprocessing and rewriting input equalities into inequalities for LRA
Diffstat (limited to 'src/prop')
-rw-r--r--src/prop/cnf_stream.cpp13
-rw-r--r--src/prop/prop_engine.cpp3
2 files changed, 8 insertions, 8 deletions
diff --git a/src/prop/cnf_stream.cpp b/src/prop/cnf_stream.cpp
index 6732b09bc..0967f54ff 100644
--- a/src/prop/cnf_stream.cpp
+++ b/src/prop/cnf_stream.cpp
@@ -121,15 +121,16 @@ SatLiteral CnfStream::newLiteral(TNode node, bool theoryLiteral) {
d_nodeCache[~lit] = node.notNode();
}
+ // If a theory literal, we pre-register it
+ if (theoryLiteral) {
+ bool backup = d_assertingLemma;
+ d_registrar.preRegister(node);
+ d_assertingLemma = backup;
+ }
+
// Here, you can have it
Debug("cnf") << "newLiteral(" << node << ") => " << lit << endl;
- // have to keep track of this, because with the call to preRegister(),
- // the cnf stream is re-entrant!
- bool wasAssertingLemma = d_assertingLemma;
- d_registrar.preRegister(node);
- d_assertingLemma = wasAssertingLemma;
-
return lit;
}
diff --git a/src/prop/prop_engine.cpp b/src/prop/prop_engine.cpp
index 63228a803..7e335a21b 100644
--- a/src/prop/prop_engine.cpp
+++ b/src/prop/prop_engine.cpp
@@ -81,7 +81,7 @@ void PropEngine::assertFormula(TNode node) {
Assert(!d_inCheckSat, "Sat solver in solve()!");
Debug("prop") << "assertFormula(" << node << ")" << endl;
// Assert as non-removable
- d_cnfStream->convertAndAssert(node, false, false);
+ d_cnfStream->convertAndAssert(d_theoryEngine->preprocess(node), false, false);
}
void PropEngine::assertLemma(TNode node) {
@@ -93,7 +93,6 @@ void PropEngine::assertLemma(TNode node) {
d_cnfStream->convertAndAssert(node, true, false);
}
-
void PropEngine::printSatisfyingAssignment(){
const CnfStream::TranslationCache& transCache =
d_cnfStream->getTranslationCache();
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback