3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-03 01:40:22 +00:00

debugging imdds and fixed bug in horn subsumption model transformer

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2012-10-10 17:56:37 -07:00
parent a50d8d6b6c
commit 233f7fd53b
14 changed files with 297 additions and 70 deletions

View file

@ -1214,9 +1214,8 @@ namespace datalog {
lbool context::pdr_query(expr* query) {
ensure_pdr();
lbool result = m_pdr->query(query);
m_last_answer = m_pdr->get_answer();
return result;
m_last_answer = 0;
return m_pdr->query(query);
}
void context::ensure_bmc() {
@ -1227,9 +1226,8 @@ namespace datalog {
lbool context::bmc_query(expr* query) {
ensure_bmc();
lbool result = m_bmc->query(query);
m_last_answer = m_bmc->get_answer();
return result;
m_last_answer = 0;
return m_bmc->query(query);
}
#define BEGIN_QUERY() \
@ -1442,6 +1440,23 @@ namespace datalog {
}
expr* context::get_answer_as_formula() {
if (m_last_answer) {
return m_last_answer.get();
}
switch(get_engine()) {
case PDR_ENGINE:
case QPDR_ENGINE:
ensure_pdr();
m_last_answer = m_pdr->get_answer();
return m_last_answer.get();
case BMC_ENGINE:
ensure_bmc();
m_last_answer = m_bmc->get_answer();
return m_last_answer.get();
default:
UNREACHABLE();
}
m_last_answer = m.mk_false();
return m_last_answer.get();
}