26 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/simple1.pm";
27 std::string formulaAsString =
"P=? [F s=3 ]";
28 std::string constantsAsString =
"";
33 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
35 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
39 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
40 model = simplifier.getSimplifiedModel();
44 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.1<=p<=0.9", modelParameters);
45 std::vector<storm::storage::ParameterRegion<storm::RationalFunction>> regions = {region};
53 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
55 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
63 auto order = std::get<0>(orderExtender.toOrder(region,
nullptr));
68 auto var = modelParameters.begin();
74 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/simple1.pm";
75 std::string formulaAsString =
"P=? [F s=3 ]";
76 std::string constantsAsString =
"";
81 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
83 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
87 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
88 model = simplifier.getSimplifiedModel();
92 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.51<=p<=0.9", modelParameters);
93 std::vector<storm::storage::ParameterRegion<storm::RationalFunction>> regions = {region};
101 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
103 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
111 auto order = std::get<0>(orderExtender.toOrder(region,
nullptr));
116 auto var = modelParameters.begin();
123 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy1.pm";
124 std::string formulaAsString =
"P=? [F s=3 ]";
125 std::string constantsAsString =
"";
130 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
132 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
136 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
137 model = simplifier.getSimplifiedModel();
141 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.1<=p<=0.9", modelParameters);
142 std::vector<storm::storage::ParameterRegion<storm::RationalFunction>> regions = {region};
150 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
152 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
160 auto res = orderExtender.extendOrder(
nullptr, region);
161 auto order = std::get<0>(res);
162 ASSERT_TRUE(order->getDoneBuilding());
168 auto var = modelParameters.begin();
169 for (uint_fast64_t i = 0; i < 3; i++) {
176 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy2.pm";
177 std::string formulaAsString =
"P=? [F s=4 ]";
178 std::string constantsAsString =
"";
183 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
185 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
189 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
190 model = simplifier.getSimplifiedModel();
194 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.51<=p<=0.9", modelParameters);
195 std::vector<storm::storage::ParameterRegion<storm::RationalFunction>> regions = {region};
203 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
205 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
213 auto res = orderExtender.extendOrder(
nullptr, region);
214 auto order = std::get<0>(res);
215 order->addRelation(1, 3);
216 order->addRelation(3, 2);
222 auto var = modelParameters.begin();
223 for (uint_fast64_t i = 0; i < 3; i++) {
230 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy3.pm";
231 std::string formulaAsString =
"P=? [F s=3 ]";
232 std::string constantsAsString =
"";
237 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
239 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
243 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
244 model = simplifier.getSimplifiedModel();
248 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.1<=p<=0.9", modelParameters);
249 std::vector<storm::storage::ParameterRegion<storm::RationalFunction>> regions = {region};
257 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
259 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
267 auto res = orderExtender.extendOrder(
nullptr, region);
268 auto order = std::get<0>(res);
269 ASSERT_TRUE(order->getDoneBuilding());
275 auto var = modelParameters.begin();
280 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...