1#include "storm-config.h"
29 GTEST_SKIP() <<
"Z3 not available.";
35 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/brp16_2.pm";
36 std::string formulaAsString =
"P=? [F s=4 & i=N ]";
37 std::string constantsAsString =
"";
41 program = program.
preprocess(constantsAsString);
42 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
44 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
48 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
49 model = simplifier.getSimplifiedModel();
71 auto dummyOrder = std::shared_ptr<storm::analysis::Order>(
new storm::analysis::Order(above, below, 193, decomposition, statesSorted));
82 checker.initializeCheckingOnSamples(
storm::Environment(), formulas[0], dtmc, region, 3);
94 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/simple1.pm";
95 std::string formulaAsString =
"P=? [F s=3]";
96 std::string constantsAsString =
"";
100 program = program.
preprocess(constantsAsString);
101 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
103 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
107 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
108 model = simplifier.getSimplifiedModel();
129 auto order = std::shared_ptr<storm::analysis::Order>(
new storm::analysis::Order(above, below, 5, decomposition, statesSorted));
153 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy1.pm";
154 std::string formulaAsString =
"P=? [F s=3]";
155 std::string constantsAsString =
"";
159 program = program.
preprocess(constantsAsString);
160 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
162 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
166 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
167 model = simplifier.getSimplifiedModel();
188 auto order = std::shared_ptr<storm::analysis::Order>(
new storm::analysis::Order(above, below, 5, decomposition, statesSorted));
200 checker.initializeCheckingOnSamples(
storm::Environment(), formulas[0], dtmc, region, 3);
212 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy2.pm";
213 std::string formulaAsString =
"P=? [F s=4]";
214 std::string constantsAsString =
"";
218 program = program.
preprocess(constantsAsString);
219 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
221 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
225 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
226 model = simplifier.getSimplifiedModel();
247 auto order = std::shared_ptr<storm::analysis::Order>(
new storm::analysis::Order(above, below, 6, decomposition, statesSorted));
262 std::string programFile = STORM_TEST_RESOURCES_DIR
"/pdtmc/casestudy3.pm";
263 std::string formulaAsString =
"P=? [F s=3]";
264 std::string constantsAsString =
"";
268 program = program.
preprocess(constantsAsString);
269 std::vector<std::shared_ptr<const storm::logic::Formula>> formulas =
271 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> model =
275 ASSERT_TRUE(simplifier.simplify(*(formulas[0])));
276 model = simplifier.getSimplifiedModel();
297 auto order = std::shared_ptr<storm::analysis::Order>(
new storm::analysis::Order(above, below, 5, decomposition, statesSorted));
308 checker.initializeCheckingOnSamples(
storm::Environment(), formulas[0], dtmc, region, 3);
TEST_F(AssumptionCheckerTest, Brp_no_bisimulation)
std::shared_ptr< ModelType > as()
Casts the model into the model type given by the template parameter.
This class represents a discrete-time Markov chain.
storm::storage::SparseMatrix< ValueType > const & getTransitionMatrix() const
Retrieves the matrix representing the transitions of the model.
virtual uint_fast64_t getNumberOfTransitions() const override
Returns the number of (non-zero) transitions of the model.
virtual uint_fast64_t getNumberOfStates() const override
Returns the number of states of the model.
Program preprocess(std::map< storm::expressions::Variable, storm::expressions::Expression > const &constantDefinitions) const
Preprocesses the program by defining the given constant definitions, substituting constants and formu...
A bit vector that is internally represented as a vector of 64-bit values.
void set(uint64_t index, bool value=true)
Sets the given truth value at the given index.
This class represents the decomposition of a graph-like structure into its strongly connected compone...
storm::storage::ParameterRegion< ValueType > parseRegion(std::string const &inputString, std::set< typename storm::storage::ParameterRegion< ValueType >::VariableType > const &consideredVariables)
std::vector< storm::jani::Property > parsePropertiesForPrismProgram(std::string const &inputString, storm::prism::Program const &program, boost::optional< std::set< std::string > > const &propertyFilter)
storm::prism::Program parseProgram(std::string const &filename, bool prismCompatibility, bool simplify)
std::shared_ptr< storm::models::sparse::Model< ValueType > > buildSparseModel(storm::storage::SymbolicModelDescription const &model, storm::builder::BuilderOptions const &options, typename storm::builder::ExplicitModelBuilder< ValueType >::Options const &explorationOptions=typename storm::builder::ExplicitModelBuilder< ValueType >::Options())
std::vector< std::shared_ptr< storm::logic::Formula const > > extractFormulasFromProperties(std::vector< storm::jani::Property > const &properties)
std::set< storm::RationalFunctionVariable > getProbabilityParameters(Model< storm::RationalFunction > const &model)
Get all probability parameters occurring on transitions.
std::vector< uint_fast64_t > getTopologicalSort(storm::storage::SparseMatrix< T > const &matrix, std::vector< uint64_t > const &firstStates)
Performs a topological sort of the states of the system according to the given transitions.
A candidate relation between two states of a reachability order: either state1 > state2 (Greater) or ...
StronglyConnectedComponentDecompositionOptions & forceTopologicalSort(bool value=true)
Enforces that the returned SCCs are sorted in a topological order.