3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 09:05:31 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2014-08-16 22:31:54 -07:00
parent 33f74b9c9f
commit f748a03ac7
10 changed files with 60 additions and 51 deletions

View file

@ -51,6 +51,7 @@ namespace sat {
m_config.updt_params(p);
m_conflicts_since_gc = 0;
m_next_simplify = 0;
m_num_checkpoints = 0;
}
solver::~solver() {

View file

@ -82,8 +82,8 @@ namespace sat {
scc m_scc;
asymm_branch m_asymm_branch;
probing m_probing;
mus m_mus;
wsls m_wsls;
mus m_mus; // MUS for minimal core extraction
wsls m_wsls; // SLS facility for MaxSAT use
bool m_inconsistent;
// A conflict is usually a single justification. That is, a justification
// for false. If m_not_l is not null_literal, then m_conflict is a
@ -123,9 +123,9 @@ namespace sat {
stopwatch m_stopwatch;
params_ref m_params;
scoped_ptr<solver> m_clone; // for debugging purposes
literal_vector m_assumptions;
literal_set m_assumption_set;
literal_vector m_core;
literal_vector m_assumptions; // additional assumptions during check
literal_set m_assumption_set; // set of enabled assumptions
literal_vector m_core; // unsat core
void del_clauses(clause * const * begin, clause * const * end);
@ -230,6 +230,9 @@ namespace sat {
clause_offset get_offset(clause const & c) const { return m_cls_allocator.get_offset(&c); }
void checkpoint() {
if (m_cancel) throw solver_exception(Z3_CANCELED_MSG);
++m_num_checkpoints;
if (m_num_checkpoints < 10) return;
m_num_checkpoints = 0;
if (memory::get_allocation_size() > m_config.m_max_memory) throw solver_exception(Z3_MAX_MEMORY_MSG);
}
typedef std::pair<literal, literal> bin_clause;
@ -275,6 +278,7 @@ namespace sat {
unsigned m_luby_idx;
unsigned m_conflicts_since_gc;
unsigned m_gc_threshold;
unsigned m_num_checkpoints;
double m_min_d_tk;
unsigned m_next_simplify;
bool decide();