32 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/brp16_2.pm";
33 std::string formulaAsString =
"P=? [F s=4 & i=N ]";
34 std::string constantsAsString =
"";
39 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
41 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
44 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
45 model = simplifier.getSimplifiedModel();
53 model = storm::api::performBisimulationMinimization<storm::RationalFunction>(model, formulas, bisimType)
56 ASSERT_EQ(99ul, model->getNumberOfStates());
57 ASSERT_EQ(195ul, model->getNumberOfTransitions());
60 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.00001 <= pK <= 0.999999, 0.00001 <= pL <= 0.999999", vars);
64 auto criticalTuple = extender.toOrder(
67 EXPECT_EQ(model->getNumberOfStates(), std::get<1>(criticalTuple));
68 EXPECT_EQ(model->getNumberOfStates(), std::get<2>(criticalTuple));
70 auto order = std::get<0>(criticalTuple);
71 for (uint_fast64_t i = 0; i < model->getNumberOfStates(); ++i) {
72 EXPECT_TRUE((order->contains(i)));
84 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/brp16_2.pm";
85 std::string formulaAsString =
"P=? [F s=4 & i=N ]";
86 std::string constantsAsString =
"";
91 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
93 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
96 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
97 model = simplifier.getSimplifiedModel();
99 ASSERT_EQ(193ul, model->getNumberOfStates());
100 ASSERT_EQ(383ul, model->getNumberOfTransitions());
103 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.00001 <= pK <= 0.999999, 0.00001 <= pL <= 0.999999", vars);
107 auto criticalTuple = extender.toOrder(
110 EXPECT_EQ(183ul, std::get<1>(criticalTuple));
111 EXPECT_EQ(186ul, std::get<2>(criticalTuple));
115 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/brp16_2.pm";
116 std::string formulaAsString =
"P=? [F s=4 & i=N ]";
117 std::string constantsAsString =
"";
122 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
124 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
127 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
128 model = simplifier.getSimplifiedModel();
136 model = storm::api::performBisimulationMinimization<storm::RationalFunction>(model, formulas, bisimType)
139 ASSERT_EQ(99ul, model->getNumberOfStates());
140 ASSERT_EQ(195ul, model->getNumberOfTransitions());
143 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.00001 <= pK <= 0.999999, 0.00001 <= pL <= 0.999999", vars);
149 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
151 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
157 auto res = extender.extendOrder(
nullptr, region);
158 auto order = std::get<0>(res);
159 EXPECT_EQ(order->getNumberOfAddedStates(), model->getNumberOfStates());
160 EXPECT_TRUE(order->getDoneBuilding());
171 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/brp16_2.pm";
172 std::string formulaAsString =
"P=? [F s=4 & i=N ]";
173 std::string constantsAsString =
"";
178 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
180 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
183 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
184 model = simplifier.getSimplifiedModel();
186 ASSERT_EQ(193ul, model->getNumberOfStates());
187 ASSERT_EQ(383ul, model->getNumberOfTransitions());
190 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.00001 <= pK <= 0.999999, 0.00001 <= pL <= 0.999999", vars);
196 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
198 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
204 auto res = extender.extendOrder(
nullptr, region);
205 auto order = std::get<0>(res);
206 EXPECT_FALSE(order->getDoneBuilding());
210 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/simple1.pm";
211 std::string formulaAsString =
"P=? [F s=3 ]";
212 std::string constantsAsString =
"";
217 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
219 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
222 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
223 model = simplifier.getSimplifiedModel();
227 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.51<=p<=0.9", modelParameters);
230 auto order = std::get<0>(extender.toOrder(region));
231 EXPECT_EQ(5ul, order->getNumberOfAddedStates());
232 EXPECT_TRUE(order->getDoneBuilding());
248 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/simple1.pm";
249 std::string formulaAsString =
"P=? [F s=3 ]";
250 std::string constantsAsString =
"";
255 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
257 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
260 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
261 model = simplifier.getSimplifiedModel();
265 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.51 <= p <= 0.9", modelParameters);
273 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
275 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
282 auto res = extender.extendOrder(
nullptr, region);
283 auto order = std::get<0>(res);
284 EXPECT_EQ(order->getNumberOfAddedStates(), model->getNumberOfStates());
285 EXPECT_TRUE(order->getDoneBuilding());
301 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/simple1.pm";
302 std::string formulaAsString =
"P=? [F s=3 ]";
303 std::string constantsAsString =
"";
308 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
310 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
313 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
314 model = simplifier.getSimplifiedModel();
318 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.51<=p<=0.9", modelParameters);
321 auto order = std::get<0>(extender.toOrder(region));
323 EXPECT_EQ(5ul, order->getNumberOfAddedStates());
324 EXPECT_TRUE(order->getDoneBuilding());
339 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy1.pm";
340 std::string formulaAsString =
"P=? [F s=3 ]";
341 std::string constantsAsString =
"";
346 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
348 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
351 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
352 model = simplifier.getSimplifiedModel();
356 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.51 <= p <= 0.9", modelParameters);
364 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
366 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
373 auto res = extender.extendOrder(
nullptr, region);
374 auto order = std::get<0>(res);
375 EXPECT_EQ(order->getNumberOfAddedStates(), model->getNumberOfStates());
376 EXPECT_TRUE(order->getDoneBuilding());
392 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy2.pm";
393 std::string formulaAsString =
"P=? [F s=4 ]";
394 std::string constantsAsString =
"";
399 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
401 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
404 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
405 model = simplifier.getSimplifiedModel();
409 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.1 <= p <= 0.2", modelParameters);
417 psiStates = propositionalChecker.
check(formula.
getSubformula())->asExplicitQualitativeCheckResult().getTruthValuesVector();
419 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
426 auto res = extender.extendOrder(
nullptr, region);
427 EXPECT_TRUE(std::get<0>(res)->getDoneBuilding());
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...