summaryrefslogtreecommitdiff
path: root/src/theory/bv/bv_subtheory.h
diff options
context:
space:
mode:
authorDejan Jovanović <dejan.jovanovic@gmail.com>2012-05-24 16:03:38 +0000
committerDejan Jovanović <dejan.jovanovic@gmail.com>2012-05-24 16:03:38 +0000
commitdfaba6987ded6afc0d9502b5f85088260a5a2d96 (patch)
tree851fa12468695dce000a0bee3582d571efc88784 /src/theory/bv/bv_subtheory.h
parent13e7de0006e9c34cc715521fc9f1866c25682113 (diff)
Separating the subtheory implementations in the bitvector theory.
Diffstat (limited to 'src/theory/bv/bv_subtheory.h')
-rw-r--r--src/theory/bv/bv_subtheory.h73
1 files changed, 0 insertions, 73 deletions
diff --git a/src/theory/bv/bv_subtheory.h b/src/theory/bv/bv_subtheory.h
index d508976ae..a8813b7aa 100644
--- a/src/theory/bv/bv_subtheory.h
+++ b/src/theory/bv/bv_subtheory.h
@@ -35,7 +35,6 @@ const bool d_useSatPropagation = true;
// forward declaration
class TheoryBV;
-class Bitblaster;
/**
* Abstract base class for bit-vector subtheory solvers
@@ -65,78 +64,6 @@ public:
};
-
-/**
- * BitblastSolver
- */
-class BitblastSolver : public SubtheorySolver {
-
- /** Bitblaster */
- Bitblaster* d_bitblaster;
-
- /** Nodes that still need to be bit-blasted */
- context::CDQueue<TNode> d_bitblastQueue;
-
-public:
- BitblastSolver(context::Context* c, TheoryBV* bv);
- ~BitblastSolver();
-
- void preRegister(TNode node);
- bool addAssertions(const std::vector<TNode>& assertions, Theory::Effort e);
- void explain(TNode literal, std::vector<TNode>& assumptions);
- EqualityStatus getEqualityStatus(TNode a, TNode b);
-};
-
-
-/**
- * EqualitySolver
- */
-class EqualitySolver : public SubtheorySolver {
-
- // NotifyClass: handles call-back from congruence closure module
-
- class NotifyClass : public eq::EqualityEngineNotify {
- TheoryBV* d_bv;
-
- public:
- NotifyClass(TheoryBV* bv): d_bv(bv) {}
- bool eqNotifyTriggerEquality(TNode equality, bool value);
- bool eqNotifyTriggerPredicate(TNode predicate, bool value);
- bool eqNotifyTriggerTermEquality(TheoryId tag, TNode t1, TNode t2, bool value);
- bool eqNotifyConstantTermMerge(TNode t1, TNode t2);
-};
-
-
- /** The notify class for d_equalityEngine */
- NotifyClass d_notify;
-
- /** Equality engine */
- eq::EqualityEngine d_equalityEngine;
-
-public:
-
- EqualitySolver(context::Context* c, TheoryBV* bv);
-
- void preRegister(TNode node);
- bool addAssertions(const std::vector<TNode>& assertions, Theory::Effort e);
- void explain(TNode literal, std::vector<TNode>& assumptions);
- void addSharedTerm(TNode t) {
- d_equalityEngine.addTriggerTerm(t, THEORY_BV);
- }
- EqualityStatus getEqualityStatus(TNode a, TNode b) {
- if (d_equalityEngine.areEqual(a, b)) {
- // The terms are implied to be equal
- return EQUALITY_TRUE;
- }
- if (d_equalityEngine.areDisequal(a, b)) {
- // The terms are implied to be dis-equal
- return EQUALITY_FALSE;
- }
- return EQUALITY_UNKNOWN;
- }
-};
-
-
}
}
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback