7#include "absl/container/btree_map.h"
10#include "lib/castable.h"
11#include "lib/cstring.h"
21 absl::btree_map<const IR::SymbolicVariable *, const IR::Expression *, IR::SymbolicVariableLess>;
42 virtual std::optional<bool>
checkSat(
const std::vector<const Constraint *> &asserts) = 0;
Provides a higher-level interface for an SMT solver.
Definition solver.h:24
virtual std::optional< bool > checkSat(const std::vector< const Constraint * > &asserts)=0
virtual void toJSON(JSONGenerator &) const =0
Saves solver state to the given JSON generator.
virtual void comment(cstring comment)=0
virtual void timeout(unsigned tm)=0
Sets timeout for solver in milliseconds.
virtual const SymbolicMapping & getSymbolicMapping() const =0
virtual bool isInIncrementalMode() const =0
virtual void seed(unsigned seed)=0
Definition json_generator.h:36
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24
IR::Expression Constraint
Represents a constraint that can be shipped to and asserted within a solver.
Definition solver.h:17
absl::btree_map< const IR::SymbolicVariable *, const IR::Expression *, IR::SymbolicVariableLess > SymbolicMapping
This type maps symbolic variables to their value assigned by the solver.
Definition solver.h:20