cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
qbf_qube_core.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module:
4
5
Author: CM Wintersteiger
6
7
\*******************************************************************/
8
9
10
#ifndef CPROVER_SOLVERS_QBF_QBF_QUBE_CORE_H
11
#define CPROVER_SOLVERS_QBF_QBF_QUBE_CORE_H
12
13
#include "
qdimacs_core.h
"
14
15
#include <
util/invariant.h
>
16
17
class
qbf_qube_coret
:
public
qdimacs_coret
18
{
19
protected
:
20
std::string
qbf_tmp_file
;
21
22
typedef
std::map<unsigned, bool>
assignmentt
;
23
assignmentt
assignment
;
24
25
public
:
26
explicit
qbf_qube_coret
(
message_handlert
&message_handler);
27
~qbf_qube_coret
()
override
;
28
29
std::string
solver_text
()
const override
;
30
virtual
resultt
prop_solve
();
31
32
bool
is_in_core
(
literalt
l)
const override
;
33
34
tvt
l_get
(
literalt
a)
const override
35
{
36
unsigned
v=a.
var_no
();
37
38
assignmentt::const_iterator fit=
assignment
.find(v);
39
40
if
(fit!=
assignment
.end())
41
return
a.
sign
()?
tvt
(!fit->second) :
tvt
(fit->second);
42
else
43
{
44
// throw "Missing toplevel assignment from QuBE";
45
// We assume this is a don't-care and return unknown
46
}
47
48
49
return
tvt::unknown
();
50
}
51
52
modeltypet
m_get
(
literalt
a)
const override
;
53
54
const
exprt
f_get
(
literalt
)
override
55
{
56
INVARIANT
(
false
,
"qube does not support full certificates."
);
57
}
58
};
59
60
#endif
// CPROVER_SOLVERS_QBF_QBF_QUBE_CORE_H
exprt
Base class for all expressions.
Definition
expr.h:57
literalt
Definition
literal.h:26
literalt::sign
bool sign() const
Definition
literal.h:88
literalt::var_no
var_not var_no() const
Definition
literal.h:83
message_handlert
Definition
message.h:27
qbf_qube_coret::solver_text
std::string solver_text() const override
Definition
qbf_qube_core.cpp:29
qbf_qube_coret::qbf_qube_coret
qbf_qube_coret(message_handlert &message_handler)
Definition
qbf_qube_core.cpp:18
qbf_qube_coret::assignment
assignmentt assignment
Definition
qbf_qube_core.h:23
qbf_qube_coret::assignmentt
std::map< unsigned, bool > assignmentt
Definition
qbf_qube_core.h:22
qbf_qube_coret::prop_solve
virtual resultt prop_solve()
Definition
qbf_qube_core.cpp:34
qbf_qube_coret::~qbf_qube_coret
~qbf_qube_coret() override
Definition
qbf_qube_core.cpp:25
qbf_qube_coret::m_get
modeltypet m_get(literalt a) const override
Definition
qbf_qube_core.cpp:137
qbf_qube_coret::is_in_core
bool is_in_core(literalt l) const override
Definition
qbf_qube_core.cpp:132
qbf_qube_coret::f_get
const exprt f_get(literalt) override
Definition
qbf_qube_core.h:54
qbf_qube_coret::qbf_tmp_file
std::string qbf_tmp_file
Definition
qbf_qube_core.h:20
qbf_qube_coret::l_get
tvt l_get(literalt a) const override
Definition
qbf_qube_core.h:34
qdimacs_coret::qdimacs_coret
qdimacs_coret(message_handlert &message_handler)
Definition
qdimacs_core.h:22
qdimacs_coret::modeltypet
modeltypet
Definition
qdimacs_core.h:30
tvt
Definition
threeval.h:20
tvt::unknown
static tvt unknown()
Definition
threeval.h:33
resultt
resultt
The result of goto verifying.
Definition
properties.h:45
qdimacs_core.h
invariant.h
INVARIANT
#define INVARIANT(CONDITION, REASON)
This macro uses the wrapper function 'invariant_violated_string'.
Definition
invariant.h:423
solvers
qbf
qbf_qube_core.h
Generated by
1.17.0