4 #include <unordered_map> 5 #include <unordered_set> 8 #include "dreal/solver/context.h" 9 #include "dreal/solver/sat_solver.h" 10 #include "dreal/solver/theory_solver.h" 11 #include "dreal/util/optional.h" 12 #include "dreal/util/scoped_vector.h" 23 Impl& operator=(
const Impl&) =
delete;
28 optional<Box> CheckSat();
29 void DeclareVariable(
const Variable& v,
bool is_model_variable);
31 void Minimize(
const std::vector<Expression>& functions);
34 void SetInfo(
const std::string& key,
double val);
35 void SetInfo(
const std::string& key,
const std::string& val);
36 void SetInterval(
const Variable& v,
double lb,
double ub);
37 void SetLogic(
const Logic& logic);
38 void SetOption(
const std::string& key,
double val);
39 void SetOption(
const std::string& key,
const std::string& val);
40 optional<std::string> GetOption(
const std::string& key)
const;
41 const Config& config()
const {
return config_; }
42 Config& mutable_config() {
return config_; }
44 Box& box() {
return boxes_.last(); }
45 const Box& get_model() {
return model_; }
60 void mark_model_variable(
const Variable& v);
63 bool is_model_variable(
const Variable& v)
const;
69 Box ExtractModel(
const Box& box)
const;
72 optional<Logic> logic_{};
73 std::unordered_map<std::string, std::string> info_;
74 std::unordered_map<std::string, std::string> option_;
81 std::unordered_set<Variable::Id> model_variables_;
Definition: context_impl.h:17
Sum type of symbolic::Expression and symbolic::Formula.
Definition: api.cc:9
Theory solver for nonlinear theory over the Reals.
Definition: theory_solver.h:19
Represents a symbolic variable.
Definition: symbolic_variable.h:16
Definition: scoped_vector.h:16
Represents a n-dimensional interval vector.
Definition: box.h:17
Definition: sat_solver.h:20
Represents a symbolic form of an expression.
Definition: symbolic_expression.h:164