@@ -37,22 +37,37 @@ class incremental_goto_checkert
37
37
incremental_goto_checkert (const incremental_goto_checkert &) = delete ;
38
38
virtual ~incremental_goto_checkert () = default ;
39
39
40
- enum class resultt
40
+ struct resultt
41
41
{
42
- // / The goto checker may be able to find another FAILed property
43
- // / if operator() is called again.
44
- FOUND_FAIL,
45
- // / The goto checker has returned all results for the given set
46
- // / of properties.
47
- DONE
42
+ enum class progresst
43
+ {
44
+ // / The goto checker may be able to find another FAILed property
45
+ // / if operator() is called again.
46
+ FOUND_FAIL,
47
+ // / The goto checker has returned all results for the given set
48
+ // / of properties.
49
+ DONE
50
+ };
51
+
52
+ progresst progress = progresst::DONE;
53
+
54
+ // / Changed properties since the last call to
55
+ // / `incremental_goto_checkert::operator()`
56
+ std::vector<irep_idt> updated_properties;
57
+
58
+ resultt () = default ;
59
+ resultt (
60
+ progresst progress,
61
+ const std::vector<irep_idt> &updated_properties);
48
62
};
49
63
50
64
// / Check whether the given properties with status NOT_CHECKED, UNKNOWN or
51
65
// / properties newly discovered by `goto_checkert` hold.
52
66
// / \param [out] properties: Properties updated to whether their status
53
67
// / have been determined. Newly discovered properties are added.
54
68
// / \return whether the goto checker found a violated property (FOUND_FAIL) or
55
- // / whether it is DONE with the given properties.
69
+ // / whether it is DONE with the given properties, together with
70
+ // / the properties whose status changed since the last call to operator().
56
71
// / After returning DONE, another call to operator() with the same
57
72
// / properties will return DONE and leave the properties' status unchanged.
58
73
// / If there is a property with status FAIL then its counterexample
@@ -64,15 +79,6 @@ class incremental_goto_checkert
64
79
// / failing properties any more.
65
80
virtual resultt operator ()(propertiest &properties) = 0;
66
81
67
- // / Builds and returns the counterexample
68
- virtual goto_tracet build_error_trace () const = 0;
69
-
70
- // Outputs an error witness in GraphML format (see `graphml_witnesst`)
71
- virtual void output_error_witness (const goto_tracet &) = 0;
72
-
73
- // Outputs a proof in GraphML format (see `graphml_witnesst`)
74
- virtual void output_proof () = 0;
75
-
76
82
protected:
77
83
incremental_goto_checkert (const optionst &, ui_message_handlert &);
78
84
0 commit comments