3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-22 02:57:50 +00:00

python for accessing lambda, switch to theory branching for QF_LRA

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-08-14 15:44:25 -07:00
parent 520ea65f32
commit 2b2f016f96
4 changed files with 14 additions and 13 deletions

View file

@ -175,10 +175,13 @@ public :
}
mpq bound;
for (const auto &p : m_row) {
bool str;
bool a_is_pos = is_pos(p.coeff());
mpq bound = total / p.coeff() + monoid_min_no_mult(a_is_pos, p.var(), str);
bound = total;
bound /= p.coeff();
bound += monoid_min_no_mult(a_is_pos, p.var(), str);
if (a_is_pos) {
limit_j(p.var(), bound, true, false, strict - static_cast<int>(str) > 0);
}

View file

@ -25,8 +25,8 @@ Revision History:
#include "util/vector.h"
namespace lp {
template < typename B> class stacked_vector {
vector<unsigned> m_stack_of_vector_sizes;
vector<unsigned> m_stack_of_change_sizes;
svector<unsigned> m_stack_of_vector_sizes;
svector<unsigned> m_stack_of_change_sizes;
vector<std::pair<unsigned, B>> m_changes;
vector<B> m_vector;
public:
@ -114,7 +114,7 @@ public:
}
template <typename T>
void pop_tail(vector<T> & v, unsigned k) {
void pop_tail(svector<T> & v, unsigned k) {
lp_assert(v.size() >= k);
v.resize(v.size() - k);
}