mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 01:25:31 +00:00
create special case for osx arm
shortcut when store/select are distinct Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
42f5047463
commit
774ce3d7ab
3 changed files with 12 additions and 3 deletions
|
@ -91,9 +91,9 @@ namespace smt {
|
|||
d->m_parent_selects.push_back(s);
|
||||
TRACE("array", tout << v << " " << mk_pp(s->get_expr(), m) << " " << mk_pp(get_enode(v)->get_expr(), m) << "\n";);
|
||||
m_trail_stack.push(push_back_trail<enode *, false>(d->m_parent_selects));
|
||||
for (enode* n : d->m_stores) {
|
||||
for (enode* n : d->m_stores)
|
||||
instantiate_axiom2a(s, n);
|
||||
}
|
||||
|
||||
if (!m_params.m_array_delay_exp_axiom && d->m_prop_upward) {
|
||||
for (enode* store : d->m_parent_stores) {
|
||||
SASSERT(is_store(store));
|
||||
|
|
|
@ -179,6 +179,12 @@ namespace smt {
|
|||
conseq_expr = ctx.bool_var2expr(conseq.var());
|
||||
}
|
||||
|
||||
if (m.are_distinct(idx1->get_expr(), idx2->get_expr())) {
|
||||
ctx.mark_as_relevant(conseq);
|
||||
assert_axiom(conseq);
|
||||
continue;
|
||||
}
|
||||
|
||||
literal ante = mk_eq(idx1->get_expr(), idx2->get_expr(), true);
|
||||
ctx.mark_as_relevant(ante);
|
||||
// ctx.force_phase(ante);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue