Skip to content

Commit 3baaba5

Browse files
Revert unsound NaN constraints in theory_fpa (#6993)
1 parent c0ee4e9 commit 3baaba5

File tree

2 files changed

+0
-30
lines changed

2 files changed

+0
-30
lines changed

src/smt/theory_fpa.cpp

-28
Original file line numberDiff line numberDiff line change
@@ -253,18 +253,6 @@ namespace smt {
253253
return true;
254254
}
255255

256-
void theory_fpa::mk_bv_nan(sort * s, expr_ref & result) {
257-
SASSERT(m_fpa_util.is_float(s));
258-
unsigned sbits = m_fpa_util.get_sbits(s);
259-
unsigned ebits = m_fpa_util.get_ebits(s);
260-
expr_ref exp(m), sgn(m), sig(m);
261-
exp = m_bv_util.mk_numeral(m_fpa_util.fm().m_powers2.m1(ebits), ebits);
262-
sgn = m_bv_util.mk_numeral(0, 1);
263-
sig = m_bv_util.mk_numeral(1, sbits - 1);
264-
expr * args[3] = {sgn, exp, sig};
265-
result = m_bv_util.mk_concat(3, args);
266-
}
267-
268256
bool theory_fpa::internalize_term(app * term) {
269257
TRACE("t_fpa_internalize", tout << "internalizing term: " << mk_ismt2_pp(term, m) << "\n";);
270258
SASSERT(term->get_family_id() == get_family_id());
@@ -298,22 +286,6 @@ namespace smt {
298286
default: /* ignore */;
299287
}
300288

301-
expr * owner = e->get_expr();
302-
sort * s = owner->get_sort();
303-
if (m_fpa_util.is_float(s))
304-
{
305-
TRACE("t_fpa", tout << "extra nan constraint for: " << mk_ismt2_pp(owner, m) << "\n";);
306-
expr_ref wrapped(m), is_nan(m), bv_nan(m);
307-
app_ref impl(m);
308-
wrapped = m_converter.wrap(owner);
309-
is_nan = m_fpa_util.mk_is_nan(owner);
310-
mk_bv_nan(s, bv_nan);
311-
impl = m.mk_or(m.mk_and(is_nan, m.mk_eq(wrapped, bv_nan)),
312-
m.mk_and(m.mk_not(is_nan), m.mk_not(m.mk_eq(wrapped, bv_nan))));
313-
assert_cnstr(impl);
314-
assert_cnstr(mk_side_conditions());
315-
}
316-
317289
if (!ctx.relevancy())
318290
relevant_eh(term);
319291
}

src/smt/theory_fpa.h

-2
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,6 @@ namespace smt {
124124
enode* ensure_enode(expr* e);
125125
enode* get_root(expr* a) { return ensure_enode(a)->get_root(); }
126126
app* get_ite_value(expr* e);
127-
128-
void mk_bv_nan(sort * s, expr_ref & result);
129127
};
130128

131129
};

0 commit comments

Comments
 (0)