Storm
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
7
8namespace storm {
9namespace storage {
10
12 public:
13 enum class ModelType { DTMC, CTMC, MDP, MA, POMDP, SMG };
14
18
21
22 bool hasModel() const;
23 bool isJaniModel() const;
24 bool isPrismProgram() const;
25
26 ModelType getModelType() const;
28
29 void setModel(storm::jani::Model const& model);
30 void setModel(storm::prism::Program const& program);
31
32 storm::jani::Model const& asJaniModel() const;
36
37 std::vector<std::string> getParameterNames() const;
38
39 SymbolicModelDescription toJani(bool makeVariablesGlobal = true) const;
40
49 std::pair<SymbolicModelDescription, std::vector<storm::jani::Property>> toJani(std::vector<storm::jani::Property> const& properties,
50 bool makeVariablesGlobal) const;
51
52 SymbolicModelDescription preprocess(std::string const& constantDefinitionString = "") const;
53 SymbolicModelDescription preprocess(std::map<storm::expressions::Variable, storm::expressions::Expression> const& constantDefinitions) const;
54
55 std::map<storm::expressions::Variable, storm::expressions::Expression> parseConstantDefinitions(std::string const& constantDefinitionString) const;
56
57 void requireNoUndefinedConstants() const;
58 bool hasUndefinedConstants() const;
59 std::vector<storm::expressions::Variable> getUndefinedConstants() const;
60
61 private:
62 boost::optional<boost::variant<storm::jani::Model, storm::prism::Program>> modelDescription;
63};
64
65std::ostream& operator<<(std::ostream& out, SymbolicModelDescription const& model);
66
67std::ostream& operator<<(std::ostream& out, SymbolicModelDescription::ModelType const& type);
68} // namespace storage
69} // 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::ostream & operator<<(std::ostream &out, ParameterRegion< ParametricType > const &region)
LabParser.cpp.
Definition cli.cpp:18