CBMC
satcheck_cadical.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module:
4 
5 Author: Michael Tautschnig
6 
7 \*******************************************************************/
8 
9 
10 #ifndef CPROVER_SOLVERS_SAT_SATCHECK_CADICAL_H
11 #define CPROVER_SOLVERS_SAT_SATCHECK_CADICAL_H
12 
13 #include "cnf.h"
14 
16 
17 namespace CaDiCaL // NOLINT(readability/namespace)
18 {
19  class Solver; // NOLINT(readability/identifiers)
20 }
21 
23 {
24 public:
30 
31  std::string solver_text() const override;
32  tvt l_get(literalt a) const override;
33 
34  void lcnf(const bvt &bv) override;
35  void set_assignment(literalt a, bool value) override;
36 
37  bool has_assumptions() const override
38  {
39  return true;
40  }
41  bool has_is_in_conflict() const override
42  {
43  return true;
44  }
45  bool is_in_conflict(literalt a) const override;
46 
47 protected:
48  resultt do_prop_solve(const bvt &assumptions) override;
49 
50  // NOLINTNEXTLINE(readability/identifiers)
51  CaDiCaL::Solver *solver;
53 };
54 
56 {
57 public:
59  : satcheck_cadical_baset(0, 0, message_handler)
60  {
61  }
62 };
63 
65 {
66 public:
68  : satcheck_cadical_baset(1, 0, message_handler)
69  {
70  }
71 };
72 
73 #endif // CPROVER_SOLVERS_SAT_SATCHECK_CADICAL_H
resultt
Definition: prop.h:101
bool has_is_in_conflict() const override
virtual ~satcheck_cadical_baset()
void lcnf(const bvt &bv) override
bool has_assumptions() const override
std::string solver_text() const override
satcheck_cadical_baset(int preprocessing_limit, int localsearch_limit, message_handlert &)
CaDiCaL::Solver * solver
tvt l_get(literalt a) const override
bool is_in_conflict(literalt a) const override
Returns true if an assumption is in the final conflict.
void set_assignment(literalt a, bool value) override
resultt do_prop_solve(const bvt &assumptions) override
satcheck_cadical_no_preprocessingt(message_handlert &message_handler)
satcheck_cadical_preprocessingt(message_handlert &message_handler)
Definition: threeval.h:20
CNF Generation, via Tseitin.
Capability to collect the statistics of the complexity of individual solver queries.
std::vector< literalt > bvt
Definition: literal.h:201