diff options
author | Dejan Jovanović <dejan.jovanovic@gmail.com> | 2011-07-09 01:38:48 +0000 |
---|---|---|
committer | Dejan Jovanović <dejan.jovanovic@gmail.com> | 2011-07-09 01:38:48 +0000 |
commit | 878f71272c06cf605fb3d2f4e66eaea55aa32127 (patch) | |
tree | 162ac5a74e14bae02ae74cec8f621174c22323e2 /src/prop/prop_engine.cpp | |
parent | 86f2a3e111137fecaf942050dfd7ade0c881d6eb (diff) |
surprize surprize
Diffstat (limited to 'src/prop/prop_engine.cpp')
-rw-r--r-- | src/prop/prop_engine.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/prop/prop_engine.cpp b/src/prop/prop_engine.cpp index 7e335a21b..cbec9faea 100644 --- a/src/prop/prop_engine.cpp +++ b/src/prop/prop_engine.cpp @@ -154,6 +154,24 @@ Node PropEngine::getValue(TNode node) { } } +bool PropEngine::hasValue(TNode node, bool& value) { + Assert(node.getType().isBoolean()); + SatLiteral lit = d_cnfStream->getLiteral(node); + + SatLiteralValue v = d_satSolver->value(lit); + if(v == l_True) { + value = true; + return true; + } else if(v == l_False) { + value = false; + return true; + } else { + Assert(v == l_Undef); + return false; + } +} + + void PropEngine::push() { Assert(!d_inCheckSat, "Sat solver in solve()!"); d_satSolver->push(); |