Storm
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 <string>
6
9
10namespace storm {
11namespace transformer {
12
19template<typename SparseModelType>
21 public:
22 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
43 protected:
44 // Perform the simplification for the corresponding formula type
50
61 static std::shared_ptr<SparseModelType> eliminateConstantDeterministicStates(SparseModelType const& model,
62 storm::storage::BitVector const& consideredStates,
63 boost::optional<std::string> const& rewardModelName = boost::none);
64
65 SparseModelType const& originalModel;
66
67 std::shared_ptr<SparseModelType> simplifiedModel;
68 std::shared_ptr<storm::logic::Formula const> simplifiedFormula;
69};
70} // namespace transformer
71} // namespace storm
A bit vector that is internally represented as a vector of 64-bit values.
Definition BitVector.h:18
This class performs different steps to simplify the given (parametric) model.
virtual bool simplifyForBoundedUntilProbabilities(storm::logic::ProbabilityOperatorFormula const &formula)
virtual bool simplifyForReachabilityProbabilities(storm::logic::ProbabilityOperatorFormula const &formula)
virtual bool simplifyForReachabilityRewards(storm::logic::RewardOperatorFormula const &formula)
std::shared_ptr< storm::logic::Formula const > getSimplifiedFormula() const
static std::shared_ptr< SparseModelType > eliminateConstantDeterministicStates(SparseModelType const &model, storm::storage::BitVector const &consideredStates, boost::optional< std::string > const &rewardModelName=boost::none)
Eliminates all states that satisfy.
virtual bool simplifyForUntilProbabilities(storm::logic::ProbabilityOperatorFormula const &formula)
std::shared_ptr< storm::logic::Formula const > simplifiedFormula
virtual bool simplifyForCumulativeRewards(storm::logic::RewardOperatorFormula const &formula)
LabParser.cpp.
Definition cli.cpp:18