CBMC
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
reachability_slicer.h
Go to the documentation of this file.
1/*******************************************************************\
2
3Module: Slicing
4
5Author: Daniel Kroening, kroening@kroening.com
6
7\*******************************************************************/
8
11
12#ifndef CPROVER_GOTO_INSTRUMENT_REACHABILITY_SLICER_H
13#define CPROVER_GOTO_INSTRUMENT_REACHABILITY_SLICER_H
14
15#include <list>
16#include <string>
17
18class goto_modelt;
20
22
25 const std::list<std::string> &properties,
27
29 goto_modelt &goto_model,
30 const std::list<std::string> &functions_list,
32
37
40 const std::list<std::string> &properties,
43
44#define OPT_FP_REACHABILITY_SLICER "(fp-reachability-slice):"
45#define OPT_REACHABILITY_SLICER "(reachability-slice)(reachability-slice-fb)"
46
47#define HELP_FP_REACHABILITY_SLICER \
48 " {y--fp-reachability-slice} {uf} \t " \
49 "remove instructions that cannot appear on a trace that visits all given " \
50 "functions. The list of functions has to be given as a comma separated " \
51 "list {uf}.\n" \
52 " {y--reachability-slice} \t " \
53 "remove instructions that cannot appear on a trace from entry point to a " \
54 "property\n"
55#define HELP_REACHABILITY_SLICER \
56 " {y--reachability-slice-fb} \t " \
57 "remove instructions that cannot appear on a trace from entry point " \
58 "through a property\n"
59
60#endif // CPROVER_GOTO_INSTRUMENT_REACHABILITY_SLICER_H
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Definition ai.h:562
void function_path_reachability_slicer(goto_modelt &goto_model, const std::list< std::string > &functions_list, message_handlert &)
Perform reachability slicing on goto_model for selected functions.
void reachability_slicer(goto_modelt &, message_handlert &)
Perform reachability slicing on goto_model, with respect to criterion comprising all properties.