25void SmtSolver::add(std::set<storm::expressions::Expression>
const& assertions) {
31void SmtSolver::add(std::initializer_list<storm::expressions::Expression>
const& assertions) {
38 for (uint_fast64_t i = 0; i < n; ++i) {
44 STORM_LOG_THROW(
false, storm::exceptions::NotSupportedException,
"This solver does not support model generation.");
48 STORM_LOG_THROW(
false, storm::exceptions::NotSupportedException,
"This solver does not support model generation.");
51std::vector<storm::expressions::SimpleValuation>
SmtSolver::allSat(std::vector<storm::expressions::Variable>
const&) {
52 STORM_LOG_THROW(
false, storm::exceptions::NotSupportedException,
"This solver does not support model generation.");
56 STORM_LOG_THROW(
false, storm::exceptions::NotSupportedException,
"This solver does not support model generation.");
60 STORM_LOG_THROW(
false, storm::exceptions::NotSupportedException,
"This solver does not support model generation.");
64 STORM_LOG_THROW(
false, storm::exceptions::NotSupportedException,
"This solver does not support generation of unsatisfiable cores.");
68 STORM_LOG_THROW(
false, storm::exceptions::NotSupportedException,
"This solver does not support generation of unsatisfiable cores.");
72 STORM_LOG_THROW(
false, storm::exceptions::NotSupportedException,
"This solver does not support generation of interpolants.");
76 STORM_LOG_THROW(
false, storm::exceptions::NotSupportedException,
"This solver does not support generation of interpolants.");
96 STORM_LOG_THROW(
false, storm::exceptions::NotSupportedException,
"This solver does not support exporting the assertions in the SMT-LIB format.");
This class is responsible for managing a set of typed variables and all expressions using these varia...
A simple implementation of the valuation interface.
The base class for all model references.
ModelReference(storm::expressions::ExpressionManager const &manager)
Creates a model reference that uses the given expression manager.
storm::expressions::ExpressionManager const & getManager() const
Retrieves the expression manager associated with this model reference.
virtual storm::expressions::Expression getInterpolant(std::vector< uint_fast64_t > const &groupsA)
If the last call to check() returned Unsat, the solver has been instantiated with support for interpo...
virtual void pop()=0
Pops a backtracking point from the solver's stack.
virtual bool setTimeout(uint_fast64_t milliseconds)
If supported by the solver, this will limit all subsequent satisfiability queries to the given number...
virtual std::vector< storm::expressions::Expression > getUnsatAssumptions()
If the last call to checkWithAssumptions() returned Unsat, this function can be used to retrieve a su...
virtual void add(storm::expressions::Expression const &assertion)=0
Adds an assertion to the solver's stack.
virtual bool unsetTimeout()
If supported by the solver, this unsets a previous timeout.
virtual storm::expressions::SimpleValuation getModelAsValuation()
If the last call to check() or checkWithAssumptions() returned Sat, this method retrieves a model tha...
storm::expressions::ExpressionManager const & getManager() const
Retrieves the expression manager associated with the solver.
virtual std::vector< storm::expressions::SimpleValuation > allSat(std::vector< storm::expressions::Variable > const &important)
Performs AllSat over the (provided) important atoms.
SmtSolver(storm::expressions::ExpressionManager &manager)
Constructs a new Smt solver with the given options.
virtual ~SmtSolver()
Destructs the solver instance.
virtual void setInterpolationGroup(uint_fast64_t group)
Sets the current interpolation group.
virtual std::string getSmtLibString() const
If supported by the solver, this function returns the current assertions in the SMT-LIB format.
virtual std::vector< storm::expressions::Expression > getUnsatCore()
If the last call to check() returned Unsat, this function can be used to retrieve the unsatisfiable c...
virtual std::shared_ptr< ModelReference > getModel()
If the last call to check() or checkWithAssumptions() returned Sat, this method retrieves a model tha...
#define STORM_LOG_THROW(cond, exception, message)