CBMC
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
stop_on_fail_verifier_with_fault_localization.h
Go to the documentation of this file.
1/*******************************************************************\
2
3Module: Goto Verifier for stopping at the first failing property
4 and localizing the fault
5
6Author: Daniel Kroening, Peter Schrammel
7
8\*******************************************************************/
9
13
14#ifndef CPROVER_GOTO_CHECKER_STOP_ON_FAIL_VERIFIER_WITH_FAULT_LOCALIZATION_H
15#define CPROVER_GOTO_CHECKER_STOP_ON_FAIL_VERIFIER_WITH_FAULT_LOCALIZATION_H
16
17#include "bmc_util.h"
19#include "goto_verifier.h"
20
24template <class incremental_goto_checkerT>
26{
27public:
38
44
45 void report() override
46 {
48 {
49 case resultt::PASS:
51 break;
52
53 case resultt::FAIL:
54 {
56 incremental_goto_checker.build_shortest_trace();
58 incremental_goto_checker.localize_fault(
59 goto_trace.get_last_step().property_id);
60
63 incremental_goto_checker.get_namespace(),
67
69 break;
70 }
71
74 break;
75
76 case resultt::ERROR:
78 break;
79 }
80 }
81
82protected:
85};
86
87#endif // CPROVER_GOTO_CHECKER_STOP_ON_FAIL_VERIFIER_WITH_FAULT_LOCALIZATION_H
Bounded Model Checking Utilities.
Abstract interface to eager or lazy GOTO models.
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Definition ai.h:562
Trace of a GOTO program.
Definition goto_trace.h:177
An implementation of goto_verifiert checks all properties in a goto model.
propertiest properties
const optionst & options
ui_message_handlert & ui_message_handler
Stops when the first failing property is found and localizes the fault Requires an incremental goto c...
resultt operator()() override
Check whether all properties hold.
stop_on_fail_verifier_with_fault_localizationt(const optionst &options, ui_message_handlert &ui_message_handler, abstract_goto_modelt &goto_model)
Interface for Goto Checkers to provide Fault Localization.
Goto Verifier Interface.
resultt determine_result(const propertiest &properties)
Determines the overall result corresponding from the given properties That is PASS if all properties ...
propertiest initialize_properties(const abstract_goto_modelt &goto_model)
Returns the properties in the goto model.
resultt
The result of goto verifying.
Definition properties.h:45
@ UNKNOWN
No property was violated, neither was there an error.
@ PASS
No properties were violated.
@ ERROR
An error occurred during goto checking.
@ FAIL
Some properties were violated.
void report_success(ui_message_handlert &ui_message_handler)
void report_inconclusive(ui_message_handlert &ui_message_handler)
void output_error_trace_with_fault_localization(const goto_tracet &goto_trace, const namespacet &ns, const trace_optionst &trace_options, const fault_location_infot &fault_location_info, ui_message_handlert &ui_message_handler)
void report_error(ui_message_handlert &ui_message_handler)
void report_failure(ui_message_handlert &ui_message_handler)
Options for printing the trace using show_goto_trace.
Definition goto_trace.h:221