28 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/simple1.pm";
29 std::string formulaAsString =
"P=? [F s=3 ]";
30 std::string constantsAsString =
"";
35 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
37 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
41 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
42 model = simplifier.getSimplifiedModel();
46 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.1<=p<=0.9", modelParameters);
47 std::vector<storm::storage::ParameterRegion<storm::RationalFunction>> regions = {region};
55 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
57 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
65 auto order = std::get<0>(orderExtender.toOrder(region,
nullptr));
70 auto var = modelParameters.begin();
76 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/simple1.pm";
77 std::string formulaAsString =
"P=? [F s=3 ]";
78 std::string constantsAsString =
"";
83 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
85 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
89 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
90 model = simplifier.getSimplifiedModel();
94 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.51<=p<=0.9", modelParameters);
95 std::vector<storm::storage::ParameterRegion<storm::RationalFunction>> regions = {region};
103 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
105 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
113 auto order = std::get<0>(orderExtender.toOrder(region,
nullptr));
118 auto var = modelParameters.begin();
125 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy1.pm";
126 std::string formulaAsString =
"P=? [F s=3 ]";
127 std::string constantsAsString =
"";
132 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
134 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
138 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
139 model = simplifier.getSimplifiedModel();
143 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.1<=p<=0.9", modelParameters);
144 std::vector<storm::storage::ParameterRegion<storm::RationalFunction>> regions = {region};
152 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
154 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
162 auto res = orderExtender.extendOrder(
nullptr, region);
163 auto order = std::get<0>(res);
164 ASSERT_TRUE(order->getDoneBuilding());
170 auto var = modelParameters.begin();
171 for (uint_fast64_t i = 0; i < 3; i++) {
178 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy2.pm";
179 std::string formulaAsString =
"P=? [F s=4 ]";
180 std::string constantsAsString =
"";
185 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
187 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
191 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
192 model = simplifier.getSimplifiedModel();
196 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.51<=p<=0.9", modelParameters);
197 std::vector<storm::storage::ParameterRegion<storm::RationalFunction>> regions = {region};
205 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
207 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
215 auto res = orderExtender.extendOrder(
nullptr, region);
216 auto order = std::get<0>(res);
217 order->addRelation(1, 3);
218 order->addRelation(3, 2);
224 auto var = modelParameters.begin();
225 for (uint_fast64_t i = 0; i < 3; i++) {
232 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy3.pm";
233 std::string formulaAsString =
"P=? [F s=3 ]";
234 std::string constantsAsString =
"";
239 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
241 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
245 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
246 model = simplifier.getSimplifiedModel();
250 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.1<=p<=0.9", modelParameters);
251 std::vector<storm::storage::ParameterRegion<storm::RationalFunction>> regions = {region};
259 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
261 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
269 auto res = orderExtender.extendOrder(
nullptr, region);
270 auto order = std::get<0>(res);
271 ASSERT_TRUE(order->getDoneBuilding());
277 auto var = modelParameters.begin();
282 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...