cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
multi_path_symex_only_checker.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: Goto Checker using Multi-Path Symbolic Execution only
4
5
Author: Daniel Kroening, Peter Schrammel
6
7
\*******************************************************************/
8
11
12
#ifndef CPROVER_GOTO_CHECKER_MULTI_PATH_SYMEX_ONLY_CHECKER_H
13
#define CPROVER_GOTO_CHECKER_MULTI_PATH_SYMEX_ONLY_CHECKER_H
14
15
#include <
goto-programs/unwindset.h
>
16
17
#include <
goto-symex/path_storage.h
>
18
19
#include "
incremental_goto_checker.h
"
20
#include "
symex_bmc.h
"
21
22
class
multi_path_symex_only_checkert
:
public
incremental_goto_checkert
23
{
24
public
:
25
multi_path_symex_only_checkert
(
26
const
optionst
&
options
,
27
ui_message_handlert
&
ui_message_handler
,
28
abstract_goto_modelt
&
goto_model
);
29
30
resultt
operator()
(
propertiest
&)
override
;
31
32
protected
:
33
abstract_goto_modelt
&
goto_model
;
34
symbol_tablet
symex_symbol_table
;
35
namespacet
ns
;
36
symex_target_equationt
equation
;
37
guard_managert
guard_manager
;
38
path_fifot
path_storage
;
// should go away
39
unwindsett
unwindset
;
40
symex_bmct
symex
;
41
43
virtual
void
generate_equation
();
44
47
virtual
void
update_properties
(
48
propertiest
&properties,
49
std::unordered_set<irep_idt> &updated_properties);
50
};
51
52
#endif
// CPROVER_GOTO_CHECKER_MULTI_PATH_SYMEX_ONLY_CHECKER_H
abstract_goto_modelt
Abstract interface to eager or lazy GOTO models.
Definition
abstract_goto_model.h:22
incremental_goto_checkert::incremental_goto_checkert
incremental_goto_checkert()=delete
incremental_goto_checkert::options
const optionst & options
Definition
incremental_goto_checker.h:91
incremental_goto_checkert::ui_message_handler
ui_message_handlert & ui_message_handler
Definition
incremental_goto_checker.h:92
multi_path_symex_only_checkert::ns
namespacet ns
Definition
multi_path_symex_only_checker.h:35
multi_path_symex_only_checkert::multi_path_symex_only_checkert
multi_path_symex_only_checkert(const optionst &options, ui_message_handlert &ui_message_handler, abstract_goto_modelt &goto_model)
Definition
multi_path_symex_only_checker.cpp:22
multi_path_symex_only_checkert::operator()
resultt operator()(propertiest &) override
Check whether the given properties with status NOT_CHECKED, UNKNOWN or properties newly discovered by...
Definition
multi_path_symex_only_checker.cpp:45
multi_path_symex_only_checkert::symex_symbol_table
symbol_tablet symex_symbol_table
Definition
multi_path_symex_only_checker.h:34
multi_path_symex_only_checkert::path_storage
path_fifot path_storage
Definition
multi_path_symex_only_checker.h:38
multi_path_symex_only_checkert::equation
symex_target_equationt equation
Definition
multi_path_symex_only_checker.h:36
multi_path_symex_only_checkert::guard_manager
guard_managert guard_manager
Definition
multi_path_symex_only_checker.h:37
multi_path_symex_only_checkert::symex
symex_bmct symex
Definition
multi_path_symex_only_checker.h:40
multi_path_symex_only_checkert::unwindset
unwindsett unwindset
Definition
multi_path_symex_only_checker.h:39
multi_path_symex_only_checkert::goto_model
abstract_goto_modelt & goto_model
Definition
multi_path_symex_only_checker.h:33
multi_path_symex_only_checkert::update_properties
virtual void update_properties(propertiest &properties, std::unordered_set< irep_idt > &updated_properties)
Updates the properties from the equation and adds their property IDs to updated_properties.
Definition
multi_path_symex_only_checker.cpp:95
multi_path_symex_only_checkert::generate_equation
virtual void generate_equation()
Generates the equation by running goto-symex.
Definition
multi_path_symex_only_checker.cpp:75
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition
namespace.h:91
optionst
Definition
options.h:23
path_fifot
FIFO save queue: paths are resumed in the order that they were saved.
Definition
path_storage.h:184
symbol_tablet
The symbol table.
Definition
symbol_table.h:14
symex_bmct
Definition
symex_bmc.h:24
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
Definition
ui_message.h:22
unwindsett
Definition
unwindset.h:26
guard_managert
guard_expr_managert guard_managert
Definition
guard.h:28
incremental_goto_checker.h
Incremental Goto Checker Interface.
path_storage.h
Storage of symbolic execution paths to resume.
propertiest
std::map< irep_idt, property_infot > propertiest
A map of property IDs to property infos.
Definition
properties.h:76
incremental_goto_checkert::resultt
Definition
incremental_goto_checker.h:43
symex_bmc.h
Bounded Model Checking for ANSI-C.
unwindset.h
Loop unwinding.
goto-checker
multi_path_symex_only_checker.h
Generated by
1.17.0