mirror of
https://github.com/Z3Prover/z3
synced 2025-04-13 12:28:44 +00:00
BV: add missing neg internalizer
usually bvneg is eliminated during rewriting, but it can be left behind during e.g. a badly-timed timeout
This commit is contained in:
parent
cf4df08fd0
commit
a0f3727e90
|
@ -811,6 +811,7 @@ namespace smt {
|
|||
init_bits(e, bits);
|
||||
}
|
||||
|
||||
MK_UNARY(internalize_neg, mk_neg);
|
||||
MK_UNARY(internalize_not, mk_not);
|
||||
MK_UNARY(internalize_redand, mk_redand);
|
||||
MK_UNARY(internalize_redor, mk_redor);
|
||||
|
@ -895,6 +896,7 @@ namespace smt {
|
|||
}
|
||||
switch (term->get_decl_kind()) {
|
||||
case OP_BV_NUM: internalize_num(term); return true;
|
||||
case OP_BNEG: internalize_neg(term); return true;
|
||||
case OP_BADD: internalize_add(term); return true;
|
||||
case OP_BSUB: internalize_sub(term); return true;
|
||||
case OP_BMUL: internalize_mul(term); return true;
|
||||
|
|
|
@ -196,6 +196,7 @@ namespace smt {
|
|||
void internalize_ext_rotate_right(app * n);
|
||||
void internalize_and(app * n);
|
||||
void internalize_or(app * n);
|
||||
void internalize_neg(app * n);
|
||||
void internalize_not(app * n);
|
||||
void internalize_nand(app * n);
|
||||
void internalize_nor(app * n);
|
||||
|
|
Loading…
Reference in a new issue