3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 01:25:31 +00:00

FPA API: reintroduced to_ieee_bv

Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
This commit is contained in:
Christoph M. Wintersteiger 2014-12-11 12:05:52 +00:00
parent 72dbb2a513
commit d6ac98a494
6 changed files with 74 additions and 5 deletions

View file

@ -135,7 +135,13 @@ namespace smt {
simp(a->get_arg(2), exp, pr_exp);
m_converter.mk_triple(sgn, sig, exp, bv_term);
}
}
else if (term->get_decl_kind() == OP_FLOAT_TO_IEEE_BV) {
SASSERT(is_app(t));
expr_ref bv_e(m);
proof_ref bv_pr(m);
simp(t, bv_term, bv_pr);
}
else
NOT_IMPLEMENTED_YET();
@ -414,6 +420,17 @@ namespace smt {
ctx.mark_as_relevant(bv_sig);
ctx.mark_as_relevant(bv_exp);
}
else if (n->get_decl()->get_decl_kind() == OP_FLOAT_TO_IEEE_BV) {
expr_ref eq(m);
app * ex_a = to_app(ex);
if (n->get_id() > ex_a->get_id())
std::swap(n, ex_a);
eq = m.mk_eq(n, ex_a);
ctx.internalize(eq, false);
literal l = ctx.get_literal(eq);
ctx.mk_th_axiom(get_id(), 1, &l);
ctx.mark_as_relevant(l);
}
else
NOT_IMPLEMENTED_YET();
}