CBMC
|
#include <util/std_code.h>
Go to the source code of this file.
Typedefs | |
using | allocate_local_symbolt = std::function< symbol_exprt(const typet &type, std::string)> |
typedef std::vector< codet > | alternate_casest |
Functions | |
symbol_exprt | generate_nondet_int (const exprt &min_value_expr, const exprt &max_value_expr, const std::string &basename_prefix, const source_locationt &source_location, allocate_objectst &allocate_objects, code_blockt &instructions) |
Same as generate_nondet_int( const mp_integer &min_value, const mp_integer &max_value, const std::string &name_prefix, const typet &int_type, const source_locationt &source_location, allocate_objectst &allocate_objects, code_blockt &instructions) except the minimum and maximum values are represented as exprts. More... | |
symbol_exprt | generate_nondet_int (const exprt &min_value_expr, const exprt &max_value_expr, const std::string &basename_prefix, const source_locationt &source_location, const allocate_local_symbolt &alocate_local_symbol, code_blockt &instructions) |
Same as generate_nondet_int( const mp_integer &min_value, const mp_integer &max_value, const std::string &name_prefix, const typet &int_type, const source_locationt &source_location, allocate_objectst &allocate_objects, code_blockt &instructions) except the minimum and maximum values are represented as exprts, and symbols are allocated using allocate_local_symbolt. More... | |
symbol_exprt | generate_nondet_int (const mp_integer &min_value, const mp_integer &max_value, const std::string &basename_prefix, const typet &int_type, const source_locationt &source_location, allocate_objectst &allocate_objects, code_blockt &instructions) |
Gets a fresh nondet choice in range (min_value, max_value). More... | |
code_blockt | generate_nondet_switch (const irep_idt &name_prefix, const alternate_casest &switch_cases, const typet &int_type, const irep_idt &mode, const source_locationt &source_location, symbol_table_baset &symbol_table) |
Pick nondeterministically between imperative actions 'switch_cases'. More... | |
using allocate_local_symbolt = std::function<symbol_exprt(const typet &type, std::string)> |
typedef std::vector<codet> alternate_casest |
symbol_exprt generate_nondet_int | ( | const exprt & | min_value_expr, |
const exprt & | max_value_expr, | ||
const std::string & | basename_prefix, | ||
const source_locationt & | source_location, | ||
allocate_objectst & | allocate_objects, | ||
code_blockt & | instructions | ||
) |
Same as generate_nondet_int( const mp_integer &min_value, const mp_integer &max_value, const std::string &name_prefix, const typet &int_type, const source_locationt &source_location, allocate_objectst &allocate_objects, code_blockt &instructions) except the minimum and maximum values are represented as exprts.
Definition at line 15 of file nondet.cpp.
symbol_exprt generate_nondet_int | ( | const exprt & | min_value_expr, |
const exprt & | max_value_expr, | ||
const std::string & | basename_prefix, | ||
const source_locationt & | source_location, | ||
const allocate_local_symbolt & | alocate_local_symbol, | ||
code_blockt & | instructions | ||
) |
Same as generate_nondet_int( const mp_integer &min_value, const mp_integer &max_value, const std::string &name_prefix, const typet &int_type, const source_locationt &source_location, allocate_objectst &allocate_objects, code_blockt &instructions) except the minimum and maximum values are represented as exprts, and symbols are allocated using allocate_local_symbolt.
Definition at line 38 of file nondet.cpp.
symbol_exprt generate_nondet_int | ( | const mp_integer & | min_value, |
const mp_integer & | max_value, | ||
const std::string & | basename_prefix, | ||
const typet & | int_type, | ||
const source_locationt & | source_location, | ||
allocate_objectst & | allocate_objects, | ||
code_blockt & | instructions | ||
) |
Gets a fresh nondet choice in range (min_value, max_value).
GOTO generated resembles:
min_value | Minimum value (inclusive) of returned int. | |
max_value | Maximum value (inclusive) of returned int. | |
basename_prefix | Basename prefix for the fresh symbol name generated. | |
int_type | The type of the int used to non-deterministically choose one of the switch cases. | |
allocate_objects | Handles allocation of new objects. | |
source_location | The location to mark the generated int with. | |
[out] | instructions | Output instructions are written to 'instructions'. These declare, nondet-initialise and range-constrain (with assume statements) a fresh integer. |
Definition at line 72 of file nondet.cpp.
code_blockt generate_nondet_switch | ( | const irep_idt & | name_prefix, |
const alternate_casest & | switch_cases, | ||
const typet & | int_type, | ||
const irep_idt & | mode, | ||
const source_locationt & | source_location, | ||
symbol_table_baset & | symbol_table | ||
) |
Pick nondeterministically between imperative actions 'switch_cases'.
name_prefix | Name prefix for fresh symbols (should be function id) |
switch_cases | List of codet objects to execute in each switch case. |
int_type | The type of the int used to non-deterministically choose one of the switch cases. |
mode | Mode (language) of the symbol to be generated. |
source_location | The location to mark the generated int with. |
symbol_table | The global symbol table. |
Definition at line 91 of file nondet.cpp.