CBMC
Loading...
Searching...
No Matches
nondet.h
Go to the documentation of this file.
1/*******************************************************************\
2
3Module: Non-deterministic object init and choice for JBMC
4
5Author: Diffblue Ltd.
6
7\*******************************************************************/
8
9#ifndef CPROVER_JAVA_BYTECODE_NONDET_H
10#define CPROVER_JAVA_BYTECODE_NONDET_H
11
12#include <util/mp_arith.h>
13#include <util/std_code.h>
14
17
19 std::function<symbol_exprt(const typet &type, std::string)>;
20
31 const exprt &min_value_expr,
32 const exprt &max_value_expr,
33 const std::string &basename_prefix,
34 const source_locationt &source_location,
35 allocate_objectst &allocate_objects,
36 code_blockt &instructions);
37
49 const exprt &min_value_expr,
50 const exprt &max_value_expr,
51 const std::string &basename_prefix,
52 const source_locationt &source_location,
54 code_blockt &instructions);
55
75 const mp_integer &min_value,
76 const mp_integer &max_value,
77 const std::string &basename_prefix,
78 const typet &int_type,
79 const source_locationt &source_location,
80 allocate_objectst &allocate_objects,
81 code_blockt &instructions);
82
83typedef std::vector<codet> alternate_casest;
84
96 const irep_idt &name_prefix,
98 const typet &int_type,
99 const irep_idt &mode,
100 const source_locationt &source_location,
101 symbol_table_baset &symbol_table);
102
103#endif // CPROVER_JAVA_BYTECODE_NONDET_H
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Definition ai.h:566
A codet representing sequential composition of program statements.
Definition std_code.h:130
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Definition dstring.h:38
Base class for all expressions.
Definition expr.h:57
Expression to hold a symbol (variable)
Definition std_expr.h:132
The symbol table base class interface.
The type of an expression, extends irept.
Definition type.h:29
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
std::vector< codet > alternate_casest
Definition nondet.h:83
std::function< symbol_exprt(const typet &type, std::string)> allocate_local_symbolt
Definition nondet.h:19
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
BigInt mp_integer
Definition smt_terms.h:17