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
An interface for a decision procedure for satisfiability problems.
Base class for all expressions.
Definition: expr.h:56
std::vector< exprt > operandst
Definition: expr.h:58
Application of (mathematical) function.
function_mapt function_map
Definition: functions.h:52
virtual void finish_eager_conversion()
Definition: functions.h:36
virtual ~functionst()
Definition: functions.h:30
virtual void add_function_constraints()
Definition: functions.cpp:21
exprt arguments_equal(const exprt::operandst &o1, const exprt::operandst &o2)
Definition: functions.cpp:27
std::set< function_application_exprt > applicationst
Definition: functions.h:44
void record(const function_application_exprt &function_application)
Definition: functions.cpp:15
std::map< exprt, function_infot > function_mapt
Definition: functions.h:51
functionst(decision_proceduret &_decision_procedure)
Definition: functions.h:25
decision_proceduret & decision_procedure
Definition: functions.h:42
API to expression classes for 'mathematical' expressions.
applicationst applications
Definition: functions.h:48