cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
satcheck_minisat.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module:
4
5
Author: Daniel Kroening, kroening@kroening.com
6
7
\*******************************************************************/
8
9
10
#ifndef CPROVER_SOLVERS_SAT_SATCHECK_MINISAT_H
11
#define CPROVER_SOLVERS_SAT_SATCHECK_MINISAT_H
12
13
#include <vector>
14
15
#include "
cnf.h
"
16
#include "
resolution_proof.h
"
17
18
class
satcheck_minisat1_baset
:
public
cnf_solvert
19
{
20
public
:
21
satcheck_minisat1_baset
():
solver
(NULL)
22
{
23
}
24
25
virtual
~satcheck_minisat1_baset
();
26
27
std::string
solver_text
()
const override
;
28
tvt
l_get
(
literalt
a)
const override
;
29
30
void
lcnf
(
const
bvt
&bv)
final
;
31
32
void
set_assignment
(
literalt
a,
bool
value)
override
;
33
34
// features
35
bool
has_assumptions
()
const override
36
{
37
return
true
;
38
}
39
bool
has_is_in_conflict
()
const override
40
{
41
return
true
;
42
}
43
44
bool
is_in_conflict
(
literalt
l)
const override
;
45
46
protected
:
47
resultt
do_prop_solve
(
const
bvt
&assumptions)
override
;
48
49
// NOLINTNEXTLINE(readability/identifiers)
50
class
Solver *
solver
;
51
void
add_variables
();
52
bool
empty_clause_added
;
53
};
54
55
class
satcheck_minisat1t
:
public
satcheck_minisat1_baset
56
{
57
public
:
58
satcheck_minisat1t
();
59
};
60
61
class
satcheck_minisat1_prooft
:
public
satcheck_minisat1t
62
{
63
public
:
64
satcheck_minisat1_prooft
();
65
~satcheck_minisat1_prooft
();
66
67
std::string
solver_text
()
const override
;
68
simple_prooft
&
get_resolution_proof
();
69
// void set_partition_id(unsigned p_id);
70
71
protected
:
72
// NOLINTNEXTLINE(readability/identifiers)
73
class
Proof *
proof
;
74
class
minisat_prooft
*
minisat_proof
;
75
};
76
77
class
satcheck_minisat1_coret
:
public
satcheck_minisat1_prooft
78
{
79
public
:
80
satcheck_minisat1_coret
();
81
~satcheck_minisat1_coret
();
82
83
std::string
solver_text
()
const override
;
84
85
bool
has_in_core
()
const
86
{
87
return
true
;
88
}
89
90
bool
is_in_core
(
literalt
l)
const
91
{
92
PRECONDITION
(l.
var_no
() <
in_core
.size());
93
return
in_core
[l.
var_no
()];
94
}
95
96
protected
:
97
std::vector<bool>
in_core
;
98
99
resultt
do_prop_solve
(
const
bvt
&assumptions)
override
;
100
};
101
#endif
// CPROVER_SOLVERS_SAT_SATCHECK_MINISAT_H
cnf_solvert::cnf_solvert
cnf_solvert(message_handlert &message_handler)
Definition
cnf.h:75
literalt
Definition
literal.h:26
literalt::var_no
var_not var_no() const
Definition
literal.h:83
minisat_prooft
Definition
satcheck_minisat.cpp:33
satcheck_minisat1_baset::has_assumptions
bool has_assumptions() const override
Definition
satcheck_minisat.h:35
satcheck_minisat1_baset::do_prop_solve
resultt do_prop_solve(const bvt &assumptions) override
Definition
satcheck_minisat.cpp:153
satcheck_minisat1_baset::satcheck_minisat1_baset
satcheck_minisat1_baset()
Definition
satcheck_minisat.h:21
satcheck_minisat1_baset::set_assignment
void set_assignment(literalt a, bool value) override
Definition
satcheck_minisat.cpp:195
satcheck_minisat1_baset::solver
class Solver * solver
Definition
satcheck_minisat.h:50
satcheck_minisat1_baset::solver_text
std::string solver_text() const override
Definition
satcheck_minisat.cpp:111
satcheck_minisat1_baset::empty_clause_added
bool empty_clause_added
Definition
satcheck_minisat.h:52
satcheck_minisat1_baset::is_in_conflict
bool is_in_conflict(literalt l) const override
Returns true if an assumption is in the final conflict.
Definition
satcheck_minisat.cpp:204
satcheck_minisat1_baset::lcnf
void lcnf(const bvt &bv) final
Definition
satcheck_minisat.cpp:122
satcheck_minisat1_baset::has_is_in_conflict
bool has_is_in_conflict() const override
Definition
satcheck_minisat.h:39
satcheck_minisat1_baset::add_variables
void add_variables()
Definition
satcheck_minisat.cpp:116
satcheck_minisat1_baset::~satcheck_minisat1_baset
virtual ~satcheck_minisat1_baset()
Definition
satcheck_minisat.cpp:245
satcheck_minisat1_baset::l_get
tvt l_get(literalt a) const override
Definition
satcheck_minisat.cpp:84
satcheck_minisat1_coret::solver_text
std::string solver_text() const override
Definition
satcheck_minisat.cpp:270
satcheck_minisat1_coret::do_prop_solve
resultt do_prop_solve(const bvt &assumptions) override
Definition
satcheck_minisat.cpp:255
satcheck_minisat1_coret::satcheck_minisat1_coret
satcheck_minisat1_coret()
Definition
satcheck_minisat.cpp:237
satcheck_minisat1_coret::~satcheck_minisat1_coret
~satcheck_minisat1_coret()
Definition
satcheck_minisat.cpp:241
satcheck_minisat1_coret::in_core
std::vector< bool > in_core
Definition
satcheck_minisat.h:97
satcheck_minisat1_coret::has_in_core
bool has_in_core() const
Definition
satcheck_minisat.h:85
satcheck_minisat1_coret::is_in_core
bool is_in_core(literalt l) const
Definition
satcheck_minisat.h:90
satcheck_minisat1_prooft::~satcheck_minisat1_prooft
~satcheck_minisat1_prooft()
Definition
satcheck_minisat.cpp:231
satcheck_minisat1_prooft::solver_text
std::string solver_text() const override
Definition
satcheck_minisat.cpp:250
satcheck_minisat1_prooft::minisat_proof
class minisat_prooft * minisat_proof
Definition
satcheck_minisat.h:74
satcheck_minisat1_prooft::proof
class Proof * proof
Definition
satcheck_minisat.h:73
satcheck_minisat1_prooft::satcheck_minisat1_prooft
satcheck_minisat1_prooft()
Definition
satcheck_minisat.cpp:223
satcheck_minisat1_prooft::get_resolution_proof
simple_prooft & get_resolution_proof()
Definition
satcheck_minisat.cpp:275
satcheck_minisat1t::satcheck_minisat1t
satcheck_minisat1t()
Definition
satcheck_minisat.cpp:217
tvt
Definition
threeval.h:20
cnf.h
CNF Generation, via Tseitin.
bvt
std::vector< literalt > bvt
Definition
literal.h:201
resultt
resultt
The result of goto verifying.
Definition
properties.h:45
resolution_proof.h
simple_prooft
resolution_prooft< clauset > simple_prooft
Definition
resolution_proof.h:47
PRECONDITION
#define PRECONDITION(CONDITION)
Definition
invariant.h:463
solvers
sat
satcheck_minisat.h
Generated by
1.17.0