Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ExtractMaximalStateFormulasVisitor.h
Go to the documentation of this file.
1#pragma once
2
3#include <map>
4#include <vector>
6
7namespace storm {
8namespace logic {
9
11 public:
12 typedef std::map<std::string, std::shared_ptr<Formula const>> ApToFormulaMap;
13
20 static std::shared_ptr<Formula> extract(PathFormula const& f, ApToFormulaMap& extractedFormulas);
21
22 virtual boost::any visit(BinaryBooleanPathFormula const& f, boost::any const& data) const override;
23 virtual boost::any visit(BoundedUntilFormula const& f, boost::any const& data) const override;
24 virtual boost::any visit(EventuallyFormula const& f, boost::any const& data) const override;
25 virtual boost::any visit(GloballyFormula const& f, boost::any const& data) const override;
26 virtual boost::any visit(NextFormula const& f, boost::any const& data) const override;
27 virtual boost::any visit(UnaryBooleanPathFormula const& f, boost::any const& data) const override;
28 virtual boost::any visit(UntilFormula const& f, boost::any const& data) const override;
29
30 virtual boost::any visit(TimeOperatorFormula const& f, boost::any const& data) const override;
31 virtual boost::any visit(LongRunAverageOperatorFormula const& f, boost::any const& data) const override;
32 virtual boost::any visit(MultiObjectiveFormula const& f, boost::any const& data) const override;
33 virtual boost::any visit(ProbabilityOperatorFormula const& f, boost::any const& data) const override;
34 virtual boost::any visit(RewardOperatorFormula const& f, boost::any const& data) const override;
35
36 private:
38
39 std::shared_ptr<Formula> extract(std::shared_ptr<Formula> f) const;
40 void incrementNestingLevel() const;
41 void decrementNestingLevel() const;
42
43 ApToFormulaMap& extractedFormulas;
44 // A mapping from formula-strings to labels in order to use the same label for the equivalent formulas (as strings)
45 mutable std::map<std::string, std::string> cachedFormulas;
46 std::size_t nestingLevel;
47};
48
49} // namespace logic
50} // namespace storm
virtual boost::any visit(BinaryBooleanPathFormula const &f, boost::any const &data) const override
static std::shared_ptr< Formula > extract(PathFormula const &f, ApToFormulaMap &extractedFormulas)
Finds state subformulae in f and replaces them by atomic propositions.
std::map< std::string, std::shared_ptr< Formula const > > ApToFormulaMap
LabParser.cpp.
Definition cli.cpp:18