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:
parent
b60f30c802
commit
a2503af585
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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));
|
||||
|
|
Loading…
Reference in a new issue