Working DRS with one process

This commit is contained in:
Artur Meski
2018-04-03 20:05:50 +01:00
parent 5f578c9066
commit 95d8123a6b
4 changed files with 46 additions and 45 deletions

20
mc.cc
View File

@@ -16,7 +16,15 @@ ModelChecker::ModelChecker(SymRS *srs, Options *opts)
pv_succ = srs->getEncPVsucc();
pv_E = srs->getEncPV_E();
pv_succ_E = srs->getEncPVsucc_E();
pv_act_E = srs->getEncPVact_E();
pv_ctx_E = srs->getEncPVctx_E();
pv_proc_enab_E = srs->getEncPVproc_enab_E();
assert(pv != nullptr);
assert(pv_succ != nullptr);
assert(pv_E != nullptr);
assert(pv_succ_E != nullptr);
assert(pv_ctx_E != nullptr);
assert(pv_proc_enab_E != nullptr);
//
// Transition relations
@@ -69,10 +77,12 @@ inline BDD ModelChecker::getSucc(const BDD &states)
}
else {
q *= states * *trm;
BDD_PRINT(q);
}
q = (q.ExistAbstract(*pv_E)).SwapVariables(*pv_succ, *pv);
q = q.ExistAbstract(*pv_act_E);
q = q.ExistAbstract(*pv_ctx_E);
q = q.ExistAbstract(*pv_proc_enab_E);
return q;
}
@@ -93,7 +103,7 @@ inline BDD ModelChecker::getPreE(const BDD &states)
}
q = q.ExistAbstract(*pv_succ_E);
q = q.ExistAbstract(*pv_act_E);
q = q.ExistAbstract(*pv_ctx_E);
return q;
}
@@ -113,7 +123,7 @@ inline BDD ModelChecker::getPreEctx(const BDD &states, const BDD *contexts)
}
q = q.ExistAbstract(*pv_succ_E);
q = q.ExistAbstract(*pv_act_E);
q = q.ExistAbstract(*pv_ctx_E);
return q;
}
@@ -147,9 +157,7 @@ void ModelChecker::printReach(void)
}
dropCtxAutStatePart(*reach);
srs->printDecodedRctSysStates(*reach);
cleanup();
if (opts->measure) {