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

Merge pull request #881 from dwoos/tactic-labels

Thread labels through tactic system
This commit is contained in:
Christoph M. Wintersteiger 2017-02-04 20:37:11 +00:00 committed by GitHub
commit 5682c43604
9 changed files with 82 additions and 9 deletions

View file

@ -175,7 +175,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, labels_vec & 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();
@ -200,6 +200,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.
@ -216,7 +217,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;
}