Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SparseParametricModelSimplifier.h
Go to the documentation of this file.
1#pragma once
2
3#include <boost/optional.hpp>
4#include <memory>
5#include <optional>
6#include <string>
7
10
11namespace storm {
12namespace transformer {
13
20template<typename SparseModelType>
22 public:
23 SparseParametricModelSimplifier(SparseModelType const& model);
24
25 /*
26 * Invokes the simplification of the model w.r.t. the given formula.
27 * Returns true, iff simplification was successful
28 */
29 bool simplify(storm::logic::Formula const& formula);
30
31 /*
32 * Retrieves the simplified model.
33 * Note that simplify(formula) needs to be called first and has to return true. Otherwise an exception is thrown
34 */
35 std::shared_ptr<SparseModelType> getSimplifiedModel() const;
36
37 /*
38 * Retrieves the simplified formula.
39 * Note that simplify(formula) needs to be called first and has to return true. Otherwise an exception is thrown
40 */
41 std::shared_ptr<storm::logic::Formula const> getSimplifiedFormula() const;
42
48 void setPreserveParametricTransitions(bool preserveParametricTransitions);
49
54
55 private:
56 SparseModelType const& originalModel;
57
58 std::shared_ptr<SparseModelType> simplifiedModel;
59 std::shared_ptr<storm::logic::Formula const> simplifiedFormula;
60 bool preserveParametricTransitions = false;
61};
62} // namespace transformer
63} // namespace storm
void setPreserveParametricTransitions(bool preserveParametricTransitions)
Set whether to preserve parametric transions (i.e.
std::shared_ptr< storm::logic::Formula const > getSimplifiedFormula() const
bool isPreserveParametricTransitionsSet() const
Whether this SparseParametricModelSimplifier preserves parametric transitions.