4#include <unordered_map>
7#include "storm-config.h"
25class Cvc5ExpressionAdapter :
public storm::expressions::ExpressionVisitor {
35 Cvc5ExpressionAdapter(storm::expressions::ExpressionManager& manager, cvc5::Solver& solver);
43 cvc5::Term translateExpression(storm::expressions::Expression
const& expression);
51 cvc5::Term translateExpression(storm::expressions::Variable
const& variable);
59 storm::expressions::Expression translateExpression(cvc5::Term
const& term);
67 storm::expressions::Variable
const& getVariable(cvc5::Term
const& constant);
69 virtual boost::any visit(storm::expressions::BinaryBooleanFunctionExpression
const& expression, boost::any
const& data)
override;
71 virtual boost::any visit(storm::expressions::BinaryNumericalFunctionExpression
const& expression, boost::any
const& data)
override;
73 virtual boost::any visit(storm::expressions::BinaryRelationExpression
const& expression, boost::any
const& data)
override;
75 virtual boost::any visit(storm::expressions::BooleanLiteralExpression
const& expression, boost::any
const& data)
override;
77 virtual boost::any visit(storm::expressions::RationalLiteralExpression
const& expression, boost::any
const& data)
override;
79 virtual boost::any visit(storm::expressions::IntegerLiteralExpression
const& expression, boost::any
const& data)
override;
81 virtual boost::any visit(storm::expressions::UnaryBooleanFunctionExpression
const& expression, boost::any
const& data)
override;
83 virtual boost::any visit(storm::expressions::UnaryNumericalFunctionExpression
const& expression, boost::any
const& data)
override;
85 virtual boost::any visit(storm::expressions::IfThenElseExpression
const& expression, boost::any
const& data)
override;
87 virtual boost::any visit(storm::expressions::VariableExpression
const& expression, boost::any
const& data)
override;
95 cvc5::Term createVariable(storm::expressions::Variable
const& variable);
100 cvc5::Term createRational(storm::RationalNumber
const& value);
112 cvc5::Term convertToRealIfExpected(cvc5::Term
const& term,
bool const& isRealExpected)
const;
123 void unifyNumericalTypes(cvc5::Term& leftTerm, cvc5::Term& rightTerm)
const;
126 storm::expressions::ExpressionManager&
manager;
129 cvc5::TermManager& termManager;
132 std::unordered_map<storm::expressions::Variable, cvc5::Term> variableToExpressionMapping;
135 std::unordered_map<cvc5::Term, storm::expressions::Variable> expressionToVariableMapping;
138 std::unordered_map<storm::expressions::BaseExpression const*, cvc5::Term> expressionCache;
The base class of all expression classes.
SettingsManager const & manager()
Retrieves the settings manager.