Go to the documentation of this file.
12 #ifndef CPROVER_GOTO_INSTRUMENT_ACCELERATE_SCRATCH_PROGRAM_H
13 #define CPROVER_GOTO_INSTRUMENT_ACCELERATE_SCRATCH_PROGRAM_H
54 std::unique_ptr<statet>
122 #endif // CPROVER_GOTO_INSTRUMENT_ACCELERATE_SCRATCH_PROGRAM_H
symbol_tablet symex_symbol_table
FIFO save queue: paths are resumed in the order that they were saved.
Storage for symbolic execution paths to be resumed later.
path_storaget & path_storage
Symbolic execution paths to be resumed later.
std::list< instructiont > instructionst
decision_proceduret * checker
scratch_program_symext symex
guard_managert & guard_manager
Used to create guards.
Base class for all expressions.
symbol_tablet & symbol_table
scratch_programt(symbol_tablet &_symbol_table, message_handlert &mh, guard_managert &guard_manager)
void append(goto_programt::instructionst &instructions)
std::unique_ptr< statet > initialize_entry_point_state(const get_goto_functiont &get_goto_function)
Initialize the symbolic execution and the given state with the beginning of the entry point function.
Storage of symbolic execution paths to resume.
scratch_program_symext(message_handlert &mh, const symbol_tablet &outer_symbol_table, symex_target_equationt &_target, const optionst &options, path_storaget &path_storage, guard_managert &guard_manager)
bool constant_propagation
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
This is unused by this implementation of guards, but can be used by other implementations of the same...
std::unique_ptr< T > util_make_unique(Ts &&... ts)
void append_loop(goto_programt &program, goto_programt::targett loop_header)
const symbol_tablet & outer_symbol_table
The symbol table associated with the goto-program being executed.
goto_functionst functions
exprt eval(const exprt &e)
The main class for the forward symbolic simulator.
bool check_sat(guard_managert &guard_manager)
targett assume(const exprt &guard)
symex_target_equationt equation
std::unique_ptr< propt > satcheck
void append_path(patht &path)
Inheriting the interface of symex_targett this class represents the SSA form of the input program as ...
instructionst instructions
The list of instructions in the goto program.
A collection of goto functions.
std::unique_ptr< goto_symex_statet > symex_state
std::list< path_nodet > patht
std::unique_ptr< statet > initialize_entry_point_state(const get_goto_functiont &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 ...
Decision procedure interface for various SMT 2.x solvers.
A generic container class for the GOTO intermediate representation of one function.
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.
static optionst get_default_options()
bool check_sat(bool do_slice, guard_managert &guard_manager)
targett assign(const exprt &lhs, const exprt &rhs)
instructionst::iterator targett