1#ifndef STORM_LOGIC_FORMULA_H_
2#define STORM_LOGIC_FORMULA_H_
9#include <boost/any.hpp>
13namespace expressions {
16class ExpressionManager;
25class FragmentSpecification;
28class FormulaInformation;
30class Formula :
public std::enable_shared_from_this<Formula> {
222 std::shared_ptr<Formula>
clone()
const;
224 std::shared_ptr<Formula>
substitute(std::map<storm::expressions::Variable, storm::expressions::Expression>
const& substitution)
const;
227 std::shared_ptr<Formula>
substitute(std::map<std::string, storm::expressions::Expression>
const& labelSubstitution)
const;
228 std::shared_ptr<Formula>
substitute(std::map<std::string, std::string>
const& labelSubstitution)
const;
229 std::shared_ptr<Formula>
substituteRewardModelNames(std::map<std::string, std::string>
const& rewardModelNameSubstitution)
const;
242 std::map<std::string, storm::expressions::Expression>
const& labelToExpressionMapping = {})
const;
252 virtual std::ostream&
writeToStream(std::ostream& out,
bool allowParentheses =
false)
const = 0;
257 virtual void gatherAtomicLabelFormulas(std::vector<std::shared_ptr<AtomicLabelFormula const>>& atomicLabelFormulas)
const;
259 virtual void gatherUsedVariables(std::set<storm::expressions::Variable>& usedVariables)
const;
This class is responsible for managing a set of typed variables and all expressions using these varia...
std::ostream & operator<<(std::ostream &out, Bound const &bound)