cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
nondet.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: Non-deterministic object init and choice for JBMC
4
5
Author: Diffblue Ltd.
6
7
\*******************************************************************/
8
9
#ifndef CPROVER_JAVA_BYTECODE_NONDET_H
10
#define CPROVER_JAVA_BYTECODE_NONDET_H
11
12
#include <
util/std_code.h
>
13
14
class
allocate_objectst
;
15
class
symbol_table_baset
;
16
17
using
allocate_local_symbolt
=
18
std::function<
symbol_exprt
(
const
typet
&type, std::string)>;
19
29
symbol_exprt
generate_nondet_int
(
30
const
exprt
&min_value_expr,
31
const
exprt
&max_value_expr,
32
const
std::string &basename_prefix,
33
const
source_locationt
&source_location,
34
allocate_objectst
&allocate_objects,
35
code_blockt
&instructions);
36
47
symbol_exprt
generate_nondet_int
(
48
const
exprt
&min_value_expr,
49
const
exprt
&max_value_expr,
50
const
std::string &basename_prefix,
51
const
source_locationt
&source_location,
52
const
allocate_local_symbolt
&alocate_local_symbol,
53
code_blockt
&instructions);
54
73
symbol_exprt
generate_nondet_int
(
74
const
mp_integer
&min_value,
75
const
mp_integer
&max_value,
76
const
std::string &basename_prefix,
77
const
typet
&int_type,
78
const
source_locationt
&source_location,
79
allocate_objectst
&allocate_objects,
80
code_blockt
&instructions);
81
82
typedef
std::vector<codet>
alternate_casest
;
83
94
code_blockt
generate_nondet_switch
(
95
const
irep_idt
&name_prefix,
96
const
alternate_casest
&switch_cases,
97
const
typet
&int_type,
98
const
irep_idt
&mode,
99
const
source_locationt
&source_location,
100
symbol_table_baset
&symbol_table);
101
102
#endif
// CPROVER_JAVA_BYTECODE_NONDET_H
allocate_objectst
Definition
allocate_objects.h:27
code_blockt
A codet representing sequential composition of program statements.
Definition
std_code.h:130
exprt
Base class for all expressions.
Definition
expr.h:57
source_locationt
Definition
source_location.h:20
symbol_exprt
Expression to hold a symbol (variable).
Definition
std_expr.h:132
symbol_table_baset
The symbol table base class interface.
Definition
symbol_table_base.h:23
typet
The type of an expression, extends irept.
Definition
type.h:29
generate_nondet_switch
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'.
Definition
nondet.cpp:91
alternate_casest
std::vector< codet > alternate_casest
Definition
nondet.h:82
allocate_local_symbolt
std::function< symbol_exprt(const typet &type, std::string)> allocate_local_symbolt
Definition
nondet.h:17
generate_nondet_int
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,...
Definition
nondet.cpp:15
mp_integer
BigInt mp_integer
Definition
smt_terms.h:17
std_code.h
irep_idt
dstringt irep_idt
Definition
verification_result.h:16
jbmc
src
java_bytecode
nondet.h
Generated by
1.17.0