@ -132,6 +132,7 @@ namespace storm {
< < da - > getAPSet ( ) . size ( ) < < " atomic propositions and "
< < * da - > getAcceptance ( ) - > getAcceptanceExpression ( ) < < " as acceptance condition. " ) ;
// TODO move computation of apSets to SparseLTLHelper (extracted: AP to formula - std::map<std::string, std::shared_ptr<Formula const>>)
std : : map < std : : string , storm : : storage : : BitVector > apSets ;
for ( std : : string const & ap : apSet . getAPs ( ) ) {
std : : shared_ptr < storm : : logic : : Formula const > expression = pathFormula . getAPMapping ( ) . at ( ap ) ;
@ -148,6 +149,15 @@ namespace storm {
// TODO HOA call LTL helper
std : : vector < ValueType > numericResult = storm : : modelchecker : : helper : : SparseDtmcPrctlHelper < ValueType > : : computeDAProductProbabilities ( env , dtmc , std : : move ( goal ) , * da , apSets , checkTask . isQualitativeSet ( ) ) ;
// storm::modelchecker::helper::SparseLTLHelper<ValueType, false> helper(dtmc.getTransitionMatrix(), this->getModel().getNumberOfStates());
// storm::modelchecker::helper::setInformationFromCheckTaskDeterministic(helper, checkTask, dtmc);
// Compute Satisfaction sets for APs (see above)
// auto formulaChecker = [&] (std::shared_ptr<storm::logic::Formula const> const& formula) {return this->check(*formula); };
// std::map<std::string, storm::storage::BitVector> apSets = helper.computeApSets(extracted, formulaChecker);
// std::vector<ValueType> numericResult = helper.computeDAProductProbabilities(env, *da, apSatSets);
return std : : unique_ptr < CheckResult > ( new ExplicitQuantitativeCheckResult < ValueType > ( std : : move ( numericResult ) ) ) ;
}
@ -156,10 +166,10 @@ namespace storm {
storm : : logic : : PathFormula const & pathFormula = checkTask . getFormula ( ) ;
STORM_LOG_INFO ( " Extracting maximal state formulas for path formula: " < < pathFormula ) ;
// Maintain a mapping from formula-strings to pair s in order to reuse labels of equivalent (compared as strings) formulas
std : : map < std : : string , storm : : logic : : ExtractMaximalStateFormulasVisitor : : LabelFormulaPair > extract ed ;
std : : shared_ptr < storm : : logic : : Formula > ltlFormula = storm : : logic : : ExtractMaximalStateFormulasVisitor : : extract ( pathFormula , extracted ) ;
storm : : logic : : ExtractMaximalStateFormulasVisitor : : ApToFormulaMap extracted ;
// Maintain a mapping from formula-strings to label s in order to reuse labels of equivalent (compared as strings) formulas
std : : map < std : : string , std : : string > cach ed ;
std : : shared_ptr < storm : : logic : : Formula > ltlFormula = storm : : logic : : ExtractMaximalStateFormulasVisitor : : extract ( pathFormula , extracted , cached ) ;
const SparseDtmcModelType & dtmc = this - > getModel ( ) ;