CBMC
Loading...
Searching...
No Matches
satcheck_cadical.h
Go to the documentation of this file.
1/*******************************************************************\
2
3Module:
4
5Author: 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
17namespace CaDiCaL // NOLINT(readability/namespace)
18{
19 class Solver; // NOLINT(readability/identifiers)
20}
21
23{
24public:
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#if 0
48 literalt new_variable() override;
49 bvt new_variables(std::size_t width) override;
50#endif
51
52protected:
53 resultt do_prop_solve(const bvt &assumptions) override;
54
55 // NOLINTNEXTLINE(readability/identifiers)
56 CaDiCaL::Solver *solver;
58};
59
61{
62public:
64 : satcheck_cadical_baset(0, 0, message_handler)
65 {
66 }
67};
68
70{
71public:
73 : satcheck_cadical_baset(1, 0, message_handler)
74 {
75 }
76};
77
78#endif // CPROVER_SOLVERS_SAT_SATCHECK_CADICAL_H
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Definition ai.h:566
bvt new_variables(std::size_t width) override
Generate a vector of new variables.
Definition cnf.cpp:396
virtual literalt new_variable() override
Generate a new variable and return it as a literal.
Definition cnf.cpp:385
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