7#include <boost/container/flat_map.hpp> 
    8#include <boost/container/flat_set.hpp> 
   11#include "lib/castable.h" 
   12#include "lib/cstring.h" 
   16using Constraint = IR::Expression;
 
   20    bool operator()(
const IR::SymbolicVariable *s1, 
const IR::SymbolicVariable *s2)
 const {
 
   21        return s1->operator<(*s2);
 
 
   26using SymbolicMapping = boost::container::flat_map<
const IR::SymbolicVariable *,
 
   29using SymbolicSet = boost::container::flat_set<const IR::SymbolicVariable *, SymbolicVarComp>;
 
   50    virtual std::optional<bool> 
checkSat(
const std::vector<const Constraint *> &asserts) = 0;
 
 
Provides a higher-level interface for an SMT solver.
Definition solver.h:32
 
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
 
Comparator to compare SymbolicVariable pointers.
Definition solver.h:19