3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-12 20:18:18 +00:00

fix #4050 - have to delay model compression because it may use internal symbols that have to be transformed. model compression is used prior to displaying certificate

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-04-22 13:33:36 -07:00
parent 95a78b2450
commit caa5b09046
2 changed files with 3 additions and 4 deletions

View file

@ -2895,8 +2895,7 @@ expr_ref context::get_answer()
} }
} }
expr_ref context::mk_unsat_answer() const expr_ref context::mk_unsat_answer() const {
{
expr_ref_vector refs(m); expr_ref_vector refs(m);
vector<relation_info> rs; vector<relation_info> rs;
get_level_property(m_inductive_lvl, refs, rs, use_bg_invs()); get_level_property(m_inductive_lvl, refs, rs, use_bg_invs());
@ -2961,7 +2960,7 @@ expr_ref context::get_ground_sat_answer() const {
} }
void context::display_certificate(std::ostream &out) const { void context::display_certificate(std::ostream &out) const {
switch(m_last_result) { switch (m_last_result) {
case l_false: case l_false:
out << mk_pp(mk_unsat_answer(), m); out << mk_pp(mk_unsat_answer(), m);
break; break;

View file

@ -99,7 +99,6 @@ void inductive_property::to_model(model_ref& md) const {
} }
TRACE("spacer", tout << *md;); TRACE("spacer", tout << *md;);
apply(const_cast<model_converter_ref&>(m_mc), md); apply(const_cast<model_converter_ref&>(m_mc), md);
md->compress();
} }
expr_ref inductive_property::to_expr() const expr_ref inductive_property::to_expr() const
@ -107,6 +106,7 @@ expr_ref inductive_property::to_expr() const
model_ref md; model_ref md;
expr_ref result(m); expr_ref result(m);
to_model(md); to_model(md);
md->compress();
model2expr(md, result); model2expr(md, result);
return result; return result;
} }