3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-21 10:41:35 +00:00
This commit is contained in:
Nikolaj Bjorner 2024-02-14 16:59:52 +07:00
parent bd323d6fab
commit 1cf008dd0a
4 changed files with 219 additions and 33 deletions

View file

@ -30,7 +30,7 @@ namespace bv {
ast_manager& m;
bv_util bv;
sls_fixed m_fix;
mpn_manager mpn;
mutable mpn_manager mpn;
ptr_vector<expr> m_todo;
random_gen m_rand;
@ -38,7 +38,7 @@ namespace bv {
bool_vector m_eval; // expr-id -> boolean valuation
bool_vector m_fixed; // expr-id -> is Boolean fixed
mutable svector<digit_t> m_tmp, m_tmp2, m_zero;
mutable svector<digit_t> m_tmp, m_tmp2, m_zero, m_one;
using bvval = sls_valuation;
@ -78,6 +78,10 @@ namespace bv {
bool try_repair_uge(bool e, bvval& a, bvval const& b);
bool try_repair_sle(bool e, bvval& a, bvval const& b);
bool try_repair_sge(bool e, bvval& a, bvval const& b);
bool try_repair_shl(bvval const& e, bvval& a, bvval& b, unsigned i);
bool try_repair_ashr(bvval const& e, bvval& a, bvval& b, unsigned i);
bool try_repair_lshr(bvval const& e, bvval& a, bvval& b, unsigned i);
bool try_repair_bit2bool(bvval& a, unsigned idx);
sls_valuation& wval0(app* e, unsigned i) { return wval0(e->get_arg(i)); }