#include "src/logic/VariableSubstitutionVisitor.h" #include "src/logic/Formulas.h" namespace storm { namespace logic { VariableSubstitutionVisitor::VariableSubstitutionVisitor(std::map const& substitution) : substitution(substitution) { // Intentionally left empty. } std::shared_ptr VariableSubstitutionVisitor::substitute(Formula const& f) const { boost::any result = f.accept(*this, boost::any()); return boost::any_cast>(result); } boost::any VariableSubstitutionVisitor::visit(AtomicExpressionFormula const& f, boost::any const& data) const { return std::static_pointer_cast(std::make_shared(f.getExpression().substitute(substitution))); } } }