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:
parent
7053b7636b
commit
00d5dea9a5
3 changed files with 98 additions and 4 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue