ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
CaDiCaL::VeripbTracer Class Reference

#include <veripbtracer.hpp>

Inheritance diagram for CaDiCaL::VeripbTracer:
Collaboration diagram for CaDiCaL::VeripbTracer:

Public Member Functions

 VeripbTracer (Internal *, File *file, bool, bool, bool)
 
 ~VeripbTracer ()
 
void connect_internal (Internal *i) override
 
void begin_proof (int64_t) override
 
void add_original_clause (int64_t, bool, const vector< int > &, bool=false) override
 
void add_derived_clause (int64_t, bool, const vector< int > &, const vector< int64_t > &) override
 
void delete_clause (int64_t, bool, const vector< int > &) override
 
void finalize_clause (int64_t, const vector< int > &) override
 
void report_status (int, int64_t) override
 
void weaken_minus (int64_t, const vector< int > &) override
 
void strengthen (int64_t) override
 
bool closed () override
 
void close (bool) override
 
void flush (bool) override
 
- Public Member Functions inherited from CaDiCaL::FileTracer
 FileTracer ()
 
virtual ~FileTracer ()
 
- Public Member Functions inherited from CaDiCaL::InternalTracer
 InternalTracer ()
 
virtual ~InternalTracer ()
 
- Public Member Functions inherited from CaDiCaL::Tracer
 Tracer ()
 
virtual ~Tracer ()
 
virtual void add_original_clause (int64_t, bool, const std::vector< int > &, bool=false)
 
virtual void add_derived_clause (int64_t, bool, const std::vector< int > &, const std::vector< int64_t > &)
 
virtual void delete_clause (int64_t, bool, const std::vector< int > &)
 
virtual void demote_clause (uint64_t, const std::vector< int > &)
 
virtual void weaken_minus (int64_t, const std::vector< int > &)
 
virtual void finalize_clause (int64_t, const std::vector< int > &)
 
virtual void solve_query ()
 
virtual void add_assumption (int)
 
virtual void add_constraint (const std::vector< int > &)
 
virtual void reset_assumptions ()
 
virtual void add_assumption_clause (int64_t, const std::vector< int > &, const std::vector< int64_t > &)
 
virtual void conclude_unsat (ConclusionType, const std::vector< int64_t > &)
 
virtual void conclude_sat (const std::vector< int > &)
 
virtual void conclude_unknown (const std::vector< int > &)
 

Detailed Description

Definition at line 18 of file veripbtracer.hpp.

Constructor & Destructor Documentation

◆ VeripbTracer()

CaDiCaL::VeripbTracer::VeripbTracer ( Internal * i,
File * file,
bool b,
bool a,
bool c )

Definition at line 11 of file cadical_veripbtracer.cpp.

12 : internal (i), file (f), with_antecedents (a), checked_deletions (c),
13 num_clauses (0), size_clauses (0), clauses (0), last_hash (0),
14 last_id (0), last_clause (0)
15#ifndef CADICAL_QUIET
16 ,
17 added (0), deleted (0)
18#endif
19{
20 (void) internal;
21
22 // Initialize random number table for hash function.
23 //
24 Random random (42);
25 for (unsigned n = 0; n < num_nonces; n++) {
26 uint64_t nonce = random.next ();
27 if (!(nonce & 1))
28 nonce++;
29 CADICAL_assert (nonce), CADICAL_assert (nonce & 1);
30 nonces[n] = nonce;
31 }
32#ifndef CADICAL_NDEBUG
33 binary = b;
34#else
35 (void) b;
36#endif
37}
#define CADICAL_assert(ignore)
Definition global.h:14
long random()
Here is the call graph for this function:

◆ ~VeripbTracer()

CaDiCaL::VeripbTracer::~VeripbTracer ( )

Definition at line 45 of file cadical_veripbtracer.cpp.

45 {
46 LOG ("VERIPB TRACER delete");
47 delete file;
48 for (size_t i = 0; i < size_clauses; i++)
49 for (HashId *c = clauses[i], *next; c; c = next)
50 next = c->next, delete_clause (c);
51 delete[] clauses;
52}
#define LOG(...)

Member Function Documentation

◆ add_derived_clause()

void CaDiCaL::VeripbTracer::add_derived_clause ( int64_t id,
bool redundant,
const vector< int > & clause,
const vector< int64_t > & chain )
override

Definition at line 297 of file cadical_veripbtracer.cpp.

299 {
300 if (file->closed ())
301 return;
302 LOG ("VERIPB TRACER tracing addition of derived clause[%" PRId64 "]", id);
303 if (with_antecedents)
304 veripb_add_derived_clause (id, redundant, clause, chain);
305 else
306 veripb_add_derived_clause (id, redundant, clause);
307#ifndef CADICAL_QUIET
308 added++;
309#endif
310}
struct clause_t clause
STRUCTURE DEFINITIONS ///.
Definition satClause.h:48

◆ add_original_clause()

void CaDiCaL::VeripbTracer::add_original_clause ( int64_t ,
bool ,
const vector< int > & ,
bool = false )
inlineoverride

Definition at line 82 of file veripbtracer.hpp.

83 {} // skip

◆ begin_proof()

void CaDiCaL::VeripbTracer::begin_proof ( int64_t id)
overridevirtual

Reimplemented from CaDiCaL::Tracer.

Definition at line 288 of file cadical_veripbtracer.cpp.

288 {
289 if (file->closed ())
290 return;
291 LOG ("VERIPB TRACER tracing start of proof with %" PRId64
292 "original clauses",
293 id);
294 veripb_begin_proof (id);
295}

◆ close()

void CaDiCaL::VeripbTracer::close ( bool print)
overridevirtual

Implements CaDiCaL::FileTracer.

Definition at line 372 of file cadical_veripbtracer.cpp.

372 {
374 file->close ();
375#ifndef CADICAL_QUIET
376 if (print) {
377 MSG ("VeriPB proof file '%s' closed", file->name ());
378 print_statistics ();
379 }
380#else
381 (void) print;
382#endif
383}
#define MSG(...)
Definition message.hpp:49
Here is the call graph for this function:

◆ closed()

bool CaDiCaL::VeripbTracer::closed ( )
overridevirtual

Implements CaDiCaL::FileTracer.

Definition at line 354 of file cadical_veripbtracer.cpp.

354{ return file->closed (); }
Here is the caller graph for this function:

◆ connect_internal()

void CaDiCaL::VeripbTracer::connect_internal ( Internal * i)
overridevirtual

Reimplemented from CaDiCaL::InternalTracer.

Definition at line 39 of file cadical_veripbtracer.cpp.

39 {
40 internal = i;
41 file->connect_internal (internal);
42 LOG ("VERIPB TRACER connected to internal");
43}

◆ delete_clause()

void CaDiCaL::VeripbTracer::delete_clause ( int64_t id,
bool redundant,
const vector< int > &  )
override

Definition at line 312 of file cadical_veripbtracer.cpp.

313 {
314 if (file->closed ())
315 return;
316 LOG ("VERIPB TRACER tracing deletion of clause[%" PRId64 "]", id);
317 veripb_delete_clause (id, redundant);
318#ifndef CADICAL_QUIET
319 deleted++;
320#endif
321}

◆ finalize_clause()

void CaDiCaL::VeripbTracer::finalize_clause ( int64_t ,
const vector< int > &  )
inlineoverride

Definition at line 89 of file veripbtracer.hpp.

89{} // skip

◆ flush()

void CaDiCaL::VeripbTracer::flush ( bool print)
overridevirtual

Implements CaDiCaL::FileTracer.

Definition at line 385 of file cadical_veripbtracer.cpp.

385 {
387 file->flush ();
388#ifndef CADICAL_QUIET
389 if (print) {
390 MSG ("VeriPB proof file '%s' flushed", file->name ());
391 print_statistics ();
392 }
393#else
394 (void) print;
395#endif
396}
Here is the call graph for this function:

◆ report_status()

void CaDiCaL::VeripbTracer::report_status ( int status,
int64_t conflict_id )
overridevirtual

Reimplemented from CaDiCaL::Tracer.

Definition at line 323 of file cadical_veripbtracer.cpp.

323 {
324 if (file->closed ())
325 return;
326#ifdef LOGGING
327 if (conflict_id)
328 LOG ("VERIPB TRACER tracing finalization of proof with empty "
329 "clause[%" PRId64 "]",
330 conflict_id);
331#endif
332 veripb_report_status (status == UNSATISFIABLE, conflict_id);
333}
@ UNSATISFIABLE
Definition cadical.hpp:30

◆ strengthen()

void CaDiCaL::VeripbTracer::strengthen ( int64_t id)
overridevirtual

Reimplemented from CaDiCaL::Tracer.

Definition at line 345 of file cadical_veripbtracer.cpp.

345 {
346 if (file->closed ())
347 return;
348 LOG ("VERIPB TRACER tracing strengthen of clause[%" PRId64 "]", id);
349 veripb_strengthen (id);
350}

◆ weaken_minus()

void CaDiCaL::VeripbTracer::weaken_minus ( int64_t id,
const vector< int > &  )
override

Definition at line 335 of file cadical_veripbtracer.cpp.

335 {
336 if (!checked_deletions)
337 return;
338 if (file->closed ())
339 return;
340 LOG ("VERIPB TRACER tracing weaken minus of clause[%" PRId64 "]", id);
341 last_id = id;
342 insert ();
343}

The documentation for this class was generated from the following files: