CBMC
all_properties_verifier.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Goto Verifier for Verifying all Properties
4 
5 Author: Daniel Kroening, Peter Schrammel
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_GOTO_CHECKER_ALL_PROPERTIES_VERIFIER_H
13 #define CPROVER_GOTO_CHECKER_ALL_PROPERTIES_VERIFIER_H
14 
15 #include "goto_verifier.h"
16 
18 #include "properties.h"
19 #include "report_util.h"
20 
21 template <class incremental_goto_checkerT>
23 {
24 public:
26  const optionst &options,
32  {
34  }
35 
36  resultt operator()() override
37  {
38  while(incremental_goto_checker(properties).progress !=
40  {
41  // loop until we are done
42  ++iterations;
43  }
45  }
46 
47  void report() override
48  {
51  }
52 
53 protected:
55  incremental_goto_checkerT incremental_goto_checker;
56  std::size_t iterations = 1;
57 };
58 
59 #endif // CPROVER_GOTO_CHECKER_ALL_PROPERTIES_VERIFIER_H
all_properties_verifiert::operator()
resultt operator()() override
Check whether all properties hold.
Definition: all_properties_verifier.h:36
ui_message_handlert
Definition: ui_message.h:21
determine_result
resultt determine_result(const propertiest &properties)
Determines the overall result corresponding from the given properties That is PASS if all properties ...
Definition: properties.cpp:264
all_properties_verifiert::iterations
std::size_t iterations
Definition: all_properties_verifier.h:56
resultt
resultt
The result of goto verifying.
Definition: properties.h:44
goto_verifiert
An implementation of goto_verifiert checks all properties in a goto model.
Definition: goto_verifier.h:26
all_properties_verifiert::incremental_goto_checker
incremental_goto_checkerT incremental_goto_checker
Definition: all_properties_verifier.h:55
all_properties_verifiert::report
void report() override
Report results.
Definition: all_properties_verifier.h:47
optionst
Definition: options.h:22
goto_verifier.h
all_properties_verifiert
Definition: all_properties_verifier.h:22
all_properties_verifiert::goto_model
abstract_goto_modelt & goto_model
Definition: all_properties_verifier.h:54
output_properties
void output_properties(const propertiest &properties, std::size_t iterations, ui_message_handlert &ui_message_handler)
Definition: report_util.cpp:308
incremental_goto_checker.h
initialize_properties
propertiest initialize_properties(const abstract_goto_modelt &goto_model)
Returns the properties in the goto model.
Definition: properties.cpp:70
output_overall_result
void output_overall_result(resultt result, ui_message_handlert &ui_message_handler)
Definition: report_util.cpp:677
goto_verifiert::options
const optionst & options
Definition: goto_verifier.h:53
incremental_goto_checkert::resultt::progresst::DONE
@ DONE
The goto checker has returned all results for the given set of properties.
report_util.h
all_properties_verifiert::all_properties_verifiert
all_properties_verifiert(const optionst &options, ui_message_handlert &ui_message_handler, abstract_goto_modelt &goto_model)
Definition: all_properties_verifier.h:25
abstract_goto_modelt
Abstract interface to eager or lazy GOTO models.
Definition: abstract_goto_model.h:20
properties.h
goto_verifiert::ui_message_handler
ui_message_handlert & ui_message_handler
Definition: goto_verifier.h:54
goto_verifiert::properties
propertiest properties
Definition: goto_verifier.h:56