mirror of
https://github.com/Z3Prover/z3
synced 2025-04-12 20:18:18 +00:00
fix #4836
This commit is contained in:
parent
260f759177
commit
bb24b3f2be
|
@ -409,6 +409,7 @@ public:
|
||||||
return m_manager.mk_app(get_fid(), OP_EXTRACT, 2, params, 1, &n);
|
return m_manager.mk_app(get_fid(), OP_EXTRACT, 2, params, 1, &n);
|
||||||
}
|
}
|
||||||
app * mk_concat(unsigned num, expr * const * args) { return m_manager.mk_app(get_fid(), OP_CONCAT, num, args); }
|
app * mk_concat(unsigned num, expr * const * args) { return m_manager.mk_app(get_fid(), OP_CONCAT, num, args); }
|
||||||
|
app * mk_concat(expr_ref_vector const& es) { return m_manager.mk_app(get_fid(), OP_CONCAT, es.size(), es.c_ptr()); }
|
||||||
app * mk_bv_or(unsigned num, expr * const * args) { return m_manager.mk_app(get_fid(), OP_BOR, num, args); }
|
app * mk_bv_or(unsigned num, expr * const * args) { return m_manager.mk_app(get_fid(), OP_BOR, num, args); }
|
||||||
app * mk_bv_and(unsigned num, expr * const * args) { return m_manager.mk_app(get_fid(), OP_BAND, num, args); }
|
app * mk_bv_and(unsigned num, expr * const * args) { return m_manager.mk_app(get_fid(), OP_BAND, num, args); }
|
||||||
app * mk_bv_xor(unsigned num, expr * const * args) { return m_manager.mk_app(get_fid(), OP_BXOR, num, args); }
|
app * mk_bv_xor(unsigned num, expr * const * args) { return m_manager.mk_app(get_fid(), OP_BXOR, num, args); }
|
||||||
|
|
|
@ -1252,7 +1252,10 @@ namespace smt {
|
||||||
TRACE("bv_bit_prop", tout << "propagating #" << get_enode(v2)->get_owner_id() << "[" << idx << "] = " << val2 << "\n";);
|
TRACE("bv_bit_prop", tout << "propagating #" << get_enode(v2)->get_owner_id() << "[" << idx << "] = " << val2 << "\n";);
|
||||||
TRACE("bv", tout << bit << " -> " << bit2 << " " << val << " -> " << val2 << " " << ctx.get_scope_level() << "\n";);
|
TRACE("bv", tout << bit << " -> " << bit2 << " " << val << " -> " << val2 << " " << ctx.get_scope_level() << "\n";);
|
||||||
|
|
||||||
SASSERT(bit != ~bit2);
|
if (bit == ~bit2) {
|
||||||
|
add_new_diseq_axiom(v, v2, idx);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (val != val2) {
|
if (val != val2) {
|
||||||
literal consequent = bit2;
|
literal consequent = bit2;
|
||||||
|
|
Loading…
Reference in a new issue