3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-20 10:10:21 +00:00

FPA: added support for rewriting quantified floats to quantified bit-vectors.

Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
This commit is contained in:
Christoph M. Wintersteiger 2013-05-02 15:24:07 +01:00
parent 7053b7636b
commit 00d5dea9a5
3 changed files with 98 additions and 4 deletions

View file

@ -150,6 +150,20 @@ void fpa2bv_converter::mk_const(func_decl * f, expr_ref & result) {
}
}
void fpa2bv_converter::mk_var(unsigned base_inx, sort * srt, expr_ref & result) {
SASSERT(is_float(srt));
unsigned ebits = m_util.get_ebits(srt);
unsigned sbits = m_util.get_sbits(srt);
expr_ref sgn(m), s(m), e(m);
sgn = m.mk_var(base_inx, m_bv_util.mk_sort(1));
s = m.mk_var(base_inx + 1, m_bv_util.mk_sort(sbits-1));
e = m.mk_var(base_inx + 2, m_bv_util.mk_sort(ebits));
mk_triple(sgn, s, e, result);
}
void fpa2bv_converter::mk_rm_const(func_decl * f, expr_ref & result) {
SASSERT(f->get_family_id() == null_family_id);