Quantification for only the i-th process

This commit is contained in:
Artur Meski
2018-04-21 19:15:06 +01:00
parent f5e0beb513
commit 09578a075f
2 changed files with 29 additions and 0 deletions

24
mc.cc
View File

@@ -430,6 +430,30 @@ BDD ModelChecker::statesEFctx(const BDD *contexts, const BDD &states)
return x;
}
BDD ModelChecker::getIthOnly(Process proc_id)
{
/* if possible, we return the BDD from cache */
if (ith_only_E.count(proc_id) == 1) {
return ith_only_E[proc_id];
}
/* nothing has been found in the cache */
BDD bdd = BDD_TRUE;
for (auto i = 0; i < pv_drs_E->size(); ++i) {
if (i == proc_id) {
continue;
}
bdd *= (*pv_drs_E)[i];
}
ith_only_E[proc_id] = bdd;
return bdd;
}
bool ModelChecker::checkRSCTL(FormRSCTL *form)
{
if (form->isERSCTL()) {