Skip to content

Commit b75ab07

Browse files
author
Thomas Kiley
committed
Print incremental-status when doing incremental solving
It is not possible to conclude successful verification before the unwinding has finished, so this prints inconclusive until the analysis is complete. However, if one property has been falsified, then even though the analysis can continue to check other properties, the verification will certainly fail.
1 parent 9b22ea9 commit b75ab07

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

src/goto-checker/single_loop_incremental_symex_checker.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,23 @@ single_loop_incremental_symex_checkert::single_loop_incremental_symex_checkert(
4747
prop_conv_solver->set_all_frozen();
4848
}
4949

50+
void output_incremental_status(
51+
const propertiest &properties,
52+
messaget &message_hander)
53+
{
54+
const auto any_failures = std::any_of(
55+
properties.begin(),
56+
properties.end(),
57+
[](const std::pair<irep_idt, property_infot> &property) {
58+
return property.second.status == property_statust::FAIL;
59+
});
60+
std::string status = any_failures ? "FAILURE" : "INCONCLUSIVE";
61+
structured_datat incremental_status{
62+
{{labelt({"incremental", "status"}),
63+
structured_data_entryt::data_node(json_stringt(status))}}};
64+
message_hander.statistics() << incremental_status;
65+
}
66+
5067
incremental_goto_checkert::resultt single_loop_incremental_symex_checkert::
5168
operator()(propertiest &properties)
5269
{
@@ -64,6 +81,8 @@ operator()(propertiest &properties)
6481
update_properties_status_from_symex_target_equation(
6582
properties, result.updated_properties, equation);
6683

84+
output_incremental_status(properties, log);
85+
6786
initial_equation_generated = true;
6887
}
6988

@@ -162,6 +181,8 @@ operator()(propertiest &properties)
162181
properties, result.updated_properties, equation);
163182

164183
current_equation_converted = false;
184+
185+
output_incremental_status(properties, log);
165186
}
166187

167188
return result;

0 commit comments

Comments
 (0)