diff options
Diffstat (limited to 'src/theory/bv/bv_subtheory_bitblast.h')
-rw-r--r-- | src/theory/bv/bv_subtheory_bitblast.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/theory/bv/bv_subtheory_bitblast.h b/src/theory/bv/bv_subtheory_bitblast.h new file mode 100644 index 000000000..0a8f046b7 --- /dev/null +++ b/src/theory/bv/bv_subtheory_bitblast.h @@ -0,0 +1,52 @@ +/********************* */ +/*! \file bv_subtheory_eq_bitblast.h + ** \verbatim + ** Original author: lianah + ** Major contributors: dejan + ** Minor contributors (to current version): none + ** This file is part of the CVC4 prototype. + ** Copyright (c) 2009, 2010, 2011 The Analysis of Computer Systems Group (ACSys) + ** Courant Institute of Mathematical Sciences + ** New York University + ** See the file COPYING in the top-level source directory for licensing + ** information.\endverbatim + ** + ** \brief Algebraic solver. + ** + ** Algebraic solver. + **/ + +#pragma once + +#include "theory/bv/bv_subtheory.h" + +namespace CVC4 { +namespace theory { +namespace bv { + +class Bitblaster; + +/** + * 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); +}; + +} +} +} |