3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 09:35:32 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-04-04 12:53:24 -07:00
parent 64d157d81e
commit c70e9af09d
5 changed files with 26 additions and 14 deletions

View file

@ -22,7 +22,8 @@ Notes:
#include "tactic/goal.h"
bound_manager::bound_manager(ast_manager & m):
m_util(m) {
m_util(m),
m_bounded_vars(m) {
}
bound_manager::~bound_manager() {
@ -164,7 +165,6 @@ void bound_manager::insert_upper(expr * v, bool strict, numeral const & n, expr_
m_upper_deps.insert(v, d);
if (!m_lowers.contains(v)) {
m_bounded_vars.push_back(v);
m().inc_ref(v);
}
}
}
@ -185,7 +185,6 @@ void bound_manager::insert_lower(expr * v, bool strict, numeral const & n, expr_
m_lower_deps.insert(v, d);
if (!m_uppers.contains(v)) {
m_bounded_vars.push_back(v);
m().inc_ref(v);
}
}
}
@ -253,8 +252,8 @@ void bound_manager::operator()(goal const & g) {
}
}
void bound_manager::reset() {
m().dec_array_ref(m_bounded_vars.size(), m_bounded_vars.c_ptr());
m_bounded_vars.finalize();
m_lowers.finalize();
m_uppers.finalize();

View file

@ -34,7 +34,7 @@ private:
obj_map<expr, limit> m_uppers;
obj_map<expr, expr_dependency*> m_lower_deps;
obj_map<expr, expr_dependency*> m_upper_deps;
ptr_vector<expr> m_bounded_vars;
expr_ref_vector m_bounded_vars;
bool is_disjunctive_bound(expr * f, expr_dependency * d);
bool is_equality_bound(expr * f, expr_dependency * d);
bool is_numeral(expr* v, rational& n, bool& is_int);