5 #include "dreal/smt2/location.hh" 6 #include "dreal/smt2/scanner.h" 7 #include "dreal/smt2/sort.h" 8 #include "dreal/smt2/term.h" 9 #include "dreal/solver/context.h" 10 #include "dreal/util/scoped_unordered_map.h" 19 Term operator()(
const std::vector<Term>& arguments)
const;
22 std::vector<Variable> parameters_;
45 bool parse_stream(std::istream& in,
46 const std::string& sname =
"stream input");
53 bool parse_string(
const std::string& input,
54 const std::string& sname =
"string stream");
61 bool parse_file(
const std::string& filename);
69 static void error(
const location& l,
const std::string& m);
73 static void error(
const std::string& m);
80 Variable RegisterVariable(
const std::string& name, Sort sort);
83 Variable DeclareVariable(
const std::string& name, Sort sort);
87 void DeclareVariable(
const std::string& name, Sort sort,
const Term& lb,
92 Variable DeclareLocalVariable(
const std::string& name, Sort sort);
95 void DefineFun(
const std::string& name,
96 const std::vector<Variable>& parameters, Sort return_type,
101 void GetModel()
const;
105 void GetValue(
const std::vector<Term>& term_list)
const;
108 void GetOption(
const std::string& key)
const;
113 const Variable& lookup_variable(
const std::string& name);
117 function_definition_map_.push();
121 function_definition_map_.pop();
125 Term LookupFunction(
const std::string& name,
126 const std::vector<Term>& arguments);
128 static Variable ParseVariableSort(
const std::string& name, Sort s);
130 std::string MakeUniqueName(
const std::string& name);
132 bool trace_scanning()
const {
return trace_scanning_; }
133 void set_trace_scanning(
bool b) { trace_scanning_ = b; }
135 bool trace_parsing()
const {
return trace_parsing_; }
136 void set_trace_parsing(
bool b) { trace_parsing_ = b; }
138 Context& mutable_context() {
return context_; }
140 std::string& mutable_streamname() {
return streamname_; }
154 bool trace_scanning_{
false};
157 bool trace_parsing_{
false};
166 int64_t nextUniqueId_{};
169 std::string streamname_;
Context class that holds a set of constraints and provide Assert/Push/Pop/CheckSat functionalities...
Definition: context.h:23
Sum type of symbolic::Expression and symbolic::Formula.
Definition: api.cc:9
The Smt2Driver class brings together all components.
Definition: driver.h:34
Represents a symbolic variable.
Definition: symbolic_variable.h:16
Backtrackable map.
Definition: scoped_unordered_map.h:19
Smt2Scanner is a derived class to add some extra function to the scanner class.
Definition: scanner.h:38
Represents a set of variables.
Definition: symbolic_variables.h:25