3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-13 12:28:44 +00:00

Bugfixes for UFs and conversion functions in theory_fpa

This commit is contained in:
Christoph M. Wintersteiger 2015-10-08 11:54:35 +01:00
parent b60f30c802
commit a2503af585
2 changed files with 3 additions and 7 deletions

View file

@ -185,7 +185,7 @@ struct fpa2bv_rewriter_cfg : public default_rewriter_cfg {
bool is_float_uf = m_conv.is_float(f->get_range()) || m_conv.is_rm(f->get_range());
for (unsigned i = 0; i < num; i++)
is_float_uf |= m_conv.is_float(f->get_domain()[i]) || m_conv.is_rm(f->get_domain()[i]);
is_float_uf |= m_conv.is_float(args[i]) || m_conv.is_rm(args[i]);
if (is_float_uf)
{

View file

@ -652,10 +652,8 @@ namespace smt {
if (fu.is_float(xe) && fu.is_float(ye))
m_converter.mk_eq(xc, yc, c);
else if (fu.is_rm(xe) && fu.is_rm(ye))
else
c = m.mk_eq(xc, yc);
else
UNREACHABLE();
m_th_rw(c);
assert_cnstr(m.mk_iff(m.mk_eq(xe, ye), c));
@ -692,10 +690,8 @@ namespace smt {
m_converter.mk_eq(xc, yc, c);
c = m.mk_not(c);
}
else if (fu.is_rm(xe) && fu.is_rm(ye))
c = m.mk_not(m.mk_eq(xc, yc));
else
UNREACHABLE();
c = m.mk_not(m.mk_eq(xc, yc));
m_th_rw(c);
assert_cnstr(m.mk_iff(m.mk_not(m.mk_eq(xe, ye)), c));