Report safe properties in BMC and CHC

This commit is contained in:
Leo Alt
2023-03-09 14:59:32 +01:00
parent d30ec3548f
commit 21c0f78650
971 changed files with 2550 additions and 664 deletions
+9 -1
View File
@@ -445,7 +445,7 @@ std::optional<Json::Value> checkSettingsKeys(Json::Value const& _input)
std::optional<Json::Value> checkModelCheckerSettingsKeys(Json::Value const& _input)
{
static set<string> keys{"contracts", "divModNoSlacks", "engine", "extCalls", "invariants", "showUnproved", "solvers", "targets", "timeout"};
static set<string> keys{"contracts", "divModNoSlacks", "engine", "extCalls", "invariants", "showProvedSafe", "showUnproved", "solvers", "targets", "timeout"};
return checkKeys(_input, keys, "modelChecker");
}
@@ -1047,6 +1047,14 @@ std::variant<StandardCompiler::InputsAndSettings, Json::Value> StandardCompiler:
ret.modelCheckerSettings.invariants = invariants;
}
if (modelCheckerSettings.isMember("showProvedSafe"))
{
auto const& showProvedSafe = modelCheckerSettings["showProvedSafe"];
if (!showProvedSafe.isBool())
return formatFatalError(Error::Type::JSONError, "settings.modelChecker.showProvedSafe must be a Boolean value.");
ret.modelCheckerSettings.showProvedSafe = showProvedSafe.asBool();
}
if (modelCheckerSettings.isMember("showUnproved"))
{
auto const& showUnproved = modelCheckerSettings["showUnproved"];