CBMC
qbf_bdd_core.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module:
4 
5 Author: 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 
18 class Cudd; // NOLINT(*)
19 class BDD; // NOLINT(*)
20 
22 {
23 protected:
24  Cudd *bdd_manager;
25 
26  typedef std::vector<BDD*> model_bddst;
28 
29  typedef std::unordered_map<unsigned, exprt> function_cachet;
31 
32 public:
34  virtual ~qbf_bdd_certificatet(void);
35 
36  virtual literalt new_variable(void);
37 
38  virtual tvt l_get(literalt a) const;
39  virtual const exprt f_get(literalt l);
40 };
41 
42 
44 {
45 private:
46  typedef std::vector<BDD*> bdd_variable_mapt;
48 
49  BDD *matrix;
50 
51 public:
52  qbf_bdd_coret();
53  virtual ~qbf_bdd_coret();
54 
55  virtual literalt new_variable();
56 
57  virtual void lcnf(const bvt &bv);
58  virtual literalt lor(literalt a, literalt b);
59  virtual literalt lor(const bvt &bv);
60 
61  virtual const std::string solver_text();
62  virtual resultt prop_solve();
63  virtual tvt l_get(literalt a) const;
64 
65  virtual bool is_in_core(literalt l) const;
66  virtual modeltypet m_get(literalt a) const;
67 
68 protected:
69  void compress_certificate(void);
70 };
71 
72 #endif // CPROVER_SOLVERS_QBF_QBF_BDD_CORE_H
qbf_bdd_certificatet::bdd_manager
Cudd * bdd_manager
Definition: qbf_bdd_core.h:24
qbf_bdd_certificatet::model_bddst
std::vector< BDD * > model_bddst
Definition: qbf_bdd_core.h:26
bvt
std::vector< literalt > bvt
Definition: literal.h:201
qbf_bdd_coret
Definition: qbf_bdd_core.h:43
qbf_bdd_coret::matrix
BDD * matrix
Definition: qbf_bdd_core.h:49
exprt
Base class for all expressions.
Definition: expr.h:55
qbf_bdd_coret::m_get
virtual modeltypet m_get(literalt a) const
Definition: qbf_bdd_core.cpp:157
qbf_bdd_certificatet::f_get
virtual const exprt f_get(literalt l)
Definition: qbf_bdd_core.cpp:268
qbf_bdd_coret::new_variable
virtual literalt new_variable()
Generate a new variable and return it as a literal.
Definition: qbf_bdd_core.cpp:162
qdimacs_core.h
qbf_bdd_coret::qbf_bdd_coret
qbf_bdd_coret()
Definition: qbf_bdd_core.cpp:59
qbf_bdd_coret::solver_text
virtual const std::string solver_text()
Definition: qbf_bdd_core.cpp:86
qbf_bdd_coret::bdd_variable_map
bdd_variable_mapt bdd_variable_map
Definition: qbf_bdd_core.h:47
qdimacs_coret::modeltypet
modeltypet
Definition: qdimacs_core.h:30
propt::resultt
resultt
Definition: prop.h:97
qbf_bdd_coret::lcnf
virtual void lcnf(const bvt &bv)
Definition: qbf_bdd_core.cpp:174
qbf_bdd_coret::l_get
virtual tvt l_get(literalt a) const
Definition: qbf_bdd_core.cpp:81
qdimacs_coret
Definition: qdimacs_core.h:19
tvt
Definition: threeval.h:19
qbf_bdd_certificatet::model_bdds
model_bddst model_bdds
Definition: qbf_bdd_core.h:27
qbf_bdd_certificatet::new_variable
virtual literalt new_variable(void)
Generate a new variable and return it as a literal.
Definition: qbf_bdd_core.cpp:49
qbf_bdd_certificatet::qbf_bdd_certificatet
qbf_bdd_certificatet(void)
Definition: qbf_bdd_core.cpp:31
qbf_bdd_certificatet::l_get
virtual tvt l_get(literalt a) const
Definition: qbf_bdd_core.cpp:388
literalt
Definition: literal.h:25
qbf_bdd_coret::~qbf_bdd_coret
virtual ~qbf_bdd_coret()
Definition: qbf_bdd_core.cpp:65
qbf_bdd_coret::prop_solve
virtual resultt prop_solve()
Definition: qbf_bdd_core.cpp:91
qbf_bdd_coret::lor
virtual literalt lor(literalt a, literalt b)
Definition: qbf_bdd_core.cpp:196
qbf_bdd_certificatet::function_cachet
std::unordered_map< unsigned, exprt > function_cachet
Definition: qbf_bdd_core.h:29
qbf_bdd_coret::is_in_core
virtual bool is_in_core(literalt l) const
Definition: qbf_bdd_core.cpp:152
qbf_bdd_coret::bdd_variable_mapt
std::vector< BDD * > bdd_variable_mapt
Definition: qbf_bdd_core.h:46
qbf_bdd_certificatet
Definition: qbf_bdd_core.h:21
qbf_bdd_certificatet::~qbf_bdd_certificatet
virtual ~qbf_bdd_certificatet(void)
Definition: qbf_bdd_core.cpp:36
qbf_bdd_certificatet::function_cache
function_cachet function_cache
Definition: qbf_bdd_core.h:30
qbf_bdd_coret::compress_certificate
void compress_certificate(void)
Definition: qbf_bdd_core.cpp:240