3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-16 07:45:27 +00:00

working on new clause organization

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-09-26 14:39:33 -07:00
parent 7b9156dd5b
commit 1149955893
2 changed files with 67 additions and 6 deletions

View file

@ -125,10 +125,12 @@ namespace sat {
void reset() { memset(this, 0, sizeof(*this)); }
};
#ifndef NEW_CLAUSE
struct ternary {
ternary(literal u, literal v, literal w): m_u(u), m_v(v), m_w(w) {}
literal m_u, m_v, m_w;
};
#endif
#ifdef NEW_CLAUSE
struct binary {
@ -172,10 +174,10 @@ namespace sat {
clause_vector m_clauses; // non-binary clauses
clause_vector m_retired_clauses; // clauses that were removed during search
unsigned_vector m_retired_clause_lim;
#endif
svector<ternary> m_retired_ternary; // ternary removed during search
unsigned_vector m_retired_ternary_lim;
clause_allocator m_cls_allocator;
clause_allocator m_cls_allocator;
#endif
bool m_inconsistent;
unsigned_vector m_bstamp; // literal: timestamp for binary implication
vector<svector<double> > m_H; // literal: fitness score
@ -188,7 +190,9 @@ namespace sat {
const unsigned c_fixed_truth = UINT_MAX - 1;
vector<watch_list> m_watches; // literal: watch structure
svector<lit_info> m_lits; // literal: attributes.
#ifndef NEW_CLAUSE
vector<clause_vector> m_full_watches; // literal: full watch list, used to ensure that autarky reduction is sound
#endif
double m_lookahead_reward; // metric associated with current lookahead1 literal.
literal_vector m_wstack; // windofall stack that is populated in lookahead1 mode
uint64 m_prefix; // where we are in search tree