diff --git a/src/storm-pars-cli/storm-pars.cpp b/src/storm-pars-cli/storm-pars.cpp index 13767907a..5b38cf1f4 100644 --- a/src/storm-pars-cli/storm-pars.cpp +++ b/src/storm-pars-cli/storm-pars.cpp @@ -507,11 +507,14 @@ namespace storm { std::cout << "Hello, Jip2" << std::endl; storm::utility::Stopwatch latticeWatch(true); - std::shared_ptr> sparseModel = model->as>(); std::vector> formulas = storm::api::extractFormulasFromProperties(input.properties); + STORM_LOG_THROW((++formulas.begin()) == formulas.end(), storm::exceptions::NotSupportedException, "Only one formula allowed for monotonicity analysis"); STORM_LOG_THROW((*(formulas[0])).isProbabilityOperatorFormula() && (*(formulas[0])).asProbabilityOperatorFormula().getSubformula().isUntilFormula(), storm::exceptions::NotSupportedException, "Expecting until formula"); + + std::shared_ptr> sparseModel = model->as>(); storm::modelchecker::SparsePropositionalModelChecker> propositionalChecker(*sparseModel); + storm::storage::BitVector phiStates = propositionalChecker.check((*(formulas[0])).asProbabilityOperatorFormula().getSubformula().asUntilFormula().getLeftSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector(); storm::storage::BitVector psiStates = propositionalChecker.check((*(formulas[0])).asProbabilityOperatorFormula().getSubformula().asUntilFormula().getRightSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector(); //right @@ -520,7 +523,7 @@ namespace storm { storm::storage::BitVector topStates = statesWithProbability01.second; storm::storage::BitVector bottomStates = statesWithProbability01.first; - // Transform to LatticeLattice + // Transform to Lattice storm::storage::SparseMatrix matrix = sparseModel.get()->getTransitionMatrix(); storm::analysis::Lattice* lattice = storm::analysis::Lattice::toLattice(matrix, topStates, bottomStates); diff --git a/src/storm-pars/analysis/Lattice.h b/src/storm-pars/analysis/Lattice.h index 69f8fd4aa..e3e9f5246 100644 --- a/src/storm-pars/analysis/Lattice.h +++ b/src/storm-pars/analysis/Lattice.h @@ -133,7 +133,6 @@ namespace storm { && seenStates[currentState->successor1] && seenStates[currentState->successor2]) { - // Otherwise, check how the two states compare, and add if the comparison is possible. uint_fast64_t successor1 = currentState->successor1; uint_fast64_t successor2 = currentState->successor2;