Go to the documentation of this file.
12 #ifndef CPROVER_GOTO_CHECKER_SINGLE_PATH_SYMEX_ONLY_CHECKER_H
13 #define CPROVER_GOTO_CHECKER_SINGLE_PATH_SYMEX_ONLY_CHECKER_H
72 std::unordered_set<irep_idt> &updated_properties,
79 std::unordered_set<irep_idt> &updated_properties);
82 #endif // CPROVER_GOTO_CHECKER_SINGLE_PATH_SYMEX_ONLY_CHECKER_H
virtual void setup_symex(symex_bmct &symex)
symbol_tablet symex_symbol_table
resultt operator()(propertiest &) override
Check whether the given properties with status NOT_CHECKED, UNKNOWN or properties newly discovered by...
virtual bool resume_path(path_storaget::patht &path)
Continues exploring the given path using goto-symex.
std::map< irep_idt, property_infot > propertiest
A map of property IDs to property infos.
abstract_goto_modelt & goto_model
Storage of symbolic execution paths to resume.
single_path_symex_only_checkert(const optionst &options, ui_message_handlert &ui_message_handler, abstract_goto_modelt &goto_model)
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.
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...
virtual ~single_path_symex_only_checkert()=default
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_prope...
std::unique_ptr< path_storaget > worklist
guard_managert guard_manager
virtual void initialize_worklist()
Adds the initial goto-symex state as a path to the worklist.
Information saved at a conditional goto to resume execution.
Inheriting the interface of symex_targett this class represents the SSA form of the input program as ...
void equation_output(const symex_bmct &symex, const symex_target_equationt &equation)
An implementation of incremental_goto_checkert provides functionality for checking a set of propertie...
std::chrono::duration< double > symex_runtime
virtual bool has_finished_exploration(const propertiest &)
Returns whether we should stop exploring paths.
Uses goto-symex to generate a symex_target_equationt for each path.
Abstract interface to eager or lazy GOTO models.
ui_message_handlert & ui_message_handler
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.