Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
JaniGSPNBuilder.h
Go to the documentation of this file.
1#pragma once
2
7
8namespace storm {
9namespace builder {
11 public:
12 JaniGSPNBuilder(storm::gspn::GSPN const& gspn) : gspn(gspn), expressionManager(gspn.getExpressionManager()) {}
13
14 virtual ~JaniGSPNBuilder() {
15 // Intentionally left empty.
16 }
17
18 storm::jani::Model* build(std::string const& automatonName = "gspn_automaton");
19
20 storm::jani::Variable const& getPlaceVariable(uint64_t placeId) const {
21 return *vars.at(placeId);
22 }
23
27 std::vector<storm::jani::Property> getStandardProperties(storm::jani::Model* model, std::shared_ptr<storm::logic::AtomicExpressionFormula> atomicFormula,
28 std::string name, std::string description, bool maximal);
29
33 std::vector<storm::jani::Property> getDeadlockProperties(storm::jani::Model* model);
34
39
40 private:
41 void addVariables(storm::jani::Model* model);
42
43 uint64_t addLocation(storm::jani::Automaton& automaton);
44
45 void addEdges(storm::jani::Automaton& automaton, uint64_t locId);
46
47 storm::jani::Variable const& addDeadlockTransientVariable(storm::jani::Model* model, std::string name, bool ignoreCapacities = false,
48 bool ignoreInhibitorArcs = false, bool ignoreEmptyPlaces = false);
49
50 const uint64_t janiVersion = 1;
51 storm::gspn::GSPN const& gspn;
52 std::map<uint64_t, storm::jani::Variable const*> vars;
53 std::shared_ptr<storm::expressions::ExpressionManager> expressionManager;
54};
55} // namespace builder
56} // namespace storm
storm::jani::Model * build(std::string const &automatonName="gspn_automaton")
std::vector< storm::jani::Property > getDeadlockProperties(storm::jani::Model *model)
Get standard properties (reachability, time bounded reachability, expected time) for deadlocks.
std::vector< storm::jani::Property > getStandardProperties(storm::jani::Model *model, std::shared_ptr< storm::logic::AtomicExpressionFormula > atomicFormula, std::string name, std::string description, bool maximal)
Get standard properties (reachability, time bounded reachability, expected time) for a given atomic f...
storm::jani::Variable const & getPlaceVariable(uint64_t placeId) const
storm::jani::Variable const & addTransientVariable(storm::jani::Model *model, std::string name, storm::expressions::Expression expression)
Add transient variable representing given expression.
JaniGSPNBuilder(storm::gspn::GSPN const &gspn)
LabParser.cpp.
Definition cli.cpp:18