summaryrefslogtreecommitdiff
path: root/src/prop/sat.cpp
diff options
context:
space:
mode:
authorDejan Jovanović <dejan.jovanovic@gmail.com>2011-08-17 15:20:19 +0000
committerDejan Jovanović <dejan.jovanovic@gmail.com>2011-08-17 15:20:19 +0000
commit32e1d3558f17d12f2631175776209a5f8cabbdd9 (patch)
treeebc20658d5375b17f13b5c83d3dc7ee078029f96 /src/prop/sat.cpp
parent41dc1b3685b9258660dab571f8f8b56deb0fb095 (diff)
new implementation of lemmas on demand
comparison <http://goedel.cims.nyu.edu/regress-results/compare_jobs.php?job_id=2673&&p=5&reference_id=2637>
Diffstat (limited to 'src/prop/sat.cpp')
-rw-r--r--src/prop/sat.cpp29
1 files changed, 2 insertions, 27 deletions
diff --git a/src/prop/sat.cpp b/src/prop/sat.cpp
index f34699e2b..62558cac1 100644
--- a/src/prop/sat.cpp
+++ b/src/prop/sat.cpp
@@ -27,33 +27,8 @@
namespace CVC4 {
namespace prop {
-void SatSolver::theoryCheck(theory::Theory::Effort effort, SatClause& conflict) {
- Assert(conflict.size() == 0);
- // Try theory propagation
- bool ok = d_theoryEngine->check(effort);
- // If in conflict construct the conflict clause
- if (!ok) {
- // We have a conflict, get it
- Node conflictNode = d_theoryEngine->getConflict();
- Debug("prop") << "SatSolver::theoryCheck() => conflict: " << conflictNode << std::endl;
- if(conflictNode.getKind() == kind::AND) {
- // Go through the literals and construct the conflict clause
- Node::const_iterator literal_it = conflictNode.begin();
- Node::const_iterator literal_end = conflictNode.end();
- while (literal_it != literal_end) {
- // Get the literal corresponding to the node
- SatLiteral l = d_cnfStream->getLiteral(*literal_it);
- // Add the negation to the conflict clause and continue
- conflict.push(~l);
- literal_it ++;
- }
- } else { // unit conflict
- // Get the literal corresponding to the node
- SatLiteral l = d_cnfStream->getLiteral(conflictNode);
- // construct the unit conflict clause
- conflict.push(~l);
- }
- }
+void SatSolver::theoryCheck(theory::Theory::Effort effort) {
+ d_theoryEngine->check(effort);
}
void SatSolver::theoryPropagate(std::vector<SatLiteral>& output) {
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback