CBMC
reachability_slicer.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Slicing
4 
5 Author: 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 
18 class goto_modelt;
19 class message_handlert;
20 
22 
24  goto_modelt &,
25  const std::list<std::string> &properties,
27 
29  goto_modelt &goto_model,
30  const std::list<std::string> &functions_list,
32 
34  goto_modelt &,
35  const bool include_forward_reachability,
37 
39  goto_modelt &,
40  const std::list<std::string> &properties,
41  const bool include_forward_reachability,
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
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.