|
@ -54,18 +54,18 @@ namespace modelChecker { |
|
|
*/ |
|
|
*/ |
|
|
template<class T> |
|
|
template<class T> |
|
|
class DtmcPrctlModelChecker { |
|
|
class DtmcPrctlModelChecker { |
|
|
public: |
|
|
|
|
|
|
|
|
public: |
|
|
/*! |
|
|
/*! |
|
|
* Constructor |
|
|
* Constructor |
|
|
* |
|
|
* |
|
|
* @parameter Dtmc The dtmc model which is checked. |
|
|
|
|
|
|
|
|
* @param Dtmc The dtmc model which is checked. |
|
|
*/ |
|
|
*/ |
|
|
explicit DtmcPrctlModelChecker(mrmc::models::Dtmc<T>* Dtmc); |
|
|
explicit DtmcPrctlModelChecker(mrmc::models::Dtmc<T>* Dtmc); |
|
|
|
|
|
|
|
|
/*! |
|
|
/*! |
|
|
* Copy constructor |
|
|
* Copy constructor |
|
|
* |
|
|
* |
|
|
* @parameter modelChecker The model checker that is copied. |
|
|
|
|
|
|
|
|
* @param modelChecker The model checker that is copied. |
|
|
*/ |
|
|
*/ |
|
|
explicit DtmcPrctlModelChecker(mrmc::modelChecker::DtmcPrctlModelChecker<T>* modelChecker); |
|
|
explicit DtmcPrctlModelChecker(mrmc::modelChecker::DtmcPrctlModelChecker<T>* modelChecker); |
|
|
|
|
|
|
|
@ -130,7 +130,7 @@ class DtmcPrctlModelChecker { |
|
|
* @param formula The AP state formula to check |
|
|
* @param formula The AP state formula to check |
|
|
* @returns The set of states satisfying the formula, represented by a bit vector |
|
|
* @returns The set of states satisfying the formula, represented by a bit vector |
|
|
*/ |
|
|
*/ |
|
|
virtual mrmc::storage::BitVector checkAP(mrmc::formula::AP<T>*) = 0; |
|
|
|
|
|
|
|
|
virtual mrmc::storage::BitVector checkAP(mrmc::formula::AP<T>* formula) = 0; |
|
|
|
|
|
|
|
|
/*! |
|
|
/*! |
|
|
* The check method for a formula with a Not node as root in its formula tree |
|
|
* The check method for a formula with a Not node as root in its formula tree |
|
@ -138,7 +138,7 @@ class DtmcPrctlModelChecker { |
|
|
* @param formula The Not state formula to check |
|
|
* @param formula The Not state formula to check |
|
|
* @returns The set of states satisfying the formula, represented by a bit vector |
|
|
* @returns The set of states satisfying the formula, represented by a bit vector |
|
|
*/ |
|
|
*/ |
|
|
virtual mrmc::storage::BitVector checkNot(mrmc::formula::Not<T>*) = 0; |
|
|
|
|
|
|
|
|
virtual mrmc::storage::BitVector checkNot(mrmc::formula::Not<T>* formula) = 0; |
|
|
|
|
|
|
|
|
/*! |
|
|
/*! |
|
|
* The check method for a state formula with an Or node as root in its formula tree |
|
|
* The check method for a state formula with an Or node as root in its formula tree |
|
@ -146,7 +146,7 @@ class DtmcPrctlModelChecker { |
|
|
* @param formula The Or state formula to check |
|
|
* @param formula The Or state formula to check |
|
|
* @returns The set of states satisfying the formula, represented by a bit vector |
|
|
* @returns The set of states satisfying the formula, represented by a bit vector |
|
|
*/ |
|
|
*/ |
|
|
virtual mrmc::storage::BitVector checkOr(mrmc::formula::Or<T>*) = 0; |
|
|
|
|
|
|
|
|
virtual mrmc::storage::BitVector checkOr(mrmc::formula::Or<T>* formula) = 0; |
|
|
|
|
|
|
|
|
/*! |
|
|
/*! |
|
|
* The check method for a state formula with a probabilistic operator node as root in its formula tree |
|
|
* The check method for a state formula with a probabilistic operator node as root in its formula tree |
|
@ -154,7 +154,7 @@ class DtmcPrctlModelChecker { |
|
|
* @param formula The state formula to check |
|
|
* @param formula The state formula to check |
|
|
* @returns The set of states satisfying the formula, represented by a bit vector |
|
|
* @returns The set of states satisfying the formula, represented by a bit vector |
|
|
*/ |
|
|
*/ |
|
|
virtual mrmc::storage::BitVector checkProbabilisticOperator(mrmc::formula::ProbabilisticOperator<T>*) = 0; |
|
|
|
|
|
|
|
|
virtual mrmc::storage::BitVector checkProbabilisticOperator(mrmc::formula::ProbabilisticOperator<T>* formula) = 0; |
|
|
|
|
|
|
|
|
/*! |
|
|
/*! |
|
|
* The check method for a path formula; Will infer the actual type of formula and delegate it |
|
|
* The check method for a path formula; Will infer the actual type of formula and delegate it |
|
@ -173,7 +173,7 @@ class DtmcPrctlModelChecker { |
|
|
* @param formula The Bounded Until path formula to check |
|
|
* @param formula The Bounded Until path formula to check |
|
|
* @returns for each state the probability that the path formula holds. |
|
|
* @returns for each state the probability that the path formula holds. |
|
|
*/ |
|
|
*/ |
|
|
virtual std::vector<T> checkBoundedUntil(mrmc::formula::BoundedUntil<T>*) = 0; |
|
|
|
|
|
|
|
|
virtual std::vector<T> checkBoundedUntil(mrmc::formula::BoundedUntil<T>* formula) = 0; |
|
|
|
|
|
|
|
|
/*! |
|
|
/*! |
|
|
* The check method for a path formula with a Next operator node as root in its formula tree |
|
|
* The check method for a path formula with a Next operator node as root in its formula tree |
|
@ -181,7 +181,7 @@ class DtmcPrctlModelChecker { |
|
|
* @param formula The Next path formula to check |
|
|
* @param formula The Next path formula to check |
|
|
* @returns for each state the probability that the path formula holds. |
|
|
* @returns for each state the probability that the path formula holds. |
|
|
*/ |
|
|
*/ |
|
|
virtual std::vector<T> checkNext(mrmc::formula::Next<T>*) = 0; |
|
|
|
|
|
|
|
|
virtual std::vector<T> checkNext(mrmc::formula::Next<T>* formula) = 0; |
|
|
|
|
|
|
|
|
/*! |
|
|
/*! |
|
|
* The check method for a path formula with an Until operator node as root in its formula tree |
|
|
* The check method for a path formula with an Until operator node as root in its formula tree |
|
@ -189,9 +189,9 @@ class DtmcPrctlModelChecker { |
|
|
* @param formula The Until path formula to check |
|
|
* @param formula The Until path formula to check |
|
|
* @returns for each state the probability that the path formula holds. |
|
|
* @returns for each state the probability that the path formula holds. |
|
|
*/ |
|
|
*/ |
|
|
virtual std::vector<T> checkUntil(mrmc::formula::Until<T>*) = 0; |
|
|
|
|
|
|
|
|
virtual std::vector<T> checkUntil(mrmc::formula::Until<T>* formula) = 0; |
|
|
|
|
|
|
|
|
private: |
|
|
|
|
|
|
|
|
private: |
|
|
mrmc::models::Dtmc<T>* dtmc; |
|
|
mrmc::models::Dtmc<T>* dtmc; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|