CBMC
|
Uses goto-symex to generate a symex_target_equationt
for each path.
More...
#include <single_path_symex_only_checker.h>
Public Member Functions | |
single_path_symex_only_checkert (const optionst &options, ui_message_handlert &ui_message_handler, abstract_goto_modelt &goto_model) | |
resultt | operator() (propertiest &) override |
Check whether the given properties with status NOT_CHECKED, UNKNOWN or properties newly discovered by incremental_goto_checkert hold. More... | |
virtual | ~single_path_symex_only_checkert ()=default |
Public Member Functions inherited from incremental_goto_checkert | |
incremental_goto_checkert ()=delete | |
incremental_goto_checkert (const incremental_goto_checkert &)=delete | |
virtual | ~incremental_goto_checkert ()=default |
virtual void | report () |
Additional reporting that may result from the underlying solver, no-op by default. More... | |
Protected Member Functions | |
void | equation_output (const symex_bmct &symex, const symex_target_equationt &equation) |
virtual void | setup_symex (symex_bmct &symex) |
virtual void | initialize_worklist () |
Adds the initial goto-symex state as a path to the worklist. More... | |
virtual bool | resume_path (path_storaget::patht &path) |
Continues exploring the given path using goto-symex. More... | |
virtual bool | is_ready_to_decide (const symex_bmct &symex, const path_storaget::patht &path) |
Returns whether the given path produced by symex is ready to be checked. More... | |
virtual bool | has_finished_exploration (const propertiest &) |
Returns whether we should stop exploring paths. More... | |
virtual void | update_properties (propertiest &properties, std::unordered_set< irep_idt > &updated_properties, const symex_target_equationt &equation) |
Updates the properties from the equation and adds their property IDs to updated_properties . More... | |
virtual void | final_update_properties (propertiest &properties, std::unordered_set< irep_idt > &updated_properties) |
Updates the properties after having finished exploration and adds their property IDs to updated_properties . More... | |
Protected Member Functions inherited from incremental_goto_checkert | |
incremental_goto_checkert (const optionst &, ui_message_handlert &) | |
Protected Attributes | |
abstract_goto_modelt & | goto_model |
symbol_tablet | symex_symbol_table |
namespacet | ns |
guard_managert | guard_manager |
std::unique_ptr< path_storaget > | worklist |
std::chrono::duration< double > | symex_runtime |
unwindsett | unwindset |
Protected Attributes inherited from incremental_goto_checkert | |
const optionst & | options |
ui_message_handlert & | ui_message_handler |
messaget | log |
Uses goto-symex to generate a symex_target_equationt
for each path.
Definition at line 25 of file single_path_symex_only_checker.h.
single_path_symex_only_checkert::single_path_symex_only_checkert | ( | const optionst & | options, |
ui_message_handlert & | ui_message_handler, | ||
abstract_goto_modelt & | goto_model | ||
) |
Definition at line 24 of file single_path_symex_only_checker.cpp.
|
virtualdefault |
|
protected |
Definition at line 128 of file single_path_symex_only_checker.cpp.
|
protectedvirtual |
Updates the properties
after having finished exploration and adds their property IDs to updated_properties
.
Definition at line 170 of file single_path_symex_only_checker.cpp.
|
protectedvirtual |
Returns whether we should stop exploring paths.
Definition at line 85 of file single_path_symex_only_checker.cpp.
|
protectedvirtual |
Adds the initial goto-symex state as a path to the worklist.
Definition at line 63 of file single_path_symex_only_checker.cpp.
|
protectedvirtual |
Returns whether the given path
produced by symex
is ready to be checked.
Reimplemented in single_path_symex_checkert.
Definition at line 120 of file single_path_symex_only_checker.cpp.
|
overridevirtual |
Check whether the given properties with status NOT_CHECKED, UNKNOWN or properties newly discovered by incremental_goto_checkert
hold.
[out] | properties | Properties updated to whether their status have been determined. Newly discovered properties are added. |
build_error_trace
before any subsequent call to operator(). incremental_goto_checkert
derivatives shall be implemented in a way such that repeated calls to operator() shall return when the next FAILed property has been found until eventually it does not find any failing properties any more. Implements incremental_goto_checkert.
Definition at line 37 of file single_path_symex_only_checker.cpp.
|
protectedvirtual |
Continues exploring the given path
using goto-symex.
Definition at line 93 of file single_path_symex_only_checker.cpp.
|
protectedvirtual |
Reimplemented in java_single_path_symex_only_checkert, and java_single_path_symex_checkert.
Definition at line 153 of file single_path_symex_only_checker.cpp.
|
protectedvirtual |
Updates the properties
from the equation
and adds their property IDs to updated_properties
.
Definition at line 158 of file single_path_symex_only_checker.cpp.
|
protected |
Definition at line 38 of file single_path_symex_only_checker.h.
|
protected |
Definition at line 41 of file single_path_symex_only_checker.h.
|
protected |
Definition at line 40 of file single_path_symex_only_checker.h.
|
protected |
Definition at line 43 of file single_path_symex_only_checker.h.
|
protected |
Definition at line 39 of file single_path_symex_only_checker.h.
|
protected |
Definition at line 44 of file single_path_symex_only_checker.h.
|
protected |
Definition at line 42 of file single_path_symex_only_checker.h.