ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
frattracer.hpp
Go to the documentation of this file.
1#ifndef _frattracer_h_INCLUDED
2#define _frattracer_h_INCLUDED
3
4#include "global.h"
5
7
8namespace CaDiCaL {
9
10class FratTracer : public FileTracer {
11
12 Internal *internal;
13 File *file;
14 bool binary;
15 bool with_antecedents;
16
17#ifndef CADICAL_QUIET
18 int64_t added, deleted;
19 int64_t finalized, original;
20#endif
21
22 vector<int64_t> delete_ids;
23
24 void put_binary_zero ();
25 void put_binary_lit (int external_lit);
26 void put_binary_id (int64_t id, bool = false);
27
28 // support FRAT
29 void frat_add_original_clause (int64_t, const vector<int> &);
30 void frat_add_derived_clause (int64_t, const vector<int> &);
31 void frat_add_derived_clause (int64_t, const vector<int> &,
32 const vector<int64_t> &);
33 void frat_delete_clause (int64_t, const vector<int> &);
34 void frat_finalize_clause (int64_t, const vector<int> &);
35
36public:
37 // own and delete 'file'
38 FratTracer (Internal *, File *file, bool binary, bool antecedents);
39 ~FratTracer ();
40
41 void connect_internal (Internal *i) override;
42 void begin_proof (int64_t) override {} // skip
43
44 void add_original_clause (int64_t, bool, const vector<int> &,
45 bool = false) override;
46
47 void add_derived_clause (int64_t, bool, const vector<int> &,
48 const vector<int64_t> &) override;
49
50 void delete_clause (int64_t, bool, const vector<int> &) override;
51
52 void finalize_clause (int64_t, const vector<int> &) override;
53
54 void report_status (int, int64_t) override {} // skip
55
56#ifndef CADICAL_QUIET
57 void print_statistics ();
58#endif
59 bool closed () override;
60 void close (bool) override;
61 void flush (bool) override;
62};
63
64} // namespace CaDiCaL
65
67
68#endif
#define ABC_NAMESPACE_CXX_HEADER_START
#define ABC_NAMESPACE_CXX_HEADER_END
void flush(bool) override
FratTracer(Internal *, File *file, bool binary, bool antecedents)
void begin_proof(int64_t) override
void connect_internal(Internal *i) override
void report_status(int, int64_t) override
void add_derived_clause(int64_t, bool, const vector< int > &, const vector< int64_t > &) override
void close(bool) override
void add_original_clause(int64_t, bool, const vector< int > &, bool=false) override
void delete_clause(int64_t, bool, const vector< int > &) override
void finalize_clause(int64_t, const vector< int > &) override