mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 09:05:31 +00:00
more cleanup
This commit is contained in:
parent
a8586746be
commit
6ee3941523
17 changed files with 328 additions and 104 deletions
|
@ -866,24 +866,20 @@ app * bv_util::mk_numeral(rational const & val, sort* s) const {
|
|||
return mk_numeral(val, bv_size);
|
||||
}
|
||||
|
||||
void bv_util::log_mk_numeral(rational const & val, unsigned bv_size) const {
|
||||
if (bv_size % 4 == 0) {
|
||||
m_manager.trace_stream() << "#x";
|
||||
val.display_hex(m_manager.trace_stream(), bv_size);
|
||||
m_manager.trace_stream() << "\n";
|
||||
} else {
|
||||
m_manager.trace_stream() << "#b";
|
||||
val.display_bin(m_manager.trace_stream(), bv_size);
|
||||
m_manager.trace_stream() << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
app * bv_util::mk_numeral(rational const & val, unsigned bv_size) const {
|
||||
parameter p[2] = { parameter(val), parameter(static_cast<int>(bv_size)) };
|
||||
app * r = m_manager.mk_app(get_fid(), OP_BV_NUM, 2, p, 0, nullptr);
|
||||
|
||||
if (m_plugin->log_constant_meaning_prelude(r)) {
|
||||
log_mk_numeral(val, bv_size);
|
||||
if (bv_size % 4 == 0) {
|
||||
m_manager.trace_stream() << "#x";
|
||||
val.display_hex(m_manager.trace_stream(), bv_size);
|
||||
m_manager.trace_stream() << "\n";
|
||||
} else {
|
||||
m_manager.trace_stream() << "#b";
|
||||
val.display_bin(m_manager.trace_stream(), bv_size);
|
||||
m_manager.trace_stream() << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
return r;
|
||||
|
@ -904,4 +900,4 @@ app * bv_util::mk_bv2int(expr* e) {
|
|||
sort* s = m_manager.mk_sort(m_manager.mk_family_id("arith"), INT_SORT);
|
||||
parameter p(s);
|
||||
return m_manager.mk_app(get_fid(), OP_BV2INT, 1, &p, 1, &e);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -126,6 +126,7 @@ inline func_decl * get_div0_decl(ast_manager & m, func_decl * decl) {
|
|||
}
|
||||
|
||||
class bv_decl_plugin : public decl_plugin {
|
||||
friend class bv_util;
|
||||
protected:
|
||||
symbol m_bv_sym;
|
||||
symbol m_concat_sym;
|
||||
|
@ -239,7 +240,6 @@ protected:
|
|||
|
||||
void get_offset_term(app * a, expr * & t, rational & offset) const;
|
||||
|
||||
friend class bv_util;
|
||||
public:
|
||||
bv_decl_plugin();
|
||||
|
||||
|
@ -381,8 +381,6 @@ class bv_util : public bv_recognizers {
|
|||
ast_manager & m_manager;
|
||||
bv_decl_plugin * m_plugin;
|
||||
|
||||
void log_mk_numeral(rational const & val, unsigned bv_size) const;
|
||||
|
||||
public:
|
||||
bv_util(ast_manager & m);
|
||||
|
||||
|
@ -436,13 +434,12 @@ public:
|
|||
app * mk_bvsmul_no_udfl(expr* m, expr* n) { return m_manager.mk_app(get_fid(), OP_BSMUL_NO_UDFL, n, m); }
|
||||
app * mk_bvumul_no_ovfl(expr* m, expr* n) { return m_manager.mk_app(get_fid(), OP_BUMUL_NO_OVFL, n, m); }
|
||||
|
||||
app * mk_bv(unsigned n, expr* const* es) {
|
||||
app * r = m_manager.mk_app(get_fid(), OP_MKBV, n, es);
|
||||
|
||||
private:
|
||||
void log_bv_from_exprs(app * r, unsigned n, expr* const* es) {
|
||||
if (m_manager.has_trace_stream()) {
|
||||
for (unsigned i = 0; i < n; ++i) {
|
||||
if (!m_manager.is_true(es[i]) && !m_manager.is_true(es[i]))
|
||||
return r;
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_plugin->log_constant_meaning_prelude(r)) {
|
||||
|
@ -474,6 +471,13 @@ public:
|
|||
m_manager.trace_stream() << ")\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
app * mk_bv(unsigned n, expr* const* es) {
|
||||
app * r = m_manager.mk_app(get_fid(), OP_MKBV, n, es);
|
||||
|
||||
log_bv_from_exprs(r, n, es);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue