mirror of
https://github.com/Z3Prover/z3
synced 2025-06-07 06:33:23 +00:00
na
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
6bd2a39fb7
commit
ae55d30961
4 changed files with 8 additions and 3 deletions
|
@ -138,7 +138,7 @@ namespace bv {
|
||||||
public:
|
public:
|
||||||
sls_eval(sls_terms& terms, sls::context& ctx);
|
sls_eval(sls_terms& terms, sls::context& ctx);
|
||||||
|
|
||||||
void tighten_range() { m_fix.init(); }
|
void init() { m_fix.init(); }
|
||||||
|
|
||||||
void register_term(expr* e);
|
void register_term(expr* e);
|
||||||
|
|
||||||
|
|
|
@ -486,7 +486,6 @@ namespace sls {
|
||||||
typename arith_base<num_t>::var_t arith_base<num_t>::mk_op(arith_op_kind k, expr* e, expr* x, expr* y) {
|
typename arith_base<num_t>::var_t arith_base<num_t>::mk_op(arith_op_kind k, expr* e, expr* x, expr* y) {
|
||||||
auto v = mk_var(e);
|
auto v = mk_var(e);
|
||||||
auto w = mk_term(x);
|
auto w = mk_term(x);
|
||||||
// auto u = mk_term(y);
|
|
||||||
unsigned idx = m_ops.size();
|
unsigned idx = m_ops.size();
|
||||||
num_t val;
|
num_t val;
|
||||||
switch (k) {
|
switch (k) {
|
||||||
|
|
|
@ -61,7 +61,7 @@ namespace sls {
|
||||||
|
|
||||||
void bv_plugin::initialize() {
|
void bv_plugin::initialize() {
|
||||||
if (!m_initialized) {
|
if (!m_initialized) {
|
||||||
m_eval.tighten_range();
|
m_eval.init();
|
||||||
m_initialized = true;
|
m_initialized = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,6 +55,9 @@ namespace bv {
|
||||||
sls::context ctx(m, solver);
|
sls::context ctx(m, solver);
|
||||||
sls_terms terms(ctx);
|
sls_terms terms(ctx);
|
||||||
sls_eval ev(terms, ctx);
|
sls_eval ev(terms, ctx);
|
||||||
|
for (auto e : es)
|
||||||
|
ev.register_term(e);
|
||||||
|
ev.init();
|
||||||
th_rewriter rw(m);
|
th_rewriter rw(m);
|
||||||
expr_ref r(e, m);
|
expr_ref r(e, m);
|
||||||
rw(r);
|
rw(r);
|
||||||
|
@ -171,6 +174,9 @@ namespace bv {
|
||||||
sls::context ctx(m, solver);
|
sls::context ctx(m, solver);
|
||||||
sls_terms terms(ctx);
|
sls_terms terms(ctx);
|
||||||
sls_eval ev(terms, ctx);
|
sls_eval ev(terms, ctx);
|
||||||
|
for (auto e : es)
|
||||||
|
ev.register_term(e);
|
||||||
|
ev.init();
|
||||||
|
|
||||||
if (m.is_bool(e1)) {
|
if (m.is_bool(e1)) {
|
||||||
SASSERT(m.is_true(r) || m.is_false(r));
|
SASSERT(m.is_true(r) || m.is_false(r));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue