diff options
author | Kshitij Bansal <kshitij@cs.nyu.edu> | 2012-05-09 05:45:36 +0000 |
---|---|---|
committer | Kshitij Bansal <kshitij@cs.nyu.edu> | 2012-05-09 05:45:36 +0000 |
commit | 6243fba11e0189891acf21de3c6daa072b038e13 (patch) | |
tree | 8265abfa3e583831a972acdf97989930ae9c3592 /src/decision/decision_strategy.h | |
parent | 9f74cfbd847663f80c362cf06bda7e749f0f694b (diff) |
Merge from decision branch (ITE support)
Major changes from last merge
* ITEs supported
* Don't share theory lemmas to DE, only assertions
Should probably be noted that 'make regress' doesn't quite
pass with --decision=justification. Throws off search in couple
of arith benchmarks.
No serious performance changes expected. Keep an eye.
Diffstat (limited to 'src/decision/decision_strategy.h')
-rw-r--r-- | src/decision/decision_strategy.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/decision/decision_strategy.h b/src/decision/decision_strategy.h index 6746b13cc..6ee583ec2 100644 --- a/src/decision/decision_strategy.h +++ b/src/decision/decision_strategy.h @@ -20,6 +20,7 @@ #define __CVC4__DECISION__DECISION_STRATEGY_H #include "prop/sat_solver_types.h" +#include "util/ite_removal.h" namespace CVC4 { @@ -43,11 +44,25 @@ public: virtual prop::SatLiteral getNext(bool&) = 0; - virtual bool needSimplifiedPreITEAssertions() { return false; } + virtual bool needIteSkolemMap() { return false; } virtual void notifyAssertionsAvailable() { return; } }; +class ITEDecisionStrategy : public DecisionStrategy { +public: + ITEDecisionStrategy(DecisionEngine* de, context::Context *c) : + DecisionStrategy(de, c) { + } + + + bool needIteSkolemMap() { return true; } + + virtual void addAssertions(const std::vector<Node> &assertions, + unsigned assertionsEnd, + IteSkolemMap iteSkolemMap) = 0; +}; + }/* decision namespace */ }/* CVC4 namespace */ |