cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
qdimacs_cnf.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_QBF_QDIMACS_CNF_H
11
#define CPROVER_SOLVERS_QBF_QDIMACS_CNF_H
12
13
#include <iosfwd>
14
15
#include <
solvers/sat/dimacs_cnf.h
>
16
17
class
qdimacs_cnft
:
public
dimacs_cnft
18
{
19
public
:
20
explicit
qdimacs_cnft
(
message_handlert
&message_handler)
21
:
dimacs_cnft
(message_handler)
22
{
23
}
24
25
virtual
void
write_qdimacs_cnf
(std::ostream &out);
26
27
// dummy functions
28
29
std::string
solver_text
()
const override
30
{
31
return
"QDIMACS CNF"
;
32
}
33
34
class
quantifiert
35
{
36
public
:
37
enum class
typet
{
NONE
,
EXISTENTIAL
,
UNIVERSAL
};
38
typet
type
;
39
unsigned
var_no
;
40
41
quantifiert
():
type
(
typet
::
NONE
),
var_no
(0)
42
{
43
}
44
45
quantifiert
(
typet
_type,
literalt
_l):
type
(_type),
var_no
(_l.
var_no
())
46
{
47
}
48
49
bool
operator==
(
const
quantifiert
&other)
const
50
{
51
return
type
==other.
type
&&
var_no
==other.
var_no
;
52
}
53
54
size_t
hash
()
const
55
{
56
return
var_no
^(
static_cast<
int
>
(
type
)<<24);
57
}
58
};
59
60
// quantifiers
61
typedef
std::vector<quantifiert>
quantifierst
;
62
quantifierst
quantifiers
;
63
64
virtual
void
add_quantifier
(
const
quantifiert
&quantifier)
65
{
66
quantifiers
.push_back(quantifier);
67
}
68
69
void
add_quantifier
(
const
quantifiert::typet
type,
const
literalt
l)
70
{
71
add_quantifier
(
quantifiert
(type, l));
72
}
73
74
void
add_existential_quantifier
(
const
literalt
l)
75
{
76
add_quantifier
(
quantifiert
(
quantifiert::typet::EXISTENTIAL
, l));
77
}
78
79
void
add_universal_quantifier
(
const
literalt
l)
80
{
81
add_quantifier
(
quantifiert
(
quantifiert::typet::UNIVERSAL
, l));
82
}
83
84
bool
is_quantified
(
const
literalt
l)
const
;
85
bool
find_quantifier
(
const
literalt
l, quantifiert &q)
const
;
86
87
virtual
void
set_quantifier
(
const
quantifiert::typet
type,
const
literalt
l);
88
void
copy_to
(
qdimacs_cnft
&cnf)
const
;
89
90
bool
operator==
(
const
qdimacs_cnft
&other)
const
;
91
92
size_t
hash
()
const
;
93
94
protected
:
95
void
write_prefix
(std::ostream &out)
const
;
96
};
97
98
#endif
// CPROVER_SOLVERS_QBF_QDIMACS_CNF_H
dimacs_cnft::dimacs_cnft
dimacs_cnft(message_handlert &)
Definition
dimacs_cnf.cpp:15
literalt
Definition
literal.h:26
message_handlert
Definition
message.h:27
qdimacs_cnft::quantifiert
Definition
qdimacs_cnf.h:35
qdimacs_cnft::quantifiert::typet
typet
Definition
qdimacs_cnf.h:37
qdimacs_cnft::quantifiert::typet::EXISTENTIAL
@ EXISTENTIAL
Definition
qdimacs_cnf.h:37
qdimacs_cnft::quantifiert::typet::UNIVERSAL
@ UNIVERSAL
Definition
qdimacs_cnf.h:37
qdimacs_cnft::quantifiert::typet::NONE
@ NONE
Definition
qdimacs_cnf.h:37
qdimacs_cnft::quantifiert::quantifiert
quantifiert(typet _type, literalt _l)
Definition
qdimacs_cnf.h:45
qdimacs_cnft::quantifiert::type
typet type
Definition
qdimacs_cnf.h:38
qdimacs_cnft::quantifiert::hash
size_t hash() const
Definition
qdimacs_cnf.h:54
qdimacs_cnft::quantifiert::quantifiert
quantifiert()
Definition
qdimacs_cnf.h:41
qdimacs_cnft::quantifiert::operator==
bool operator==(const quantifiert &other) const
Definition
qdimacs_cnf.h:49
qdimacs_cnft::quantifiert::var_no
unsigned var_no
Definition
qdimacs_cnf.h:39
qdimacs_cnft
Definition
qdimacs_cnf.h:18
qdimacs_cnft::add_quantifier
virtual void add_quantifier(const quantifiert &quantifier)
Definition
qdimacs_cnf.h:64
qdimacs_cnft::find_quantifier
bool find_quantifier(const literalt l, quantifiert &q) const
Definition
qdimacs_cnf.cpp:130
qdimacs_cnft::write_prefix
void write_prefix(std::ostream &out) const
Definition
qdimacs_cnf.cpp:22
qdimacs_cnft::write_qdimacs_cnf
virtual void write_qdimacs_cnf(std::ostream &out)
Definition
qdimacs_cnf.cpp:15
qdimacs_cnft::add_universal_quantifier
void add_universal_quantifier(const literalt l)
Definition
qdimacs_cnf.h:79
qdimacs_cnft::hash
size_t hash() const
Definition
qdimacs_cnf.cpp:107
qdimacs_cnft::set_quantifier
virtual void set_quantifier(const quantifiert::typet type, const literalt l)
Definition
qdimacs_cnf.cpp:73
qdimacs_cnft::quantifierst
std::vector< quantifiert > quantifierst
Definition
qdimacs_cnf.h:61
qdimacs_cnft::add_quantifier
void add_quantifier(const quantifiert::typet type, const literalt l)
Definition
qdimacs_cnf.h:69
qdimacs_cnft::operator==
bool operator==(const qdimacs_cnft &other) const
Definition
qdimacs_cnf.cpp:68
qdimacs_cnft::solver_text
std::string solver_text() const override
Definition
qdimacs_cnf.h:29
qdimacs_cnft::quantifiers
quantifierst quantifiers
Definition
qdimacs_cnf.h:62
qdimacs_cnft::copy_to
void copy_to(qdimacs_cnft &cnf) const
Definition
qdimacs_cnf.cpp:90
qdimacs_cnft::add_existential_quantifier
void add_existential_quantifier(const literalt l)
Definition
qdimacs_cnf.h:74
qdimacs_cnft::qdimacs_cnft
qdimacs_cnft(message_handlert &message_handler)
Definition
qdimacs_cnf.h:20
qdimacs_cnft::is_quantified
bool is_quantified(const literalt l) const
Definition
qdimacs_cnf.cpp:119
dimacs_cnf.h
solvers
qbf
qdimacs_cnf.h
Generated by
1.17.0