CBMC
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
qbf_bdd_core.h
Go to the documentation of this file.
1/*******************************************************************\
2
3Module:
4
5Author: CM Wintersteiger
6
7\*******************************************************************/
8
9
10#ifndef CPROVER_SOLVERS_QBF_QBF_BDD_CORE_H
11#define CPROVER_SOLVERS_QBF_QBF_BDD_CORE_H
12
13#include <vector>
14
15
16#include "qdimacs_core.h"
17
18class Cudd; // NOLINT(*)
19class BDD; // NOLINT(*)
20
22{
23protected:
25
26 typedef std::vector<BDD*> model_bddst;
28
29 typedef std::unordered_map<unsigned, exprt> function_cachet;
31
32public:
34 ~qbf_bdd_certificatet(void) override;
35
36 literalt new_variable(void) override;
37
38 tvt l_get(literalt a) const override;
39 const exprt f_get(literalt l) override;
40};
41
42
44{
45private:
46 typedef std::vector<BDD*> bdd_variable_mapt;
48
50
51public:
53 ~qbf_bdd_coret() override;
54
55 literalt new_variable() override;
56
57 void lcnf(const bvt &bv) override;
58 literalt lor(literalt a, literalt b) override;
59 literalt lor(const bvt &bv) override;
60
61 std::string solver_text() const override;
62 resultt prop_solve() override;
63 tvt l_get(literalt a) const override;
64
65 bool is_in_core(literalt l) const override;
66 modeltypet m_get(literalt a) const override;
67
68protected:
69 void compress_certificate(void);
70};
71
72#endif // CPROVER_SOLVERS_QBF_QBF_BDD_CORE_H
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Definition ai.h:562
Base class for all expressions.
Definition expr.h:56
std::vector< BDD * > model_bddst
std::unordered_map< unsigned, exprt > function_cachet
tvt l_get(literalt a) const override
model_bddst model_bdds
const exprt f_get(literalt l) override
~qbf_bdd_certificatet(void) override
function_cachet function_cache
literalt new_variable(void) override
Generate a new variable and return it as a literal.
literalt new_variable() override
Generate a new variable and return it as a literal.
void lcnf(const bvt &bv) override
bool is_in_core(literalt l) const override
resultt prop_solve() override
~qbf_bdd_coret() override
tvt l_get(literalt a) const override
bdd_variable_mapt bdd_variable_map
modeltypet m_get(literalt a) const override
std::string solver_text() const override
literalt lor(literalt a, literalt b) override
std::vector< BDD * > bdd_variable_mapt
void compress_certificate(void)
Definition threeval.h:20
std::vector< literalt > bvt
Definition literal.h:201
resultt
The result of goto verifying.
Definition properties.h:45