Storm 1.11.1.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SymbolicPropositionalModelChecker.cpp
Go to the documentation of this file.
2
15
16namespace storm {
17namespace modelchecker {
18template<typename ModelType>
20 // Intentionally left empty.
21}
22
23template<typename ModelType>
28
29template<typename ModelType>
32 storm::logic::BooleanLiteralFormula const& stateFormula = checkTask.getFormula();
33 if (stateFormula.isTrueFormula()) {
34 return std::unique_ptr<CheckResult>(new SymbolicQualitativeCheckResult<DdType>(model.getReachableStates(), model.getReachableStates()));
35 } else {
36 return std::unique_ptr<CheckResult>(new SymbolicQualitativeCheckResult<DdType>(model.getReachableStates(), model.getManager().getBddZero()));
37 }
38}
39
40template<typename ModelType>
43 storm::logic::AtomicLabelFormula const& stateFormula = checkTask.getFormula();
44 STORM_LOG_THROW(model.hasLabel(stateFormula.getLabel()), storm::exceptions::InvalidPropertyException,
45 "The property refers to unknown label '" << stateFormula.getLabel() << "'.");
46 return std::unique_ptr<CheckResult>(new SymbolicQualitativeCheckResult<DdType>(model.getReachableStates(), model.getStates(stateFormula.getLabel())));
47}
48
49template<typename ModelType>
52 storm::logic::AtomicExpressionFormula const& stateFormula = checkTask.getFormula();
53 return std::unique_ptr<CheckResult>(new SymbolicQualitativeCheckResult<DdType>(model.getReachableStates(), model.getStates(stateFormula.getExpression())));
54}
55
56template<typename ModelType>
58 return model;
59}
60
61// Explicitly instantiate the template class.
86
87} // namespace modelchecker
88} // namespace storm
storm::expressions::Expression const & getExpression() const
std::string const & getLabel() const
virtual bool isTrueFormula() const override
bool isInFragment(FragmentSpecification const &fragment) const
Definition Formula.cpp:204
FormulaType const & getFormula() const
Retrieves the formula from this task.
Definition CheckTask.h:140
virtual bool canHandle(CheckTask< storm::logic::Formula, ValueType > const &checkTask) const override
virtual std::unique_ptr< CheckResult > checkBooleanLiteralFormula(Environment const &env, CheckTask< storm::logic::BooleanLiteralFormula, ValueType > const &checkTask) override
virtual std::unique_ptr< CheckResult > checkAtomicLabelFormula(Environment const &env, CheckTask< storm::logic::AtomicLabelFormula, ValueType > const &checkTask) override
virtual ModelType const & getModel() const
Retrieves the model associated with this model checker instance.
virtual std::unique_ptr< CheckResult > checkAtomicExpressionFormula(Environment const &env, CheckTask< storm::logic::AtomicExpressionFormula, ValueType > const &checkTask) override
#define STORM_LOG_THROW(cond, exception, message)
Definition macros.h:30
FragmentSpecification propositional()