cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
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
20
class
decision_proceduret
;
21
22
class
functionst
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
{
38
add_function_constraints
();
39
}
40
41
protected
:
42
decision_proceduret
&
decision_procedure
;
43
44
typedef
std::set<function_application_exprt>
applicationst
;
45
46
struct
function_infot
47
{
48
applicationst
applications
;
49
};
50
51
typedef
std::map<exprt, function_infot>
function_mapt
;
52
function_mapt
function_map
;
53
54
virtual
void
add_function_constraints
();
55
virtual
void
add_function_constraints
(
const
function_infot
&info);
56
57
exprt
arguments_equal
(
const
exprt::operandst
&o1,
const
exprt::operandst
&o2);
58
};
59
60
#endif
// CPROVER_SOLVERS_LOWERING_FUNCTIONS_H
decision_proceduret
An interface for a decision procedure for satisfiability problems.
Definition
decision_procedure.h:22
exprt
Base class for all expressions.
Definition
expr.h:57
exprt::operandst
std::vector< exprt > operandst
Definition
expr.h:59
function_application_exprt
Application of (mathematical) function.
Definition
mathematical_expr.h:213
functionst::function_map
function_mapt function_map
Definition
functions.h:52
functionst::finish_eager_conversion
virtual void finish_eager_conversion()
Definition
functions.h:36
functionst::~functionst
virtual ~functionst()
Definition
functions.h:30
functionst::add_function_constraints
virtual void add_function_constraints()
Definition
functions.cpp:21
functionst::arguments_equal
exprt arguments_equal(const exprt::operandst &o1, const exprt::operandst &o2)
Definition
functions.cpp:27
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
functionst::function_mapt
std::map< exprt, function_infot > function_mapt
Definition
functions.h:51
functionst::functionst
functionst(decision_proceduret &_decision_procedure)
Definition
functions.h:25
functionst::decision_procedure
decision_proceduret & decision_procedure
Definition
functions.h:42
mathematical_expr.h
API to expression classes for 'mathematical' expressions.
functionst::function_infot
Definition
functions.h:47
functionst::function_infot::applications
applicationst applications
Definition
functions.h:48
solvers
lowering
functions.h
Generated by
1.17.0