Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
EventuallyFormula.cpp
Go to the documentation of this file.
2#include <boost/any.hpp>
3#include <ostream>
5
8
9namespace storm {
10namespace logic {
11EventuallyFormula::EventuallyFormula(std::shared_ptr<Formula const> const& subformula, FormulaContext context,
12 boost::optional<RewardAccumulation> rewardAccumulation)
13 : UnaryPathFormula(subformula), context(context), rewardAccumulation(rewardAccumulation) {
15 storm::exceptions::InvalidPropertyException, "Invalid context for formula.");
16 STORM_LOG_THROW(context != FormulaContext::Probability || !rewardAccumulation.is_initialized(), storm::exceptions::InvalidPropertyException,
17 "Reward accumulations should only be given for time- and reward formulas");
18}
19
21 return context;
22}
23
25 return true;
26}
27
31
35
39
43
47
51
53 return rewardAccumulation.is_initialized();
54}
55
57 return rewardAccumulation.get();
58}
59
60boost::any EventuallyFormula::accept(FormulaVisitor const& visitor, boost::any const& data) const {
61 return visitor.visit(*this, data);
62}
63
64std::ostream& EventuallyFormula::writeToStream(std::ostream& out, bool allowParentheses) const {
65 if (allowParentheses) {
66 out << "(";
67 }
68 out << "F ";
70 out << "[" << getRewardAccumulation() << "]";
71 }
73 if (allowParentheses) {
74 out << ")";
75 }
76 return out;
77}
78} // namespace logic
79} // namespace storm
virtual bool isReachabilityRewardFormula() const override
FormulaContext const & getContext() const
virtual bool isProbabilityPathFormula() const override
virtual bool isTimePathFormula() const override
virtual boost::any accept(FormulaVisitor const &visitor, boost::any const &data) const override
virtual bool isReachabilityProbabilityFormula() const override
virtual bool isRewardPathFormula() const override
RewardAccumulation const & getRewardAccumulation() const
EventuallyFormula(std::shared_ptr< Formula const > const &subformula, FormulaContext context=FormulaContext::Probability, boost::optional< RewardAccumulation > rewardAccumulation=boost::none)
virtual bool isReachabilityTimeFormula() const override
virtual std::ostream & writeToStream(std::ostream &out, bool allowParentheses=false) const override
Writes the forumla to the given output stream.
virtual bool isEventuallyFormula() const override
virtual std::ostream & writeToStream(std::ostream &out, bool allowParentheses=false) const =0
Writes the forumla to the given output stream.
bool isUnaryFormula() const
Definition Formula.cpp:184
virtual boost::any visit(AtomicExpressionFormula const &f, boost::any const &data) const =0
Formula const & getSubformula() const
#define STORM_LOG_THROW(cond, exception, message)
Definition macros.h:30
LabParser.cpp.
Definition cli.cpp:18