cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
string_insertion_builtin_function.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: String solver
4
5
Author: Romain Brenguier, romain.brenguier@diffblue.com
6
7
\*******************************************************************/
8
9
#ifndef CPROVER_SOLVERS_STRINGS_STRING_INSERTION_BUILTIN_FUNCTION_H
10
#define CPROVER_SOLVERS_STRINGS_STRING_INSERTION_BUILTIN_FUNCTION_H
11
12
#include "
string_builtin_function.h
"
13
15
class
string_insertion_builtin_functiont
:
public
string_builtin_functiont
16
{
17
public
:
18
array_string_exprt
result
;
19
array_string_exprt
input1
;
20
array_string_exprt
input2
;
21
std::vector<exprt>
args
;
22
29
string_insertion_builtin_functiont
(
30
const
exprt
&
return_code
,
31
const
std::vector<exprt> &fun_args,
32
array_poolt
&
array_pool
);
33
34
std::optional<array_string_exprt>
string_result
()
const override
35
{
36
return
result
;
37
}
38
std::vector<array_string_exprt>
string_arguments
()
const override
39
{
40
return
{
input1
,
input2
};
41
}
42
44
virtual
std::vector<mp_integer>
eval
(
45
const
std::vector<mp_integer> &input1_value,
46
const
std::vector<mp_integer> &input2_value,
47
const
std::vector<mp_integer> &args_value)
const
;
48
49
std::optional<exprt>
50
eval
(
const
std::function<
exprt
(
const
exprt
&)> &get_value)
const override
;
51
52
std::string
name
()
const override
53
{
54
return
"insert"
;
55
}
56
69
string_constraintst
constraints
(
70
string_constraint_generatort
&generator,
71
message_handlert
&message_handler)
const override
;
72
76
exprt
length_constraint
()
const override
;
77
78
bool
maybe_testing_function
()
const override
79
{
80
return
false
;
81
}
82
83
protected
:
84
string_insertion_builtin_functiont
(
85
const
exprt
&
return_code
,
86
array_poolt
&
array_pool
)
87
:
string_builtin_functiont
(
return_code
,
array_pool
)
88
{
89
}
90
};
91
92
#endif
// CPROVER_SOLVERS_STRINGS_STRING_INSERTION_BUILTIN_FUNCTION_H
array_poolt
Correspondance between arrays and pointers string representations.
Definition
array_pool.h:42
array_string_exprt
Definition
string_expr.h:68
exprt
Base class for all expressions.
Definition
expr.h:57
message_handlert
Definition
message.h:27
string_builtin_functiont::return_code
exprt return_code
Definition
string_builtin_function.h:110
string_builtin_functiont::string_builtin_functiont
string_builtin_functiont()=delete
string_builtin_functiont::array_pool
array_poolt & array_pool
Definition
string_builtin_function.h:121
string_constraint_generatort
Definition
string_constraint_generator.h:48
string_insertion_builtin_functiont::string_insertion_builtin_functiont
string_insertion_builtin_functiont(const exprt &return_code, array_poolt &array_pool)
Definition
string_insertion_builtin_function.h:84
string_insertion_builtin_functiont::constraints
string_constraintst constraints(string_constraint_generatort &generator, message_handlert &message_handler) const override
Constraints ensuring the result corresponds to input1 where we inserted input2 at position offset giv...
Definition
string_insertion_builtin_function.cpp:89
string_insertion_builtin_functiont::string_insertion_builtin_functiont
string_insertion_builtin_functiont(const exprt &return_code, const std::vector< exprt > &fun_args, array_poolt &array_pool)
Constructor from arguments of a function application.
Definition
string_insertion_builtin_function.cpp:23
string_insertion_builtin_functiont::length_constraint
exprt length_constraint() const override
Definition
string_insertion_builtin_function.cpp:13
string_insertion_builtin_functiont::name
std::string name() const override
Definition
string_insertion_builtin_function.h:52
string_insertion_builtin_functiont::input1
array_string_exprt input1
Definition
string_insertion_builtin_function.h:19
string_insertion_builtin_functiont::string_result
std::optional< array_string_exprt > string_result() const override
Definition
string_insertion_builtin_function.h:34
string_insertion_builtin_functiont::string_arguments
std::vector< array_string_exprt > string_arguments() const override
Definition
string_insertion_builtin_function.h:38
string_insertion_builtin_functiont::result
array_string_exprt result
Definition
string_insertion_builtin_function.h:18
string_insertion_builtin_functiont::input2
array_string_exprt input2
Definition
string_insertion_builtin_function.h:20
string_insertion_builtin_functiont::eval
virtual std::vector< mp_integer > eval(const std::vector< mp_integer > &input1_value, const std::vector< mp_integer > &input2_value, const std::vector< mp_integer > &args_value) const
Evaluate the result from a concrete valuation of the arguments.
Definition
string_insertion_builtin_function.cpp:39
string_insertion_builtin_functiont::maybe_testing_function
bool maybe_testing_function() const override
Tells whether the builtin function can be a testing function, that is a function that does not return...
Definition
string_insertion_builtin_function.h:78
string_insertion_builtin_functiont::args
std::vector< exprt > args
Definition
string_insertion_builtin_function.h:21
string_builtin_function.h
string_constraintst
Collection of constraints of different types: existential formulas, universal formulas,...
Definition
string_constraint_generator.h:39
solvers
strings
string_insertion_builtin_function.h
Generated by
1.17.0