7#include "absl/container/btree_map.h"
10#include "lib/castable.h"
11#include "lib/cstring.h"
15using Constraint = IR::Expression;
18using SymbolicMapping =
19 absl::btree_map<const IR::SymbolicVariable *, const IR::Expression *, IR::SymbolicVariableLess>;
40 virtual std::optional<bool>
checkSat(
const std::vector<const Constraint *> &asserts) = 0;
Provides a higher-level interface for an SMT solver.
Definition solver.h:22
virtual void comment(cstring comment)=0
virtual bool isInIncrementalMode() const =0
virtual void seed(unsigned seed)=0
virtual std::optional< bool > checkSat(const std::vector< const Constraint * > &asserts)=0
virtual const SymbolicMapping & getSymbolicMapping() const =0
virtual void toJSON(JSONGenerator &) const =0
Saves solver state to the given JSON generator.
virtual void timeout(unsigned tm)=0
Sets timeout for solver in milliseconds.
Definition json_generator.h:34