3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-05 10:50:24 +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:
Nikolaj Bjorner 2023-01-29 17:22:57 -08:00
parent 4ffe3fab05
commit 8e37e2f913
9 changed files with 196 additions and 81 deletions

View file

@ -24,10 +24,14 @@ namespace nla {
class solver {
core* m_core;
public:
void add_monic(lpvar v, unsigned sz, lpvar const* vs);
void add_idivision(lpvar r, lpvar x, lpvar y);
solver(lp::lar_solver& s, reslimit& limit);
~solver();
void add_monic(lpvar v, unsigned sz, lpvar const* vs);
void add_idivision(lpvar r, lpvar x, lpvar y);
void add_rdivision(lpvar r, lpvar x, lpvar y);
void set_relevant(std::function<bool(lpvar)>& is_relevant);
nla_settings& settings();
void push();
void pop(unsigned scopes);