CBMC
stop_on_fail_verifier.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Goto Verifier for stopping at the first failing property
4 
5 Author: Daniel Kroening, Peter Schrammel
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_GOTO_CHECKER_STOP_ON_FAIL_VERIFIER_H
13 #define CPROVER_GOTO_CHECKER_STOP_ON_FAIL_VERIFIER_H
14 
15 #include "bmc_util.h"
16 #include "goto_verifier.h"
17 
21 template <class incremental_goto_checkerT>
23 {
24 public:
26  const optionst &options,
32  {
34  }
35 
36  resultt operator()() override
37  {
40  }
41 
42  void report() override
43  {
45  {
46  case resultt::PASS:
48  incremental_goto_checker.output_proof();
49  break;
50 
51  case resultt::FAIL:
52  {
54  goto_tracet goto_trace = incremental_goto_checker.build_shortest_trace();
56  goto_trace,
57  incremental_goto_checker.get_namespace(),
61  incremental_goto_checker.output_error_witness(goto_trace);
62  break;
63  }
64 
65  case resultt::UNKNOWN:
67  break;
68 
69  case resultt::ERROR:
71  break;
72  }
73  }
74 
75 protected:
77  incremental_goto_checkerT incremental_goto_checker;
78 };
79 
80 #endif // CPROVER_GOTO_CHECKER_STOP_ON_FAIL_VERIFIER_H
message_building_error_trace
void message_building_error_trace(messaget &log)
Outputs a message that an error trace is being built.
Definition: bmc_util.cpp: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
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
stop_on_fail_verifiert
Stops when the first failing property is found.
Definition: stop_on_fail_verifier.h:22
optionst
Definition: options.h:22
goto_verifier.h
report_inconclusive
void report_inconclusive(ui_message_handlert &ui_message_handler)
Definition: report_util.cpp:88
resultt::PASS
@ PASS
No properties were violated.
resultt::UNKNOWN
@ UNKNOWN
No property was violated, neither was there an error.
resultt::FAIL
@ FAIL
Some properties were violated.
stop_on_fail_verifiert::incremental_goto_checker
incremental_goto_checkerT incremental_goto_checker
Definition: stop_on_fail_verifier.h:77
initialize_properties
propertiest initialize_properties(const abstract_goto_modelt &goto_model)
Returns the properties in the goto model.
Definition: properties.cpp:70
bmc_util.h
report_error
void report_error(ui_message_handlert &ui_message_handler)
Definition: report_util.cpp:116
report_failure
void report_failure(ui_message_handlert &ui_message_handler)
Definition: report_util.cpp:60
stop_on_fail_verifiert::report
void report() override
Report results.
Definition: stop_on_fail_verifier.h:42
goto_verifiert::options
const optionst & options
Definition: goto_verifier.h:53
resultt::ERROR
@ ERROR
An error occurred during goto checking.
report_success
void report_success(ui_message_handlert &ui_message_handler)
Definition: report_util.cpp:32
trace_optionst
Options for printing the trace using show_goto_trace.
Definition: goto_trace.h:218
stop_on_fail_verifiert::goto_model
abstract_goto_modelt & goto_model
Definition: stop_on_fail_verifier.h:76
stop_on_fail_verifiert::operator()
resultt operator()() override
Check whether all properties hold.
Definition: stop_on_fail_verifier.h:36
output_error_trace
void output_error_trace(const goto_tracet &goto_trace, const namespacet &ns, const trace_optionst &trace_options, ui_message_handlert &ui_message_handler)
Definition: bmc_util.cpp:65
goto_tracet
Trace of a GOTO program.
Definition: goto_trace.h:174
abstract_goto_modelt
Abstract interface to eager or lazy GOTO models.
Definition: abstract_goto_model.h:20
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
goto_verifiert::log
messaget log
Definition: goto_verifier.h:55
stop_on_fail_verifiert::stop_on_fail_verifiert
stop_on_fail_verifiert(const optionst &options, ui_message_handlert &ui_message_handler, abstract_goto_modelt &goto_model)
Definition: stop_on_fail_verifier.h:25