CBMC
qbf_squolem_core.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Squolem Backend (with Proofs)
4 
5 Author: CM Wintersteiger
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_SOLVERS_QBF_QBF_SQUOLEM_CORE_H
13 #define CPROVER_SOLVERS_QBF_QBF_SQUOLEM_CORE_H
14 
15 #include <quannon/squolem2/squolem2.h>
16 
17 #include "qdimacs_core.h"
18 
20 {
21 protected:
22  Squolem2 *squolem;
24 
25 public:
27  ~qbf_squolem_coret() override;
28 
29  std::string solver_text() const override;
30  resultt prop_solve() override;
31 
32  tvt l_get(literalt a) const override;
33  bool is_in_core(literalt l) const override;
34 
35  void set_debug_filename(const std::string &str);
36 
37  void lcnf(const bvt &bv) override;
38  void add_quantifier(const quantifiert &quantifier) override;
39  void set_quantifier(const quantifiert::typet type, const literalt l) override;
40  void set_no_variables(size_t no) override;
41  virtual size_t no_clauses() const { return squolem->clauses(); }
42 
43  modeltypet m_get(literalt a) const override;
44 
45  void write_qdimacs_cnf(std::ostream &out) override;
46 
47  void reset(void);
48 
49  const exprt f_get(literalt l) override;
50 
51 private:
52  typedef std::unordered_map<unsigned, exprt> function_cachet;
54 
55  const exprt f_get_cnf(WitnessStack *wsp);
56  const exprt f_get_dnf(WitnessStack *wsp);
57 
58  void setup(void);
59 };
60 
61 #endif // CPROVER_SOLVERS_QBF_QBF_SQUOLEM_CORE_H
Base class for all expressions.
Definition: expr.h:56
resultt
Definition: prop.h:101
void set_quantifier(const quantifiert::typet type, const literalt l) override
void set_debug_filename(const std::string &str)
~qbf_squolem_coret() override
const exprt f_get_cnf(WitnessStack *wsp)
void set_no_variables(size_t no) override
void lcnf(const bvt &bv) override
std::unordered_map< unsigned, exprt > function_cachet
void write_qdimacs_cnf(std::ostream &out) override
const exprt f_get(literalt l) override
function_cachet function_cache
void add_quantifier(const quantifiert &quantifier) override
std::string solver_text() const override
bool is_in_core(literalt l) const override
const exprt f_get_dnf(WitnessStack *wsp)
resultt prop_solve() override
modeltypet m_get(literalt a) const override
tvt l_get(literalt a) const override
virtual size_t no_clauses() const
Definition: threeval.h:20
std::vector< literalt > bvt
Definition: literal.h:201