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