cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
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
15
#include <
solvers/hardness_collector.h
>
16
17
namespace
CaDiCaL
// NOLINT(readability/namespace)
18
{
19
class
Solver;
// NOLINT(readability/identifiers)
20
}
21
22
class
satcheck_cadical_baset
:
public
cnf_solvert
,
public
hardness_collectort
23
{
24
public
:
25
satcheck_cadical_baset
(
26
int
preprocessing_limit
,
27
int
localsearch_limit
,
28
message_handlert
&);
29
virtual
~satcheck_cadical_baset
();
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
52
protected
:
53
resultt
do_prop_solve
(
const
bvt
&assumptions)
override
;
54
55
// NOLINTNEXTLINE(readability/identifiers)
56
CaDiCaL::Solver *
solver
;
57
int
preprocessing_limit
= 0,
localsearch_limit
= 0;
58
};
59
60
class
satcheck_cadical_no_preprocessingt
:
public
satcheck_cadical_baset
61
{
62
public
:
63
explicit
satcheck_cadical_no_preprocessingt
(
message_handlert
&message_handler)
64
:
satcheck_cadical_baset
(0, 0, message_handler)
65
{
66
}
67
};
68
69
class
satcheck_cadical_preprocessingt
:
public
satcheck_cadical_baset
70
{
71
public
:
72
explicit
satcheck_cadical_preprocessingt
(
message_handlert
&message_handler)
73
:
satcheck_cadical_baset
(1, 0, message_handler)
74
{
75
}
76
};
77
78
#endif
// CPROVER_SOLVERS_SAT_SATCHECK_CADICAL_H
cnf_solvert::cnf_solvert
cnf_solvert(message_handlert &message_handler)
Definition
cnf.h:75
cnft::new_variables
bvt new_variables(std::size_t width) override
Generate a vector of new variables.
Definition
cnf.cpp:396
cnft::new_variable
virtual literalt new_variable() override
Generate a new variable and return it as a literal.
Definition
cnf.cpp:385
hardness_collectort
Definition
hardness_collector.h:45
literalt
Definition
literal.h:26
message_handlert
Definition
message.h:27
propt::resultt
resultt
Definition
prop.h:101
satcheck_cadical_baset::has_is_in_conflict
bool has_is_in_conflict() const override
Definition
satcheck_cadical.h:41
satcheck_cadical_baset::~satcheck_cadical_baset
virtual ~satcheck_cadical_baset()
satcheck_cadical_baset::lcnf
void lcnf(const bvt &bv) override
satcheck_cadical_baset::has_assumptions
bool has_assumptions() const override
Definition
satcheck_cadical.h:37
satcheck_cadical_baset::solver_text
std::string solver_text() const override
satcheck_cadical_baset::satcheck_cadical_baset
satcheck_cadical_baset(int preprocessing_limit, int localsearch_limit, message_handlert &)
satcheck_cadical_baset::solver
CaDiCaL::Solver * solver
Definition
satcheck_cadical.h:56
satcheck_cadical_baset::l_get
tvt l_get(literalt a) const override
satcheck_cadical_baset::is_in_conflict
bool is_in_conflict(literalt a) const override
Returns true if an assumption is in the final conflict.
satcheck_cadical_baset::preprocessing_limit
int preprocessing_limit
Definition
satcheck_cadical.h:57
satcheck_cadical_baset::localsearch_limit
int localsearch_limit
Definition
satcheck_cadical.h:57
satcheck_cadical_baset::set_assignment
void set_assignment(literalt a, bool value) override
satcheck_cadical_baset::do_prop_solve
resultt do_prop_solve(const bvt &assumptions) override
satcheck_cadical_no_preprocessingt::satcheck_cadical_no_preprocessingt
satcheck_cadical_no_preprocessingt(message_handlert &message_handler)
Definition
satcheck_cadical.h:63
satcheck_cadical_preprocessingt::satcheck_cadical_preprocessingt
satcheck_cadical_preprocessingt(message_handlert &message_handler)
Definition
satcheck_cadical.h:72
tvt
Definition
threeval.h:20
cnf.h
CNF Generation, via Tseitin.
hardness_collector.h
Capability to collect the statistics of the complexity of individual solver queries.
bvt
std::vector< literalt > bvt
Definition
literal.h:201
CaDiCaL
Definition
satcheck_cadical.h:18
solvers
sat
satcheck_cadical.h
Generated by
1.17.0