-
Notifications
You must be signed in to change notification settings - Fork 289
Expand file tree
/
Copy pathmulti_path_symex_only_checker.h
More file actions
52 lines (38 loc) · 1.48 KB
/
multi_path_symex_only_checker.h
File metadata and controls
52 lines (38 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*******************************************************************\
Module: Goto Checker using Multi-Path Symbolic Execution only
Author: Daniel Kroening, Peter Schrammel
\*******************************************************************/
/// \file
/// Goto Checker using Multi-Path Symbolic Execution only (no SAT solving)
#ifndef CPROVER_GOTO_CHECKER_MULTI_PATH_SYMEX_ONLY_CHECKER_H
#define CPROVER_GOTO_CHECKER_MULTI_PATH_SYMEX_ONLY_CHECKER_H
#include <goto-programs/unwindset.h>
#include <goto-symex/path_storage.h>
#include "incremental_goto_checker.h"
#include "symex_bmc.h"
class multi_path_symex_only_checkert : public incremental_goto_checkert
{
public:
multi_path_symex_only_checkert(
const optionst &options,
ui_message_handlert &ui_message_handler,
abstract_goto_modelt &goto_model);
resultt operator()(propertiest &) override;
protected:
abstract_goto_modelt &goto_model;
symbol_tablet symex_symbol_table;
namespacet ns;
symex_target_equationt equation;
guard_managert guard_manager;
path_fifot path_storage; // should go away
unwindsett unwindset;
symex_bmct symex;
/// Generates the equation by running goto-symex
virtual void generate_equation();
/// Updates the \p properties from the `equation` and
/// adds their property IDs to \p updated_properties.
virtual void update_properties(
propertiest &properties,
std::unordered_set<irep_idt> &updated_properties);
};
#endif // CPROVER_GOTO_CHECKER_MULTI_PATH_SYMEX_ONLY_CHECKER_H