30 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/brp16_2.pm";
31 std::string formulaAsString =
"P=? [F s=4 & i=N ]";
32 std::string constantsAsString =
"";
37 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
39 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
42 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
43 model = simplifier.getSimplifiedModel();
47 if (storm::settings::getModule<storm::settings::modules::BisimulationSettings>().isWeakBisimulationSet()) {
51 model = storm::api::performBisimulationMinimization<storm::RationalFunction>(model, formulas, bisimType)
54 ASSERT_EQ(99ul, model->getNumberOfStates());
55 ASSERT_EQ(195ul, model->getNumberOfTransitions());
58 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.00001 <= pK <= 0.999999, 0.00001 <= pL <= 0.999999", vars);
62 auto criticalTuple = extender.toOrder(
65 EXPECT_EQ(model->getNumberOfStates(), std::get<1>(criticalTuple));
66 EXPECT_EQ(model->getNumberOfStates(), std::get<2>(criticalTuple));
68 auto order = std::get<0>(criticalTuple);
69 for (uint_fast64_t i = 0; i < model->getNumberOfStates(); ++i) {
70 EXPECT_TRUE((order->contains(i)));
82 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/brp16_2.pm";
83 std::string formulaAsString =
"P=? [F s=4 & i=N ]";
84 std::string constantsAsString =
"";
89 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
91 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
94 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
95 model = simplifier.getSimplifiedModel();
97 ASSERT_EQ(193ul, model->getNumberOfStates());
98 ASSERT_EQ(383ul, model->getNumberOfTransitions());
101 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.00001 <= pK <= 0.999999, 0.00001 <= pL <= 0.999999", vars);
105 auto criticalTuple = extender.toOrder(
108 EXPECT_EQ(183ul, std::get<1>(criticalTuple));
109 EXPECT_EQ(186ul, std::get<2>(criticalTuple));
113 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/brp16_2.pm";
114 std::string formulaAsString =
"P=? [F s=4 & i=N ]";
115 std::string constantsAsString =
"";
120 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
122 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
125 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
126 model = simplifier.getSimplifiedModel();
130 if (storm::settings::getModule<storm::settings::modules::BisimulationSettings>().isWeakBisimulationSet()) {
134 model = storm::api::performBisimulationMinimization<storm::RationalFunction>(model, formulas, bisimType)
137 ASSERT_EQ(99ul, model->getNumberOfStates());
138 ASSERT_EQ(195ul, model->getNumberOfTransitions());
141 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.00001 <= pK <= 0.999999, 0.00001 <= pL <= 0.999999", vars);
148 propositionalChecker.
check(formula.
getSubformula())->template asExplicitQualitativeCheckResult<storm::RationalFunction>().getTruthValuesVector();
150 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
156 auto res = extender.extendOrder(
nullptr, region);
157 auto order = std::get<0>(res);
158 EXPECT_EQ(order->getNumberOfAddedStates(), model->getNumberOfStates());
159 EXPECT_TRUE(order->getDoneBuilding());
170 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/brp16_2.pm";
171 std::string formulaAsString =
"P=? [F s=4 & i=N ]";
172 std::string constantsAsString =
"";
177 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
179 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
182 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
183 model = simplifier.getSimplifiedModel();
185 ASSERT_EQ(193ul, model->getNumberOfStates());
186 ASSERT_EQ(383ul, model->getNumberOfTransitions());
189 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.00001 <= pK <= 0.999999, 0.00001 <= pL <= 0.999999", vars);
196 propositionalChecker.
check(formula.
getSubformula())->template asExplicitQualitativeCheckResult<storm::RationalFunction>().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);
274 propositionalChecker.
check(formula.
getSubformula())->template asExplicitQualitativeCheckResult<storm::RationalFunction>().getTruthValuesVector();
276 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
283 auto res = extender.extendOrder(
nullptr, region);
284 auto order = std::get<0>(res);
285 EXPECT_EQ(order->getNumberOfAddedStates(), model->getNumberOfStates());
286 EXPECT_TRUE(order->getDoneBuilding());
302 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/simple1.pm";
303 std::string formulaAsString =
"P=? [F s=3 ]";
304 std::string constantsAsString =
"";
309 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
311 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
314 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
315 model = simplifier.getSimplifiedModel();
319 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.51<=p<=0.9", modelParameters);
322 auto order = std::get<0>(extender.toOrder(region));
324 EXPECT_EQ(5ul, order->getNumberOfAddedStates());
325 EXPECT_TRUE(order->getDoneBuilding());
340 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy1.pm";
341 std::string formulaAsString =
"P=? [F s=3 ]";
342 std::string constantsAsString =
"";
347 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
349 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
352 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
353 model = simplifier.getSimplifiedModel();
357 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.51 <= p <= 0.9", modelParameters);
366 propositionalChecker.
check(formula.
getSubformula())->template asExplicitQualitativeCheckResult<storm::RationalFunction>().getTruthValuesVector();
368 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
375 auto res = extender.extendOrder(
nullptr, region);
376 auto order = std::get<0>(res);
377 EXPECT_EQ(order->getNumberOfAddedStates(), model->getNumberOfStates());
378 EXPECT_TRUE(order->getDoneBuilding());
394 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy2.pm";
395 std::string formulaAsString =
"P=? [F s=4 ]";
396 std::string constantsAsString =
"";
401 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
403 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
406 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
407 model = simplifier.getSimplifiedModel();
411 auto region = storm::api::parseRegion<storm::RationalFunction>(
"0.1 <= p <= 0.2", modelParameters);
420 propositionalChecker.
check(formula.
getSubformula())->template asExplicitQualitativeCheckResult<storm::RationalFunction>().getTruthValuesVector();
422 std::pair<storm::storage::BitVector, storm::storage::BitVector> statesWithProbability01 =
429 auto res = extender.extendOrder(
nullptr, region);
430 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...