3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-28 08:58:44 +00:00

Thread labels through tactic system

This commit is contained in:
Doug Woos 2017-01-27 11:06:14 -08:00
parent dc48008d46
commit 5796e15088
9 changed files with 82 additions and 9 deletions

View file

@ -174,7 +174,7 @@ void exec(tactic & t, goal_ref const & in, goal_ref_buffer & result, model_conve
}
}
lbool check_sat(tactic & t, goal_ref & g, model_ref & md, proof_ref & pr, expr_dependency_ref & core, std::string & reason_unknown) {
lbool check_sat(tactic & t, goal_ref & g, model_ref & md, svector<symbol> & labels, proof_ref & pr, expr_dependency_ref & core, std::string & reason_unknown) {
bool models_enabled = g->models_enabled();
bool proofs_enabled = g->proofs_enabled();
bool cores_enabled = g->unsat_core_enabled();
@ -199,6 +199,7 @@ lbool check_sat(tactic & t, goal_ref & g, model_ref & md, proof_ref & pr, expr_d
if (is_decided_sat(r)) {
if (models_enabled) {
(*mc)(labels, 0);
model_converter2model(m, mc.get(), md);
if (!md) {
// create empty model.
@ -215,7 +216,10 @@ lbool check_sat(tactic & t, goal_ref & g, model_ref & md, proof_ref & pr, expr_d
return l_false;
}
else {
if (models_enabled) model_converter2model(m, mc.get(), md);
if (models_enabled) {
model_converter2model(m, mc.get(), md);
(*mc)(labels, 0);
}
reason_unknown = "incomplete";
return l_undef;
}