Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SymbolicModelDescription.h
Go to the documentation of this file.
1#pragma once
2
3#include <boost/variant.hpp>
4#include <map>
5
10
11namespace storm {
12namespace storage {
13
15 public:
16 enum class ModelType { DTMC, CTMC, MDP, MA, POMDP, SMG };
17
21
24
25 bool hasModel() const;
26 bool isJaniModel() const;
27 bool isPrismProgram() const;
28
29 ModelType getModelType() const;
31
32 void setModel(storm::jani::Model const& model);
33 void setModel(storm::prism::Program const& program);
34
35 storm::jani::Model const& asJaniModel() const;
39
40 std::vector<std::string> getParameterNames() const;
41
42 SymbolicModelDescription toJani(bool makeVariablesGlobal = true) const;
43
52 std::pair<SymbolicModelDescription, std::vector<storm::jani::Property>> toJani(std::vector<storm::jani::Property> const& properties,
53 bool makeVariablesGlobal) const;
54
55 SymbolicModelDescription preprocess(std::string const& constantDefinitionString = "") const;
56 SymbolicModelDescription preprocess(std::map<storm::expressions::Variable, storm::expressions::Expression> const& constantDefinitions) const;
57
58 std::map<storm::expressions::Variable, storm::expressions::Expression> parseConstantDefinitions(std::string const& constantDefinitionString) const;
59
60 bool hasUndefinedConstants() const;
61 std::vector<storm::expressions::Variable> getUndefinedConstants() const;
62
63 private:
64 boost::optional<boost::variant<storm::jani::Model, storm::prism::Program>> modelDescription;
65};
66
67std::ostream& operator<<(std::ostream& out, SymbolicModelDescription const& model);
68
69std::ostream& operator<<(std::ostream& out, SymbolicModelDescription::ModelType const& type);
70
76std::map<storm::expressions::Variable, storm::expressions::Expression> parseConstantDefinitionString(storm::expressions::ExpressionManager const& manager,
77 std::string const& constantDefinitionString);
78} // namespace storage
79} // namespace storm
This class is responsible for managing a set of typed variables and all expressions using these varia...
std::map< storm::expressions::Variable, storm::expressions::Expression > parseConstantDefinitions(std::string const &constantDefinitionString) const
SymbolicModelDescription & operator=(storm::jani::Model const &model)
storm::prism::Program const & asPrismProgram() const
std::vector< storm::expressions::Variable > getUndefinedConstants() const
storm::expressions::ExpressionManager & getManager() const
std::vector< std::string > getParameterNames() const
SymbolicModelDescription toJani(bool makeVariablesGlobal=true) const
void setModel(storm::jani::Model const &model)
storm::jani::Model const & asJaniModel() const
SymbolicModelDescription preprocess(std::string const &constantDefinitionString="") const
std::map< storm::expressions::Variable, storm::expressions::Expression > parseConstantDefinitionString(storm::expressions::ExpressionManager const &manager, std::string const &constantDefinitionString)
Parses a comma-separated string of constant definitions (e.g.
std::ostream & operator<<(std::ostream &out, ParameterRegion< ParametricType > const &region)