3#include <unordered_map>
6#include "storm-config.h"
25class Z3ExpressionAdapter :
public storm::expressions::ExpressionVisitor {
34 Z3ExpressionAdapter(storm::expressions::ExpressionManager& manager, z3::context& context);
42 z3::expr translateExpression(storm::expressions::Expression
const& expression);
50 z3::expr translateExpression(storm::expressions::Variable
const& variable);
52 storm::expressions::Expression translateExpression(z3::expr
const& expr);
60 storm::expressions::Variable
const& getVariable(z3::func_decl z3Declaration);
62 virtual boost::any visit(storm::expressions::BinaryBooleanFunctionExpression
const& expression, boost::any
const& data)
override;
64 virtual boost::any visit(storm::expressions::BinaryNumericalFunctionExpression
const& expression, boost::any
const& data)
override;
66 virtual boost::any visit(storm::expressions::BinaryRelationExpression
const& expression, boost::any
const& data)
override;
68 virtual boost::any visit(storm::expressions::BooleanLiteralExpression
const& expression, boost::any
const& data)
override;
70 virtual boost::any visit(storm::expressions::RationalLiteralExpression
const& expression, boost::any
const& data)
override;
72 virtual boost::any visit(storm::expressions::IntegerLiteralExpression
const& expression, boost::any
const& data)
override;
74 virtual boost::any visit(storm::expressions::UnaryBooleanFunctionExpression
const& expression, boost::any
const& data)
override;
76 virtual boost::any visit(storm::expressions::UnaryNumericalFunctionExpression
const& expression, boost::any
const& data)
override;
78 virtual boost::any visit(storm::expressions::IfThenElseExpression
const& expression, boost::any
const& data)
override;
80 virtual boost::any visit(storm::expressions::VariableExpression
const& expression, boost::any
const& data)
override;
88 z3::expr createVariable(storm::expressions::Variable
const& variable);
91 storm::expressions::ExpressionManager&
manager;
98 std::vector<z3::expr> additionalAssertions;
101 std::unordered_map<storm::expressions::Variable, z3::expr> variableToExpressionMapping;
104 std::unordered_map<Z3_func_decl, storm::expressions::Variable> declarationToVariableMapping;
107 std::unordered_map<storm::expressions::BaseExpression const*, z3::expr> expressionCache;
The base class of all expression classes.
SettingsManager const & manager()
Retrieves the settings manager.