mirror of
https://github.com/Z3Prover/z3
synced 2025-06-21 05:13:39 +00:00
make verbose model only use simplified rules
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
29a45e34a2
commit
8592f5cef4
3 changed files with 11 additions and 6 deletions
|
@ -97,7 +97,6 @@ namespace pdr {
|
||||||
np += m_levels[i].size();
|
np += m_levels[i].size();
|
||||||
}
|
}
|
||||||
st.update("PDR num properties", np);
|
st.update("PDR num properties", np);
|
||||||
std::cout << m_stats.m_num_propagations << " " << np << "\n";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void pred_transformer::reset_statistics() {
|
void pred_transformer::reset_statistics() {
|
||||||
|
@ -1501,7 +1500,14 @@ namespace pdr {
|
||||||
simplify_formulas();
|
simplify_formulas();
|
||||||
m_last_result = l_false;
|
m_last_result = l_false;
|
||||||
TRACE("pdr", display_certificate(tout););
|
TRACE("pdr", display_certificate(tout););
|
||||||
IF_VERBOSE(1, display_certificate(verbose_stream()););
|
IF_VERBOSE(1, {
|
||||||
|
expr_ref_vector refs(m);
|
||||||
|
vector<relation_info> rs;
|
||||||
|
get_level_property(m_inductive_lvl, refs, rs);
|
||||||
|
model_converter_ref mc;
|
||||||
|
inductive_property ex(m, mc, rs);
|
||||||
|
verbose_stream() << ex.to_string();
|
||||||
|
});
|
||||||
validate();
|
validate();
|
||||||
return l_false;
|
return l_false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -251,8 +251,8 @@ void dl_interface::collect_params(param_descrs& p) {
|
||||||
"checking for reachability (not only during cube weakening)"););
|
"checking for reachability (not only during cube weakening)"););
|
||||||
PRIVATE_PARAMS(p.insert(":max-num-contexts", CPK_UINT, "PDR: (default 500) maximal number of contexts to create"););
|
PRIVATE_PARAMS(p.insert(":max-num-contexts", CPK_UINT, "PDR: (default 500) maximal number of contexts to create"););
|
||||||
PRIVATE_PARAMS(p.insert(":try-minimize-core", CPK_BOOL, "PDR: (default false) try to reduce core size (before inductive minimization)"););
|
PRIVATE_PARAMS(p.insert(":try-minimize-core", CPK_BOOL, "PDR: (default false) try to reduce core size (before inductive minimization)"););
|
||||||
PRIVATE_PARAMS(p.insert(":simplify-formulas-pre", CPK_BOOL, "PDR: (default false) simplify derived formulas before inductive propagation"););
|
p.insert(":simplify-formulas-pre", CPK_BOOL, "PDR: (default false) simplify derived formulas before inductive propagation");
|
||||||
PRIVATE_PARAMS(p.insert(":simplify-formulas-post", CPK_BOOL, "PDR: (default false) simplify derived formulas after inductive propagation"););
|
p.insert(":simplify-formulas-post", CPK_BOOL, "PDR: (default false) simplify derived formulas after inductive propagation");
|
||||||
p.insert(":slice", CPK_BOOL, "PDR: (default true) simplify clause set using slicing");
|
p.insert(":slice", CPK_BOOL, "PDR: (default true) simplify clause set using slicing");
|
||||||
p.insert(":coalesce-rules", CPK_BOOL, "BMC: (default false) coalesce rules");
|
p.insert(":coalesce-rules", CPK_BOOL, "BMC: (default false) coalesce rules");
|
||||||
}
|
}
|
||||||
|
|
|
@ -324,13 +324,12 @@ expr_ref_vector model_evaluator::prune_by_cone_of_influence(ptr_vector<expr> con
|
||||||
unsigned sz = m_model->get_num_constants();
|
unsigned sz = m_model->get_num_constants();
|
||||||
expr_ref e(m), eq(m);
|
expr_ref e(m), eq(m);
|
||||||
expr_ref_vector model(m);
|
expr_ref_vector model(m);
|
||||||
bool_rewriter rw(m);
|
|
||||||
for (unsigned i = 0; i < sz; i++) {
|
for (unsigned i = 0; i < sz; i++) {
|
||||||
func_decl * d = m_model->get_constant(i);
|
func_decl * d = m_model->get_constant(i);
|
||||||
expr* val = m_model->get_const_interp(d);
|
expr* val = m_model->get_const_interp(d);
|
||||||
e = m.mk_const(d);
|
e = m.mk_const(d);
|
||||||
if (m_visited.is_marked(e)) {
|
if (m_visited.is_marked(e)) {
|
||||||
rw.mk_eq(e, val, eq);
|
eq = m.mk_eq(e, val);
|
||||||
model.push_back(eq);
|
model.push_back(eq);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue