cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
symex_bmc_incremental_one_loop.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: Incremental Bounded Model Checking for ANSI-C
4
5
Author: Peter Schrammel, Daniel Kroening, kroening@kroening.com
6
7
\*******************************************************************/
8
9
#ifndef CPROVER_GOTO_CHECKER_SYMEX_BMC_INCREMENTAL_ONE_LOOP_H
10
#define CPROVER_GOTO_CHECKER_SYMEX_BMC_INCREMENTAL_ONE_LOOP_H
11
12
#include "
symex_bmc.h
"
13
#include <
util/ui_message.h
>
14
15
class
symex_bmc_incremental_one_loopt
:
public
symex_bmct
16
{
17
public
:
18
symex_bmc_incremental_one_loopt
(
19
message_handlert
&,
20
const
symbol_tablet
&
outer_symbol_table
,
21
symex_target_equationt
&,
22
const
optionst
&,
23
path_storaget
&,
24
guard_managert
&,
25
unwindsett
&,
26
ui_message_handlert::uit
output_ui
);
27
29
bool
from_entry_point_of
(
30
const
get_goto_functiont
&
get_goto_function
,
31
symbol_tablet
&new_symbol_table);
32
34
bool
resume
(
const
get_goto_functiont
&
get_goto_function
);
35
36
protected
:
37
const
irep_idt
incr_loop_id
;
38
const
unsigned
incr_max_unwind
;
39
const
unsigned
incr_min_unwind
;
40
41
std::unique_ptr<goto_symext::statet>
state
;
42
43
// returns true if the symbolic execution is to be interrupted for checking
44
bool
check_break
(
const
irep_idt
&loop_id,
unsigned
unwind)
override
;
45
46
bool
should_stop_unwind
(
47
const
symex_targett::sourcet
&source,
48
const
call_stackt
&context,
49
unsigned
unwind)
override
;
50
51
void
log_unwinding
(
unsigned
unwind);
52
53
ui_message_handlert::uit
output_ui
;
54
};
55
56
#endif
// CPROVER_GOTO_CHECKER_SYMEX_BMC_INCREMENTAL_ONE_LOOP_H
call_stackt
Definition
call_stack.h:15
goto_symext::outer_symbol_table
const symbol_table_baset & outer_symbol_table
The symbol table associated with the goto-program being executed.
Definition
goto_symex.h:247
goto_symext::get_goto_function
static get_goto_functiont get_goto_function(abstract_goto_modelt &goto_model)
Return a function to get/load a goto function from the given goto model Create a default delegate to ...
Definition
symex_main.cpp:493
goto_symext::get_goto_functiont
std::function< const goto_functionst::goto_functiont &(const irep_idt &)> get_goto_functiont
The type of delegate functions that retrieve a goto_functiont for a particular function identifier.
Definition
goto_symex.h:94
message_handlert
Definition
message.h:27
optionst
Definition
options.h:23
path_storaget
Storage for symbolic execution paths to be resumed later.
Definition
path_storage.h:38
symbol_tablet
The symbol table.
Definition
symbol_table.h:14
symex_bmc_incremental_one_loopt::incr_min_unwind
const unsigned incr_min_unwind
Definition
symex_bmc_incremental_one_loop.h:39
symex_bmc_incremental_one_loopt::output_ui
ui_message_handlert::uit output_ui
Definition
symex_bmc_incremental_one_loop.h:53
symex_bmc_incremental_one_loopt::resume
bool resume(const get_goto_functiont &get_goto_function)
Return true if symex can be resumed.
Definition
symex_bmc_incremental_one_loop.cpp:136
symex_bmc_incremental_one_loopt::symex_bmc_incremental_one_loopt
symex_bmc_incremental_one_loopt(message_handlert &, const symbol_tablet &outer_symbol_table, symex_target_equationt &, const optionst &, path_storaget &, guard_managert &, unwindsett &, ui_message_handlert::uit output_ui)
Definition
symex_bmc_incremental_one_loop.cpp:17
symex_bmc_incremental_one_loopt::from_entry_point_of
bool from_entry_point_of(const get_goto_functiont &get_goto_function, symbol_tablet &new_symbol_table)
Return true if symex can be resumed.
Definition
symex_bmc_incremental_one_loop.cpp:125
symex_bmc_incremental_one_loopt::incr_max_unwind
const unsigned incr_max_unwind
Definition
symex_bmc_incremental_one_loop.h:38
symex_bmc_incremental_one_loopt::incr_loop_id
const irep_idt incr_loop_id
Definition
symex_bmc_incremental_one_loop.h:37
symex_bmc_incremental_one_loopt::log_unwinding
void log_unwinding(unsigned unwind)
Definition
symex_bmc_incremental_one_loop.cpp:145
symex_bmc_incremental_one_loopt::check_break
bool check_break(const irep_idt &loop_id, unsigned unwind) override
Defines condition for interrupting symbolic execution for incremental BMC.
Definition
symex_bmc_incremental_one_loop.cpp:114
symex_bmc_incremental_one_loopt::state
std::unique_ptr< goto_symext::statet > state
Definition
symex_bmc_incremental_one_loop.h:41
symex_bmc_incremental_one_loopt::should_stop_unwind
bool should_stop_unwind(const symex_targett::sourcet &source, const call_stackt &context, unsigned unwind) override
Determine whether to unwind a loop.
Definition
symex_bmc_incremental_one_loop.cpp:52
symex_bmct::symex_bmct
symex_bmct(message_handlert &mh, const symbol_tablet &outer_symbol_table, symex_target_equationt &_target, const optionst &options, path_storaget &path_storage, guard_managert &guard_manager, unwindsett &unwindset)
Definition
symex_bmc.cpp:23
symex_target_equationt
Inheriting the interface of symex_targett this class represents the SSA form of the input program as ...
Definition
symex_target_equation.h:34
ui_message_handlert::uit
uit
Definition
ui_message.h:24
unwindsett
Definition
unwindset.h:26
guard_managert
guard_expr_managert guard_managert
Definition
guard.h:28
symex_targett::sourcet
Identifies source in the context of symbolic execution.
Definition
symex_target.h:37
symex_bmc.h
Bounded Model Checking for ANSI-C.
ui_message.h
irep_idt
dstringt irep_idt
Definition
verification_result.h:16
goto-checker
symex_bmc_incremental_one_loop.h
Generated by
1.17.0