mirror of
https://github.com/Z3Prover/z3
synced 2025-05-04 14:25:46 +00:00
handle non-linear division axioms, consolidate backtracking state in nla_core
this update enables new incremental linear axioms based on division terms. It also consolidates some of the backtracking state in nla_core / emons to use stack traces instead of custom backtracking state.
This commit is contained in:
parent
4ffe3fab05
commit
8e37e2f913
9 changed files with 196 additions and 81 deletions
|
@ -87,15 +87,15 @@ class emonics {
|
|||
var_eqs<emonics>& m_ve;
|
||||
mutable vector<monic> m_monics; // set of monics
|
||||
mutable unsigned_vector m_var2index; // var_mIndex -> mIndex
|
||||
unsigned_vector m_lim; // backtracking point
|
||||
mutable unsigned m_visited; // timestamp of visited monics during pf_iterator
|
||||
region m_region; // region for allocating linked lists
|
||||
mutable svector<head_tail> m_use_lists; // use list of monics where variables occur.
|
||||
hash_canonical m_cg_hash;
|
||||
eq_canonical m_cg_eq;
|
||||
map<lpvar, unsigned_vector, hash_canonical, eq_canonical> m_cg_table; // congruence (canonical) table.
|
||||
|
||||
|
||||
void pop_monic();
|
||||
|
||||
void inc_visited() const;
|
||||
|
||||
void remove_cell(head_tail& v);
|
||||
|
@ -115,6 +115,8 @@ class emonics {
|
|||
std::ostream& display_use(std::ostream& out) const;
|
||||
std::ostream& display_uf(std::ostream& out) const;
|
||||
std::ostream& display(std::ostream& out, cell* c) const;
|
||||
|
||||
|
||||
public:
|
||||
unsigned number_of_monics() const { return m_monics.size(); }
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue