31 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/simple1.pm";
32 std::string formulaAsString =
"P=? [F s=3 ]";
33 std::string constantsAsString =
"";
38 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
40 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
44 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
45 model = simplifier.getSimplifiedModel();
49 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.1<=p<=0.9", modelParameters);
50 std::vector<storm::storage::ParameterRegion<storm::RationalFunction>> regions = {region};
58 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
60 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
68 auto order = std::get<0>(orderExtender.toOrder(region,
nullptr));
73 auto var = modelParameters.begin();
79 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/simple1.pm";
80 std::string formulaAsString =
"P=? [F s=3 ]";
81 std::string constantsAsString =
"";
86 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
88 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
92 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
93 model = simplifier.getSimplifiedModel();
97 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.51<=p<=0.9", modelParameters);
98 std::vector<storm::storage::ParameterRegion<storm::RationalFunction>> regions = {region};
106 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
108 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
116 auto order = std::get<0>(orderExtender.toOrder(region,
nullptr));
121 auto var = modelParameters.begin();
128 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy1.pm";
129 std::string formulaAsString =
"P=? [F s=3 ]";
130 std::string constantsAsString =
"";
135 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
137 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
141 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
142 model = simplifier.getSimplifiedModel();
146 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.1<=p<=0.9", modelParameters);
147 std::vector<storm::storage::ParameterRegion<storm::RationalFunction>> regions = {region};
155 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
157 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
165 auto res = orderExtender.extendOrder(
nullptr, region);
166 auto order = std::get<0>(res);
167 ASSERT_TRUE(order->getDoneBuilding());
173 auto var = modelParameters.begin();
174 for (uint_fast64_t i = 0; i < 3; i++) {
181 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy2.pm";
182 std::string formulaAsString =
"P=? [F s=4 ]";
183 std::string constantsAsString =
"";
188 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
190 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
194 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
195 model = simplifier.getSimplifiedModel();
199 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.51<=p<=0.9", modelParameters);
200 std::vector<storm::storage::ParameterRegion<storm::RationalFunction>> regions = {region};
208 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
210 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
218 auto res = orderExtender.extendOrder(
nullptr, region);
219 auto order = std::get<0>(res);
220 order->addRelation(1, 3);
221 order->addRelation(3, 2);
227 auto var = modelParameters.begin();
228 for (uint_fast64_t i = 0; i < 3; i++) {
235 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy3.pm";
236 std::string formulaAsString =
"P=? [F s=3 ]";
237 std::string constantsAsString =
"";
242 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
244 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
248 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
249 model = simplifier.getSimplifiedModel();
253 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.1<=p<=0.9", modelParameters);
254 std::vector<storm::storage::ParameterRegion<storm::RationalFunction>> regions = {region};
262 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
264 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
272 auto res = orderExtender.extendOrder(
nullptr, region);
273 auto order = std::get<0>(res);
274 ASSERT_TRUE(order->getDoneBuilding());
280 auto var = modelParameters.begin();
285 region = storm::api::parseRegion<storm::RationalFunction>(
"0.51<=p<=0.9", modelParameters);
Monotonicity checkLocalMonotonicity(std::shared_ptr< Order > const &order, uint_fast64_t state, VariableType const &var, storage::ParameterRegion< ValueType > const ®ion)
Checks for local monotonicity at the given state.
std::pair< storm::storage::BitVector, storm::storage::BitVector > performProb01(storm::models::sparse::DeterministicModel< T > const &model, storm::storage::BitVector const &phiStates, storm::storage::BitVector const &psiStates)
Computes the sets of states that have probability 0 or 1, respectively, of satisfying phi until psi i...