CBMC
smt2_dec.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module:
4 
5 Author: Daniel Kroening, kroening@kroening.com
6 
7 \*******************************************************************/
8 
9 
10 #ifndef CPROVER_SOLVERS_SMT2_SMT2_DEC_H
11 #define CPROVER_SOLVERS_SMT2_SMT2_DEC_H
12 
13 #include "smt2_conv.h"
14 
15 #include <fstream>
16 
17 class message_handlert;
18 
20 {
21 protected:
22  std::stringstream stringstream;
23 };
24 
27 class smt2_dect : protected smt2_stringstreamt, public smt2_convt
28 {
29 public:
31  const namespacet &_ns,
32  const std::string &_benchmark,
33  const std::string &_notes,
34  const std::string &_logic,
35  solvert _solver,
36  message_handlert &_message_handler)
37  : smt2_convt(_ns, _benchmark, _notes, _logic, _solver, stringstream),
38  message_handler(_message_handler)
39  {
40  }
41 
42  resultt dec_solve() override;
43  std::string decision_procedure_text() const override;
44 
45 protected:
47 
50  std::stringstream cached_output;
51 
52  resultt read_result(std::istream &in);
53 };
54 
55 #endif // CPROVER_SOLVERS_SMT2_SMT2_DEC_H
smt2_conv.h
resultt
resultt
The result of goto verifying.
Definition: properties.h:44
smt2_stringstreamt::stringstream
std::stringstream stringstream
Definition: smt2_dec.h:22
smt2_dect::cached_output
std::stringstream cached_output
Everything except the footer is cached, so that output files can be rewritten with varying footers.
Definition: smt2_dec.h:50
smt2_dect::dec_solve
resultt dec_solve() override
Run the decision procedure to solve the problem.
Definition: smt2_dec.cpp:34
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition: namespace.h:90
message_handlert
Definition: message.h:27
decision_proceduret::resultt
resultt
Result of running the decision procedure.
Definition: decision_procedure.h:43
smt2_convt
Definition: smt2_conv.h:36
smt2_dect::read_result
resultt read_result(std::istream &in)
Definition: smt2_dec.cpp:141
smt2_dect::message_handler
message_handlert & message_handler
Definition: smt2_dec.h:46
smt2_dect::decision_procedure_text
std::string decision_procedure_text() const override
Return a textual description of the decision procedure.
Definition: smt2_dec.cpp:18
smt2_dect
Decision procedure interface for various SMT 2.x solvers.
Definition: smt2_dec.h:27
smt2_convt::solvert
solvert
Definition: smt2_conv.h:39
smt2_stringstreamt
Definition: smt2_dec.h:19
smt2_dect::smt2_dect
smt2_dect(const namespacet &_ns, const std::string &_benchmark, const std::string &_notes, const std::string &_logic, solvert _solver, message_handlert &_message_handler)
Definition: smt2_dec.h:30