12 #ifndef CPROVER_GOTO_INSTRUMENT_ACCELERATE_SAT_PATH_ENUMERATOR_H
13 #define CPROVER_GOTO_INSTRUMENT_ACCELERATE_SAT_PATH_ENUMERATOR_H
70 map<goto_programt::targett, exprt, goto_programt::target_less_than>
Base class for all expressions.
A collection of goto functions.
A generic container class for the GOTO intermediate representation of one function.
instructionst::iterator targett
A loop, specified as a set of instructions.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
guard_managert & guard_manager
acceleration_utilst utils
distinguish_mapt distinguishing_points
message_handlert & message_handler
goto_programt::targett loop_header
void build_path(scratch_programt &scratch_program, patht &path)
goto_functionst & goto_functions
std::list< distinguish_valuest > accelerated_paths
symbol_table_baset & symbol_table
goto_programt & goto_program
void record_path(scratch_programt &scratch_program)
std::map< goto_programt::targett, exprt, goto_programt::target_less_than > distinguish_mapt
std::map< exprt, bool > distinguish_valuest
natural_loops_mutablet::natural_loopt & loop
sat_path_enumeratort(message_handlert &message_handler, symbol_table_baset &_symbol_table, goto_functionst &_goto_functions, goto_programt &_goto_program, natural_loops_mutablet::natural_loopt &_loop, goto_programt::targett _loop_header, guard_managert &guard_manager)
std::list< exprt > distinguishers
void find_distinguishing_points()
The symbol table base class interface.
std::unordered_set< exprt, irep_hash > expr_sett
Compute natural loops in a goto_function.
std::list< path_nodet > patht
This is unused by this implementation of guards, but can be used by other implementations of the same...