mirror of
https://github.com/Z3Prover/z3
synced 2025-07-18 02:16:40 +00:00
fix model completion bug in PDR, addhoc handling of reals for arithmetic realizers
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
2c66afadd6
commit
cec851440e
2 changed files with 12 additions and 3 deletions
|
@ -1863,11 +1863,18 @@ public:
|
|||
// x := coeff * x + s
|
||||
def = m_util.mk_add(m_util.mk_mul(x_t.get_coeff(), def), x_t.get_term());
|
||||
}
|
||||
if (is_strict) {
|
||||
SASSERT(m_util.m_arith.is_real(x));
|
||||
// We actually want a supremum, such that dual inequalities are satisfied.
|
||||
// i.e. for every dual inequality , if the dual bound is feasible, make sure to
|
||||
// choose a value in the feasible range.
|
||||
def = m_util.mk_sub(def, m_util.mk_one(x));
|
||||
}
|
||||
|
||||
m_util.simplify(def);
|
||||
|
||||
|
||||
TRACE("qe", tout << "TBD: " << a << " " << mk_pp(def, m) << "\n";);
|
||||
TRACE("qe", tout << "TBD (for Real): " << a << " " << mk_pp(def, m) << "\n";);
|
||||
}
|
||||
|
||||
expr_ref mk_not(expr* e) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue