@ -1,5 +1,7 @@
# include "modelchecking.h"
# include "result.h"
# include "storm/api/storm.h"
# include "storm/environment/Environment.h"
# include "storm/modelchecker/csl/helper/SparseCtmcCslHelper.h"
template < typename ValueType >
using CheckTask = storm : : modelchecker : : CheckTask < storm : : logic : : Formula , ValueType > ;
@ -10,6 +12,12 @@ std::shared_ptr<storm::modelchecker::CheckResult> modelCheckingSparseEngine(std:
return storm : : api : : verifyWithSparseEngine < ValueType > ( model , task ) ;
}
std : : vector < double > computeTransientProbabilities ( storm : : Environment const & env , std : : shared_ptr < storm : : models : : sparse : : Ctmc < double > > ctmc , storm : : storage : : BitVector const & phiStates , storm : : storage : : BitVector const & psiStates , double timeBound ) {
return storm : : modelchecker : : helper : : SparseCtmcCslHelper : : computeAllTransientProbabilities ( env , ctmc - > getTransitionMatrix ( ) , ctmc - > getBackwardTransitions ( ) , ctmc - > getInitialStates ( ) , phiStates , psiStates , ctmc - > getExitRateVector ( ) , timeBound ) ;
}
// Thin wrapper for computing prob01 states
template < typename ValueType >
std : : pair < storm : : storage : : BitVector , storm : : storage : : BitVector > computeProb01 ( storm : : models : : sparse : : Dtmc < ValueType > const & model , storm : : storage : : BitVector const & phiStates , storm : : storage : : BitVector const & psiStates ) {
@ -44,6 +52,7 @@ void define_modelchecking(py::module& m) {
// Model checking
m . def ( " _model_checking_sparse_engine " , & modelCheckingSparseEngine < double > , " Perform model checking " , py : : arg ( " model " ) , py : : arg ( " task " ) ) ;
m . def ( " _parametric_model_checking_sparse_engine " , & modelCheckingSparseEngine < storm : : RationalFunction > , " Perform parametric model checking " , py : : arg ( " model " ) , py : : arg ( " task " ) ) ;
m . def ( " compute_transient_probabilities " , & computeTransientProbabilities , " Compute transient probabilities " ) ;
m . def ( " _compute_prob01states_double " , & computeProb01 < double > , " Compute prob-0-1 states " , py : : arg ( " model " ) , py : : arg ( " phi_states " ) , py : : arg ( " psi_states " ) ) ;
m . def ( " _compute_prob01states_rationalfunc " , & computeProb01 < storm : : RationalFunction > , " Compute prob-0-1 states " , py : : arg ( " model " ) , py : : arg ( " phi_states " ) , py : : arg ( " psi_states " ) ) ;
m . def ( " _compute_prob01states_min_double " , & computeProb01min < double > , " Compute prob-0-1 states (min) " , py : : arg ( " model " ) , py : : arg ( " phi_states " ) , py : : arg ( " psi_states " ) ) ;