CBMC
functions.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Uninterpreted Functions
4 
5 Author: Daniel Kroening, kroening@kroening.com
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_SOLVERS_LOWERING_FUNCTIONS_H
13 #define CPROVER_SOLVERS_LOWERING_FUNCTIONS_H
14 
15 #include <map>
16 #include <set>
17 
18 #include <util/mathematical_expr.h>
19 
21 
23 {
24 public:
25  explicit functionst(decision_proceduret &_decision_procedure)
26  : decision_procedure(_decision_procedure)
27  {
28  }
29 
30  virtual ~functionst()
31  {
32  }
33 
34  void record(const function_application_exprt &function_application);
35 
36  virtual void finish_eager_conversion()
37  {
39  }
40 
41 protected:
43 
44  typedef std::set<function_application_exprt> applicationst;
45 
47  {
49  };
50 
51  typedef std::map<exprt, function_infot> function_mapt;
53 
54  virtual void add_function_constraints();
55  virtual void add_function_constraints(const function_infot &info);
56 
58 };
59 
60 #endif // CPROVER_SOLVERS_LOWERING_FUNCTIONS_H
functionst::function_map
function_mapt function_map
Definition: functions.h:52
decision_proceduret
Definition: decision_procedure.h:20
exprt
Base class for all expressions.
Definition: expr.h:55
functionst::arguments_equal
exprt arguments_equal(const exprt::operandst &o1, const exprt::operandst &o2)
Definition: functions.cpp:27
functionst
Definition: functions.h:22
functionst::function_infot::applications
applicationst applications
Definition: functions.h:48
functionst::functionst
functionst(decision_proceduret &_decision_procedure)
Definition: functions.h:25
functionst::applicationst
std::set< function_application_exprt > applicationst
Definition: functions.h:44
functionst::record
void record(const function_application_exprt &function_application)
Definition: functions.cpp:15
function_application_exprt
Application of (mathematical) function.
Definition: mathematical_expr.h:196
functionst::decision_procedure
decision_proceduret & decision_procedure
Definition: functions.h:42
exprt::operandst
std::vector< exprt > operandst
Definition: expr.h:58
functionst::add_function_constraints
virtual void add_function_constraints()
Definition: functions.cpp:21
functionst::finish_eager_conversion
virtual void finish_eager_conversion()
Definition: functions.h:36
functionst::function_infot
Definition: functions.h:46
functionst::function_mapt
std::map< exprt, function_infot > function_mapt
Definition: functions.h:51
functionst::~functionst
virtual ~functionst()
Definition: functions.h:30
mathematical_expr.h