ABC: A System for Sequential Synthesis and Verification
Loading...
Searching...
No Matches
elim.hpp
Go to the documentation of this file.
1
#ifndef _elim_hpp_INCLUDED
2
#define _elim_hpp_INCLUDED
3
4
#include "
global.h
"
5
6
#include "
heap.hpp
"
// Alphabetically after 'elim.hpp'.
7
8
ABC_NAMESPACE_CXX_HEADER_START
9
10
namespace
CaDiCaL
{
11
12
struct
Internal
;
13
14
struct
elim_more
{
15
Internal
*
internal
;
16
elim_more
(
Internal
*i) :
internal
(i) {}
17
bool
operator()
(
unsigned
a,
unsigned
b);
18
};
19
20
typedef
heap<elim_more>
ElimSchedule
;
21
22
struct
proof_clause
{
23
int64_t
id
;
24
vector<int>
literals
;
25
// for lrat
26
unsigned
cid
;
// cadical_kitten id
27
bool
learned
;
28
vector<int64_t>
chain
;
29
};
30
31
enum
GateType
{
NO
= 0,
EQUI
= 1,
AND
= 2,
ITE
= 3,
XOR
= 4,
DEF
= 5 };
32
33
struct
Eliminator
{
34
35
Internal
*
internal
;
36
ElimSchedule
schedule
;
37
38
Eliminator
(
Internal
*i)
39
:
internal
(i),
schedule
(
elim_more
(i)),
definition_unit
(0),
40
gatetype
(
NO
) {}
41
~Eliminator
();
42
43
queue<Clause *>
backward
;
44
45
Clause
*
dequeue
();
46
void
enqueue
(
Clause
*);
47
48
vector<Clause *>
gates
;
49
unsigned
definition_unit
;
50
vector<proof_clause>
proof_clauses
;
51
vector<int>
marked
;
52
GateType
gatetype
;
53
};
54
55
}
// namespace CaDiCaL
56
57
ABC_NAMESPACE_CXX_HEADER_END
58
59
#endif
ABC_NAMESPACE_CXX_HEADER_START
#define ABC_NAMESPACE_CXX_HEADER_START
Definition
abc_namespaces.h:52
ABC_NAMESPACE_CXX_HEADER_END
#define ABC_NAMESPACE_CXX_HEADER_END
Definition
abc_namespaces.h:53
global.h
CaDiCaL::heap
Definition
heap.hpp:28
heap.hpp
CaDiCaL
Definition
arena.hpp:8
CaDiCaL::ElimSchedule
heap< elim_more > ElimSchedule
Definition
elim.hpp:20
CaDiCaL::GateType
GateType
Definition
elim.hpp:31
CaDiCaL::DEF
@ DEF
Definition
elim.hpp:31
CaDiCaL::NO
@ NO
Definition
elim.hpp:31
CaDiCaL::EQUI
@ EQUI
Definition
elim.hpp:31
CaDiCaL::ITE
@ ITE
Definition
elim.hpp:31
CaDiCaL::AND
@ AND
Definition
elim.hpp:31
CaDiCaL::XOR
@ XOR
Definition
elim.hpp:31
CaDiCaL::Clause
Definition
clause.hpp:34
CaDiCaL::Eliminator::marked
vector< int > marked
Definition
elim.hpp:51
CaDiCaL::Eliminator::proof_clauses
vector< proof_clause > proof_clauses
Definition
elim.hpp:50
CaDiCaL::Eliminator::definition_unit
unsigned definition_unit
Definition
elim.hpp:49
CaDiCaL::Eliminator::Eliminator
Eliminator(Internal *i)
Definition
elim.hpp:38
CaDiCaL::Eliminator::internal
Internal * internal
Definition
elim.hpp:35
CaDiCaL::Eliminator::schedule
ElimSchedule schedule
Definition
elim.hpp:36
CaDiCaL::Eliminator::gates
vector< Clause * > gates
Definition
elim.hpp:48
CaDiCaL::Eliminator::~Eliminator
~Eliminator()
Definition
cadical_backward.cpp:37
CaDiCaL::Eliminator::enqueue
void enqueue(Clause *)
Definition
cadical_backward.cpp:16
CaDiCaL::Eliminator::backward
queue< Clause * > backward
Definition
elim.hpp:43
CaDiCaL::Eliminator::dequeue
Clause * dequeue()
Definition
cadical_backward.cpp:26
CaDiCaL::Eliminator::gatetype
GateType gatetype
Definition
elim.hpp:52
CaDiCaL::Internal
Definition
internal.hpp:136
CaDiCaL::elim_more
Definition
elim.hpp:14
CaDiCaL::elim_more::internal
Internal * internal
Definition
elim.hpp:15
CaDiCaL::elim_more::elim_more
elim_more(Internal *i)
Definition
elim.hpp:16
CaDiCaL::elim_more::operator()
bool operator()(unsigned a, unsigned b)
Definition
cadical_elim.cpp:44
CaDiCaL::proof_clause
Definition
elim.hpp:22
CaDiCaL::proof_clause::id
int64_t id
Definition
elim.hpp:23
CaDiCaL::proof_clause::chain
vector< int64_t > chain
Definition
elim.hpp:28
CaDiCaL::proof_clause::learned
bool learned
Definition
elim.hpp:27
CaDiCaL::proof_clause::literals
vector< int > literals
Definition
elim.hpp:24
CaDiCaL::proof_clause::cid
unsigned cid
Definition
elim.hpp:26
queue
Definition
queue.h:20
vector
Definition
vector.h:32
src
sat
cadical
elim.hpp
Generated by Doxygen 1.13.2 © 2025 EPTansuo. All rights reserved.
鲁ICP备2021046540号