mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Solve UNSAT queries again with proof production enabled
This commit is contained in:
parent
c90b48af02
commit
2195b5e57a
@ -194,7 +194,16 @@ std::string CHCSmtLib2Interface::querySolver(std::string const& _input)
|
||||
}();
|
||||
auto result = m_smtCallback(ReadCallback::kindString(ReadCallback::Kind::SMTQuery) + " " + solverBinary, _input);
|
||||
if (result.success)
|
||||
{
|
||||
if (m_enabledSolvers.z3 and boost::starts_with(result.responseOrErrorMessage, "unsat")) {
|
||||
solverBinary += " fp.xform.slice=false fp.xform.inline_linear=false fp.xform.inline_eager=false";
|
||||
string extendedQuery = "(set-option :produce-proofs true)" + _input + "\n(get-proof)";
|
||||
auto secondResult = m_smtCallback(ReadCallback::kindString(ReadCallback::Kind::SMTQuery) + " " + solverBinary, extendedQuery);
|
||||
if (secondResult.success)
|
||||
return secondResult.responseOrErrorMessage;
|
||||
}
|
||||
return result.responseOrErrorMessage;
|
||||
}
|
||||
|
||||
m_unhandledQueries.push_back(_input);
|
||||
return "unknown\n";
|
||||
|
Loading…
Reference in New Issue
Block a user