blob: b85af5fb581abc37726565b986fe280491aa74f7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
/********************* */
/*! \file proof_output_channel.h
** \verbatim
**
**/
#include "cvc4_private.h"
#ifndef __CVC4__PROOF_OUTPUT_CHANNEL_H
#define __CVC4__PROOF_OUTPUT_CHANNEL_H
#include "theory/output_channel.h"
namespace CVC4 {
class ProofOutputChannel : public theory::OutputChannel {
public:
Node d_conflict;
Proof* d_proof;
Node d_lemma;
std::set<Node> d_propagations;
ProofOutputChannel();
virtual ~ProofOutputChannel() throw() {}
void conflict(TNode n, Proof* pf) throw();
bool propagate(TNode x) throw();
theory::LemmaStatus lemma(TNode n, ProofRule rule, bool, bool, bool) throw();
theory::LemmaStatus splitLemma(TNode, bool) throw();
void requirePhase(TNode n, bool b) throw();
bool flipDecision() throw();
void setIncomplete() throw();
};/* class ProofOutputChannel */
class MyPreRegisterVisitor {
theory::Theory* d_theory;
__gnu_cxx::hash_set<TNode, TNodeHashFunction> d_visited;
public:
typedef void return_type;
MyPreRegisterVisitor(theory::Theory* theory);
bool alreadyVisited(TNode current, TNode parent);
void visit(TNode current, TNode parent);
void start(TNode node);
void done(TNode node);
}; /* class MyPreRegisterVisitor */
} /* CVC4 namespace */
#endif /* __CVC4__PROOF_OUTPUT_CHANNEL_H */
|