mirror of
https://github.com/Z3Prover/z3
synced 2025-10-09 01:11:55 +00:00
fix #1828, add self-contained utility to extract arithmetical values for use in theory_seq and theory_str and other theories that access current values assigned to numeric variables
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
2b35f1a924
commit
286126dde9
4 changed files with 139 additions and 2 deletions
|
@ -4588,10 +4588,10 @@ bool theory_seq::lower_bound2(expr* _e, rational& lo) {
|
|||
theory_mi_arith* tha = get_th_arith<theory_mi_arith>(ctx, m_autil.get_family_id(), e);
|
||||
if (!tha) {
|
||||
theory_i_arith* thi = get_th_arith<theory_i_arith>(ctx, m_autil.get_family_id(), e);
|
||||
if (!thi || !thi->get_lower(ctx.get_enode(e), _lo)) return false;
|
||||
if (!thi || !thi->get_lower(ctx.get_enode(e), _lo) || !m_autil.is_numeral(_lo, lo)) return false;
|
||||
}
|
||||
enode *ee = ctx.get_enode(e);
|
||||
if (!tha->get_lower(ee, _lo) || m_autil.is_numeral(_lo, lo)) {
|
||||
if (tha && (!tha->get_lower(ee, _lo) || m_autil.is_numeral(_lo, lo))) {
|
||||
enode *next = ee->get_next();
|
||||
bool flag = false;
|
||||
while (next != ee) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue