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

prepare for transitive reduction / hyper-binary clause addition

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-11-22 13:46:02 -08:00
parent 8230cbef4c
commit 1101c927c9
3 changed files with 74 additions and 22 deletions

View file

@ -387,6 +387,7 @@ namespace sat {
literal m_active;
unsigned m_rank;
unsigned m_rank_max;
literal m_settled;
vector<dfs_info> m_dfs;
@ -394,7 +395,7 @@ namespace sat {
void init_scc();
void init_dfs_info(literal l);
void init_arcs(literal l);
void add_arc(literal u, literal v) { m_dfs[u.index()].m_next.push_back(v); }
void add_arc(literal u, literal v);
bool has_arc(literal v) const { return m_dfs[v.index()].m_next.size() > m_dfs[v.index()].m_nextp; }
arcs get_arcs(literal v) const { return m_dfs[v.index()].m_next; }
literal pop_arc(literal u) { return m_dfs[u.index()].m_next[m_dfs[u.index()].m_nextp++]; }
@ -402,6 +403,7 @@ namespace sat {
literal get_next(literal u, unsigned i) const { return m_dfs[u.index()].m_next[i]; }
literal get_min(literal v) const { return m_dfs[v.index()].m_min; }
unsigned get_rank(literal v) const { return m_dfs[v.index()].m_rank; }
bool maxed_rank(literal v) const { return get_rank(v) >= m_rank_max; }
unsigned get_height(literal v) const { return m_dfs[v.index()].m_height; }
literal get_parent(literal u) const { return m_dfs[u.index()].m_parent; }
literal get_link(literal u) const { return m_dfs[u.index()].m_link; }