Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SparseInstantiationModelChecker.h
Go to the documentation of this file.
1#pragma once
2
9
10namespace storm {
11
12class Environment;
13
14namespace modelchecker {
15
19template<typename SparseModelType, typename ConstantType>
21 public:
22 SparseInstantiationModelChecker(Environment const& env, SparseModelType const& parametricModel);
24
26
27 virtual std::unique_ptr<CheckResult> check(Environment const& env,
29
40
41 // If set, it is assumed that all considered model instantiations have the same underlying graph structure.
42 // This bypasses the graph analysis for the different instantiations.
45
46 SparseModelType const& getOriginalModel() const;
47
48 protected:
50 SparseModelType const& parametricModel;
51 std::unique_ptr<CheckTask<storm::logic::Formula, ConstantType>> currentCheckTask;
52
53 private:
54 // store the current formula. Note that currentCheckTask only stores a reference to the formula.
55 std::shared_ptr<storm::logic::Formula const> currentFormula;
56
57 bool instantiationsAreGraphPreserving;
58};
59} // namespace modelchecker
60} // namespace storm
void specifyFormula(CheckTask< storm::logic::Formula, typename SparseModelType::ValueType > const &checkTask)
SparseInstantiationModelChecker(Environment const &env, SparseModelType const &parametricModel)
virtual std::unique_ptr< CheckResult > check(Environment const &env, storm::utility::parametric::Valuation< typename SparseModelType::ValueType > const &valuation)=0
virtual bool isWellDefined(storm::utility::parametric::Valuation< typename SparseModelType::ValueType > const &valuation)=0
Checks if the given valuation is valid for the current model.
std::unique_ptr< CheckTask< storm::logic::Formula, ConstantType > > currentCheckTask
std::map< typename VariableType< FunctionType >::type, typename CoefficientType< FunctionType >::type > Valuation
Definition parametric.h:43