Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SymbolicPropositionalModelChecker.cpp
Go to the documentation of this file.
3
6
13
15
17
20
21namespace storm {
22namespace modelchecker {
23template<typename ModelType>
25 // Intentionally left empty.
26}
27
28template<typename ModelType>
33
34template<typename ModelType>
37 storm::logic::BooleanLiteralFormula const& stateFormula = checkTask.getFormula();
38 if (stateFormula.isTrueFormula()) {
39 return std::unique_ptr<CheckResult>(new SymbolicQualitativeCheckResult<DdType>(model.getReachableStates(), model.getReachableStates()));
40 } else {
41 return std::unique_ptr<CheckResult>(new SymbolicQualitativeCheckResult<DdType>(model.getReachableStates(), model.getManager().getBddZero()));
42 }
43}
44
45template<typename ModelType>
48 storm::logic::AtomicLabelFormula const& stateFormula = checkTask.getFormula();
49 STORM_LOG_THROW(model.hasLabel(stateFormula.getLabel()), storm::exceptions::InvalidPropertyException,
50 "The property refers to unknown label '" << stateFormula.getLabel() << "'.");
51 return std::unique_ptr<CheckResult>(new SymbolicQualitativeCheckResult<DdType>(model.getReachableStates(), model.getStates(stateFormula.getLabel())));
52}
53
54template<typename ModelType>
57 storm::logic::AtomicExpressionFormula const& stateFormula = checkTask.getFormula();
58 return std::unique_ptr<CheckResult>(new SymbolicQualitativeCheckResult<DdType>(model.getReachableStates(), model.getStates(stateFormula.getExpression())));
59}
60
61template<typename ModelType>
63 return model;
64}
65
66// Explicitly instantiate the template class.
91
92} // namespace modelchecker
93} // 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:196
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()
LabParser.cpp.
Definition cli.cpp:18