Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
SmtSolver.cpp
Go to the documentation of this file.
2
5
6namespace storm {
7namespace solver {
8
10 // Intentionally left empty.
11}
12
16
18 // Intentionally left empty.
19}
20
22 // Intentionally left empty.
23}
24
25void SmtSolver::add(std::set<storm::expressions::Expression> const& assertions) {
26 for (storm::expressions::Expression assertion : assertions) {
27 this->add(assertion);
28 }
29}
30
31void SmtSolver::add(std::initializer_list<storm::expressions::Expression> const& assertions) {
32 for (storm::expressions::Expression assertion : assertions) {
33 this->add(assertion);
34 }
35}
36
37void SmtSolver::pop(uint_fast64_t n) {
38 for (uint_fast64_t i = 0; i < n; ++i) {
39 this->pop();
40 }
41}
42
44 STORM_LOG_THROW(false, storm::exceptions::NotSupportedException, "This solver does not support model generation.");
45}
46
47std::shared_ptr<SmtSolver::ModelReference> SmtSolver::getModel() {
48 STORM_LOG_THROW(false, storm::exceptions::NotSupportedException, "This solver does not support model generation.");
49}
50
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.");
53}
54
55uint_fast64_t SmtSolver::allSat(std::vector<storm::expressions::Variable> const&, std::function<bool(storm::expressions::SimpleValuation&)> const&) {
56 STORM_LOG_THROW(false, storm::exceptions::NotSupportedException, "This solver does not support model generation.");
57}
58
59uint_fast64_t SmtSolver::allSat(std::vector<storm::expressions::Variable> const&, std::function<bool(ModelReference&)> const&) {
60 STORM_LOG_THROW(false, storm::exceptions::NotSupportedException, "This solver does not support model generation.");
61}
62
63std::vector<storm::expressions::Expression> SmtSolver::getUnsatCore() {
64 STORM_LOG_THROW(false, storm::exceptions::NotSupportedException, "This solver does not support generation of unsatisfiable cores.");
65}
66
67std::vector<storm::expressions::Expression> SmtSolver::getUnsatAssumptions() {
68 STORM_LOG_THROW(false, storm::exceptions::NotSupportedException, "This solver does not support generation of unsatisfiable cores.");
69}
70
72 STORM_LOG_THROW(false, storm::exceptions::NotSupportedException, "This solver does not support generation of interpolants.");
73}
74
76 STORM_LOG_THROW(false, storm::exceptions::NotSupportedException, "This solver does not support generation of interpolants.");
77}
78
80 return manager;
81}
82
86
87bool SmtSolver::setTimeout(uint_fast64_t) {
88 return false;
89}
90
92 return false;
93}
94
95std::string SmtSolver::getSmtLibString() const {
96 STORM_LOG_THROW(false, storm::exceptions::NotSupportedException, "This solver does not support exporting the assertions in the SMT-LIB format.");
97 return "ERROR";
98}
99
100} // namespace solver
101} // namespace storm
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.
Definition SmtSolver.h:31
ModelReference(storm::expressions::ExpressionManager const &manager)
Creates a model reference that uses the given expression manager.
Definition SmtSolver.cpp:9
storm::expressions::ExpressionManager const & getManager() const
Retrieves the expression manager associated with this model reference.
Definition SmtSolver.cpp:13
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...
Definition SmtSolver.cpp:75
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...
Definition SmtSolver.cpp:87
virtual std::vector< storm::expressions::Expression > getUnsatAssumptions()
If the last call to checkWithAssumptions() returned Unsat, this function can be used to retrieve a su...
Definition SmtSolver.cpp:67
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.
Definition SmtSolver.cpp:91
virtual storm::expressions::SimpleValuation getModelAsValuation()
If the last call to check() or checkWithAssumptions() returned Sat, this method retrieves a model tha...
Definition SmtSolver.cpp:43
storm::expressions::ExpressionManager const & getManager() const
Retrieves the expression manager associated with the solver.
Definition SmtSolver.cpp:79
virtual std::vector< storm::expressions::SimpleValuation > allSat(std::vector< storm::expressions::Variable > const &important)
Performs AllSat over the (provided) important atoms.
Definition SmtSolver.cpp:51
SmtSolver(storm::expressions::ExpressionManager &manager)
Constructs a new Smt solver with the given options.
Definition SmtSolver.cpp:17
virtual ~SmtSolver()
Destructs the solver instance.
Definition SmtSolver.cpp:21
virtual void setInterpolationGroup(uint_fast64_t group)
Sets the current interpolation group.
Definition SmtSolver.cpp:71
virtual std::string getSmtLibString() const
If supported by the solver, this function returns the current assertions in the SMT-LIB format.
Definition SmtSolver.cpp:95
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...
Definition SmtSolver.cpp:63
virtual std::shared_ptr< ModelReference > getModel()
If the last call to check() or checkWithAssumptions() returned Sat, this method retrieves a model tha...
Definition SmtSolver.cpp:47
#define STORM_LOG_THROW(cond, exception, message)
Definition macros.h:30
LabParser.cpp.
Definition cli.cpp:18