3#include "storm-config.h"
30 virtual std::string
toString()
const override;
46 virtual void push()
override;
48 virtual void pop()
override;
50 virtual void pop(uint_fast64_t n)
override;
52 virtual void reset()
override;
66 virtual std::shared_ptr<SmtSolver::ModelReference>
getModel()
override;
68 virtual std::vector<storm::expressions::SimpleValuation>
allSat(std::vector<storm::expressions::Variable>
const& important)
override;
70 virtual uint_fast64_t
allSat(std::vector<storm::expressions::Variable>
const& important,
73 virtual uint_fast64_t
allSat(std::vector<storm::expressions::Variable>
const& important, std::function<
bool(
ModelReference&)>
const& callback)
override;
77 virtual bool setTimeout(uint_fast64_t milliseconds)
override;
91 std::unordered_map<storm::expressions::Variable, cvc5::Term> collectVariableValues()
const;
108 cvc5::Term createModelExpression(std::vector<storm::expressions::Variable>
const& variables)
const;
112 std::unique_ptr<cvc5::TermManager> termManager;
115 std::unique_ptr<cvc5::Solver>
solver;
118 std::unique_ptr<storm::adapters::Cvc5ExpressionAdapter> expressionAdapter;
121 bool lastCheckAssumptions;
This class is responsible for managing a set of typed variables and all expressions using these varia...
A simple implementation of the valuation interface.
virtual double getRationalValue(storm::expressions::Variable const &variable) const override
Cvc5ModelReference(storm::expressions::ExpressionManager const &manager, storm::expressions::SimpleValuation variableValues)
Creates a new model reference that provides access to the values that the given model assigns.
virtual bool getBooleanValue(storm::expressions::Variable const &variable) const override
virtual int_fast64_t getIntegerValue(storm::expressions::Variable const &variable) const override
virtual std::string toString() const override
virtual std::vector< storm::expressions::Expression > getUnsatAssumptions() override
If the last call to checkWithAssumptions() returned Unsat, this function can be used to retrieve a su...
virtual bool setTimeout(uint_fast64_t milliseconds) override
If supported by the solver, this will limit all subsequent satisfiability queries to the given number...
virtual void push() override
Pushes a backtracking point on the solver's stack.
virtual void addNotCurrentModel(bool performSolverReset=true) override
If supported by the solver, this function tells the SMT solver to produce a model different from the ...
virtual storm::expressions::SimpleValuation getModelAsValuation() override
If the last call to check() or checkWithAssumptions() returned Sat, this method retrieves a model tha...
virtual std::shared_ptr< SmtSolver::ModelReference > getModel() override
If the last call to check() or checkWithAssumptions() returned Sat, this method retrieves a model tha...
virtual void reset() override
Removes all assertions from the solver's stack.
virtual std::vector< storm::expressions::SimpleValuation > allSat(std::vector< storm::expressions::Variable > const &important) override
Performs AllSat over the (provided) important atoms.
virtual CheckResult checkWithAssumptions(storm::expressions::ExpressionSet const &assumptions) override
Checks whether the conjunction of assertions that are currently on the solver's stack together with t...
virtual void add(storm::expressions::Expression const &assertion) override
Adds an assertion to the solver's stack.
virtual CheckResult check() override
Checks whether the conjunction of assertions that are currently on the solver's stack is satisfiable.
virtual void pop() override
Pops a backtracking point from the solver's stack.
virtual bool unsetTimeout() override
If supported by the solver, this unsets a previous timeout.
Cvc5SmtSolver(storm::expressions::ExpressionManager &manager)
virtual uint_fast64_t allSat(std::vector< storm::expressions::Variable > const &important, std::function< bool(ModelReference &)> const &callback) override
Performs AllSat over the (provided) important atoms.
The base class for all model references.
SmtSolver(storm::expressions::ExpressionManager &manager)
Constructs a new Smt solver with the given options.
CheckResult
possible check results
std::set< Expression, ExpressionComparator > ExpressionSet