Storm 1.14.0.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
OperatorFormula.h
Go to the documentation of this file.
1#pragma once
2
3#include <boost/optional.hpp>
4
5#include "storm/logic/Bound.h"
9
11
12namespace storm {
13namespace logic {
14
16 OperatorInformation(boost::optional<storm::solver::OptimizationDirection> const& optimizationDirection = boost::none,
17 boost::optional<Bound> const& bound = boost::none);
18
19 boost::optional<storm::solver::OptimizationDirection> optimalityType;
20 boost::optional<Bound> bound;
21};
22
24 public:
25 OperatorFormula(std::shared_ptr<Formula const> const& subformula, OperatorInformation const& operatorInformation = OperatorInformation());
26
27 virtual ~OperatorFormula() {
28 // Intentionally left empty.
29 }
30
31 // Bound-related accessors.
32 bool hasBound() const;
33 Bound const& getBound() const;
34 void setBound(Bound const& newBound);
35 void removeBound();
36
38 void setComparisonType(ComparisonType newComparisonType);
40 template<typename ValueType>
41 ValueType getThresholdAs() const;
42 void setThreshold(storm::expressions::Expression const& newThreshold);
43
44 // Optimality-type-related accessors.
45 bool hasOptimalityType() const;
49 virtual bool isOperatorFormula() const override;
50
52
53 virtual bool hasQualitativeResult() const override;
54 virtual bool hasQuantitativeResult() const override;
55
56 virtual void gatherUsedVariables(std::set<storm::expressions::Variable>& usedVariables) const override;
57
58 virtual std::ostream& writeToStream(std::ostream& out, bool allowParentheses = false) const override;
59
60 protected:
62};
63} // namespace logic
64} // namespace storm
void setComparisonType(ComparisonType newComparisonType)
Bound const & getBound() const
ComparisonType getComparisonType() const
OperatorInformation operatorInformation
virtual void gatherUsedVariables(std::set< storm::expressions::Variable > &usedVariables) const override
OperatorFormula(std::shared_ptr< Formula const > const &subformula, OperatorInformation const &operatorInformation=OperatorInformation())
storm::expressions::Expression const & getThreshold() const
OperatorInformation const & getOperatorInformation() const
virtual bool hasQualitativeResult() const override
virtual bool isOperatorFormula() const override
void setOptimalityType(storm::solver::OptimizationDirection newOptimalityType)
virtual std::ostream & writeToStream(std::ostream &out, bool allowParentheses=false) const override
Writes the forumla to the given output stream.
void setBound(Bound const &newBound)
storm::solver::OptimizationDirection const & getOptimalityType() const
void setThreshold(storm::expressions::Expression const &newThreshold)
virtual bool hasQuantitativeResult() const override
ValueType getThresholdAs() const
UnaryStateFormula(std::shared_ptr< Formula const > subformula)
boost::optional< Bound > bound
OperatorInformation(boost::optional< storm::solver::OptimizationDirection > const &optimizationDirection=boost::none, boost::optional< Bound > const &bound=boost::none)
boost::optional< storm::solver::OptimizationDirection > optimalityType