mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #12969 from ethereum/smt_eld
[SMTChecker] Add Eldarica as a Horn solver
This commit is contained in:
commit
1dd05e2978
@ -13,6 +13,8 @@ Compiler Features:
|
|||||||
* Yul Optimizer: Allow replacing the previously hard-coded cleanup sequence by specifying custom steps after a colon delimiter (``:``) in the sequence string.
|
* Yul Optimizer: Allow replacing the previously hard-coded cleanup sequence by specifying custom steps after a colon delimiter (``:``) in the sequence string.
|
||||||
* Language Server: Add basic document hover support.
|
* Language Server: Add basic document hover support.
|
||||||
* Optimizer: Added optimization rule ``and(shl(X, Y), shl(X, Z)) => shl(X, and(Y, Z))``.
|
* Optimizer: Added optimization rule ``and(shl(X, Y), shl(X, Z)) => shl(X, and(Y, Z))``.
|
||||||
|
* SMTChecker: Support Eldarica as a Horn solver for the CHC engine when using the CLI option ``--model-checker-solvers eld``. The binary `eld` must be available in the system.
|
||||||
|
* SMTChecker: Make ``z3`` the default solver for the BMC and CHC engines instead of all solvers.
|
||||||
|
|
||||||
|
|
||||||
Bugfixes:
|
Bugfixes:
|
||||||
|
@ -614,19 +614,19 @@ which is primarily an SMT solver and makes `Spacer
|
|||||||
<https://github.com/uuverifiers/eldarica>`_ which does both.
|
<https://github.com/uuverifiers/eldarica>`_ which does both.
|
||||||
|
|
||||||
The user can choose which solvers should be used, if available, via the CLI
|
The user can choose which solvers should be used, if available, via the CLI
|
||||||
option ``--model-checker-solvers {all,cvc4,smtlib2,z3}`` or the JSON option
|
option ``--model-checker-solvers {all,cvc4,eld,smtlib2,z3}`` or the JSON option
|
||||||
``settings.modelChecker.solvers=[smtlib2,z3]``, where:
|
``settings.modelChecker.solvers=[smtlib2,z3]``, where:
|
||||||
|
|
||||||
- ``cvc4`` is only available if the ``solc`` binary is compiled with it. Only BMC uses ``cvc4``.
|
- ``cvc4`` is only available if the ``solc`` binary is compiled with it. Only BMC uses ``cvc4``.
|
||||||
|
- ``eld`` is used via its binary which must be installed in the system. Only CHC uses ``eld``, and only if ``z3`` is not enabled.
|
||||||
- ``smtlib2`` outputs SMT/Horn queries in the `smtlib2 <http://smtlib.cs.uiowa.edu/>`_ format.
|
- ``smtlib2`` outputs SMT/Horn queries in the `smtlib2 <http://smtlib.cs.uiowa.edu/>`_ format.
|
||||||
These can be used together with the compiler's `callback mechanism <https://github.com/ethereum/solc-js>`_ so that
|
These can be used together with the compiler's `callback mechanism <https://github.com/ethereum/solc-js>`_ so that
|
||||||
any solver binary from the system can be employed to synchronously return the results of the queries to the compiler.
|
any solver binary from the system can be employed to synchronously return the results of the queries to the compiler.
|
||||||
This is currently the only way to use Eldarica, for example, since it does not have a C++ API.
|
|
||||||
This can be used by both BMC and CHC depending on which solvers are called.
|
This can be used by both BMC and CHC depending on which solvers are called.
|
||||||
- ``z3`` is available
|
- ``z3`` is available
|
||||||
|
|
||||||
- if ``solc`` is compiled with it;
|
- if ``solc`` is compiled with it;
|
||||||
- if a dynamic ``z3`` library of version 4.8.x is installed in a Linux system (from Solidity 0.7.6);
|
- if a dynamic ``z3`` library of version >=4.8.x is installed in a Linux system (from Solidity 0.7.6);
|
||||||
- statically in ``soljson.js`` (from Solidity 0.6.9), that is, the Javascript binary of the compiler.
|
- statically in ``soljson.js`` (from Solidity 0.6.9), that is, the Javascript binary of the compiler.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
@ -40,12 +40,14 @@ using namespace solidity::smtutil;
|
|||||||
CHCSmtLib2Interface::CHCSmtLib2Interface(
|
CHCSmtLib2Interface::CHCSmtLib2Interface(
|
||||||
map<h256, string> const& _queryResponses,
|
map<h256, string> const& _queryResponses,
|
||||||
ReadCallback::Callback _smtCallback,
|
ReadCallback::Callback _smtCallback,
|
||||||
|
SMTSolverChoice _enabledSolvers,
|
||||||
optional<unsigned> _queryTimeout
|
optional<unsigned> _queryTimeout
|
||||||
):
|
):
|
||||||
CHCSolverInterface(_queryTimeout),
|
CHCSolverInterface(_queryTimeout),
|
||||||
m_smtlib2(make_unique<SMTLib2Interface>(_queryResponses, _smtCallback, m_queryTimeout)),
|
m_smtlib2(make_unique<SMTLib2Interface>(_queryResponses, _smtCallback, m_queryTimeout)),
|
||||||
m_queryResponses(std::move(_queryResponses)),
|
m_queryResponses(std::move(_queryResponses)),
|
||||||
m_smtCallback(_smtCallback)
|
m_smtCallback(_smtCallback),
|
||||||
|
m_enabledSolvers(_enabledSolvers)
|
||||||
{
|
{
|
||||||
reset();
|
reset();
|
||||||
}
|
}
|
||||||
@ -203,12 +205,15 @@ string CHCSmtLib2Interface::querySolver(string const& _input)
|
|||||||
util::h256 inputHash = util::keccak256(_input);
|
util::h256 inputHash = util::keccak256(_input);
|
||||||
if (m_queryResponses.count(inputHash))
|
if (m_queryResponses.count(inputHash))
|
||||||
return m_queryResponses.at(inputHash);
|
return m_queryResponses.at(inputHash);
|
||||||
|
|
||||||
|
smtAssert(m_enabledSolvers.smtlib2 || m_enabledSolvers.eld);
|
||||||
if (m_smtCallback)
|
if (m_smtCallback)
|
||||||
{
|
{
|
||||||
auto result = m_smtCallback(ReadCallback::kindString(ReadCallback::Kind::SMTQuery), _input);
|
auto result = m_smtCallback(ReadCallback::kindString(ReadCallback::Kind::SMTQuery), _input);
|
||||||
if (result.success)
|
if (result.success)
|
||||||
return result.responseOrErrorMessage;
|
return result.responseOrErrorMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_unhandledQueries.push_back(_input);
|
m_unhandledQueries.push_back(_input);
|
||||||
return "unknown\n";
|
return "unknown\n";
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ public:
|
|||||||
explicit CHCSmtLib2Interface(
|
explicit CHCSmtLib2Interface(
|
||||||
std::map<util::h256, std::string> const& _queryResponses = {},
|
std::map<util::h256, std::string> const& _queryResponses = {},
|
||||||
frontend::ReadCallback::Callback _smtCallback = {},
|
frontend::ReadCallback::Callback _smtCallback = {},
|
||||||
|
SMTSolverChoice _enabledSolvers = SMTSolverChoice::All(),
|
||||||
std::optional<unsigned> _queryTimeout = {}
|
std::optional<unsigned> _queryTimeout = {}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -78,6 +79,7 @@ private:
|
|||||||
std::vector<std::string> m_unhandledQueries;
|
std::vector<std::string> m_unhandledQueries;
|
||||||
|
|
||||||
frontend::ReadCallback::Callback m_smtCallback;
|
frontend::ReadCallback::Callback m_smtCallback;
|
||||||
|
SMTSolverChoice m_enabledSolvers;
|
||||||
|
|
||||||
std::map<Sort const*, std::string> m_sortNames;
|
std::map<Sort const*, std::string> m_sortNames;
|
||||||
};
|
};
|
||||||
|
@ -42,28 +42,23 @@ namespace solidity::smtutil
|
|||||||
struct SMTSolverChoice
|
struct SMTSolverChoice
|
||||||
{
|
{
|
||||||
bool cvc4 = false;
|
bool cvc4 = false;
|
||||||
|
bool eld = false;
|
||||||
bool smtlib2 = false;
|
bool smtlib2 = false;
|
||||||
bool z3 = false;
|
bool z3 = false;
|
||||||
|
|
||||||
static constexpr SMTSolverChoice All() noexcept { return {true, true, true}; }
|
static constexpr SMTSolverChoice All() noexcept { return {true, true, true, true}; }
|
||||||
static constexpr SMTSolverChoice CVC4() noexcept { return {true, false, false}; }
|
static constexpr SMTSolverChoice CVC4() noexcept { return {true, false, false, false}; }
|
||||||
static constexpr SMTSolverChoice SMTLIB2() noexcept { return {false, true, false}; }
|
static constexpr SMTSolverChoice ELD() noexcept { return {false, true, false, false}; }
|
||||||
static constexpr SMTSolverChoice Z3() noexcept { return {false, false, true}; }
|
static constexpr SMTSolverChoice SMTLIB2() noexcept { return {false, false, true, false}; }
|
||||||
static constexpr SMTSolverChoice None() noexcept { return {false, false, false}; }
|
static constexpr SMTSolverChoice Z3() noexcept { return {false, false, false, true}; }
|
||||||
|
static constexpr SMTSolverChoice None() noexcept { return {false, false, false, false}; }
|
||||||
|
|
||||||
static std::optional<SMTSolverChoice> fromString(std::string const& _solvers)
|
static std::optional<SMTSolverChoice> fromString(std::string const& _solvers)
|
||||||
{
|
{
|
||||||
SMTSolverChoice solvers;
|
SMTSolverChoice solvers;
|
||||||
if (_solvers == "all")
|
for (auto&& s: _solvers | ranges::views::split(',') | ranges::to<std::vector<std::string>>())
|
||||||
{
|
if (!solvers.setSolver(s))
|
||||||
smtAssert(solvers.setSolver("cvc4"), "");
|
return {};
|
||||||
smtAssert(solvers.setSolver("smtlib2"), "");
|
|
||||||
smtAssert(solvers.setSolver("z3"), "");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
for (auto&& s: _solvers | ranges::views::split(',') | ranges::to<std::vector<std::string>>())
|
|
||||||
if (!solvers.setSolver(s))
|
|
||||||
return {};
|
|
||||||
|
|
||||||
return solvers;
|
return solvers;
|
||||||
}
|
}
|
||||||
@ -71,6 +66,7 @@ struct SMTSolverChoice
|
|||||||
SMTSolverChoice& operator&=(SMTSolverChoice const& _other)
|
SMTSolverChoice& operator&=(SMTSolverChoice const& _other)
|
||||||
{
|
{
|
||||||
cvc4 &= _other.cvc4;
|
cvc4 &= _other.cvc4;
|
||||||
|
eld &= _other.eld;
|
||||||
smtlib2 &= _other.smtlib2;
|
smtlib2 &= _other.smtlib2;
|
||||||
z3 &= _other.z3;
|
z3 &= _other.z3;
|
||||||
return *this;
|
return *this;
|
||||||
@ -87,17 +83,20 @@ struct SMTSolverChoice
|
|||||||
bool operator==(SMTSolverChoice const& _other) const noexcept
|
bool operator==(SMTSolverChoice const& _other) const noexcept
|
||||||
{
|
{
|
||||||
return cvc4 == _other.cvc4 &&
|
return cvc4 == _other.cvc4 &&
|
||||||
|
eld == _other.eld &&
|
||||||
smtlib2 == _other.smtlib2 &&
|
smtlib2 == _other.smtlib2 &&
|
||||||
z3 == _other.z3;
|
z3 == _other.z3;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool setSolver(std::string const& _solver)
|
bool setSolver(std::string const& _solver)
|
||||||
{
|
{
|
||||||
static std::set<std::string> const solvers{"cvc4", "smtlib2", "z3"};
|
static std::set<std::string> const solvers{"cvc4", "eld", "smtlib2", "z3"};
|
||||||
if (!solvers.count(_solver))
|
if (!solvers.count(_solver))
|
||||||
return false;
|
return false;
|
||||||
if (_solver == "cvc4")
|
if (_solver == "cvc4")
|
||||||
cvc4 = true;
|
cvc4 = true;
|
||||||
|
if (_solver == "eld")
|
||||||
|
eld = true;
|
||||||
else if (_solver == "smtlib2")
|
else if (_solver == "smtlib2")
|
||||||
smtlib2 = true;
|
smtlib2 = true;
|
||||||
else if (_solver == "z3")
|
else if (_solver == "z3")
|
||||||
@ -106,8 +105,8 @@ struct SMTSolverChoice
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool none() const noexcept { return !some(); }
|
bool none() const noexcept { return !some(); }
|
||||||
bool some() const noexcept { return cvc4 || smtlib2 || z3; }
|
bool some() const noexcept { return cvc4 || eld || smtlib2 || z3; }
|
||||||
bool all() const noexcept { return cvc4 && smtlib2 && z3; }
|
bool all() const noexcept { return cvc4 && eld && smtlib2 && z3; }
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class CheckResult
|
enum class CheckResult
|
||||||
|
@ -149,10 +149,13 @@ set(sources
|
|||||||
interface/Natspec.h
|
interface/Natspec.h
|
||||||
interface/OptimiserSettings.h
|
interface/OptimiserSettings.h
|
||||||
interface/ReadFile.h
|
interface/ReadFile.h
|
||||||
|
interface/SMTSolverCommand.cpp
|
||||||
|
interface/SMTSolverCommand.h
|
||||||
interface/StandardCompiler.cpp
|
interface/StandardCompiler.cpp
|
||||||
interface/StandardCompiler.h
|
interface/StandardCompiler.h
|
||||||
interface/StorageLayout.cpp
|
interface/StorageLayout.cpp
|
||||||
interface/StorageLayout.h
|
interface/StorageLayout.h
|
||||||
|
interface/UniversalCallback.h
|
||||||
interface/Version.cpp
|
interface/Version.cpp
|
||||||
interface/Version.h
|
interface/Version.h
|
||||||
lsp/DocumentHoverHandler.cpp
|
lsp/DocumentHoverHandler.cpp
|
||||||
@ -181,5 +184,5 @@ set(sources
|
|||||||
)
|
)
|
||||||
|
|
||||||
add_library(solidity ${sources})
|
add_library(solidity ${sources})
|
||||||
target_link_libraries(solidity PUBLIC yul evmasm langutil smtutil solutil Boost::boost fmt::fmt-header-only)
|
target_link_libraries(solidity PUBLIC yul evmasm langutil smtutil solutil Boost::boost fmt::fmt-header-only Threads::Threads)
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
|
|
||||||
#include <libsolidity/formal/BMC.h>
|
#include <libsolidity/formal/BMC.h>
|
||||||
|
|
||||||
|
#include <libsolidity/formal/ModelChecker.h>
|
||||||
#include <libsolidity/formal/SymbolicTypes.h>
|
#include <libsolidity/formal/SymbolicTypes.h>
|
||||||
|
|
||||||
#include <libsmtutil/SMTPortfolio.h>
|
#include <libsmtutil/SMTPortfolio.h>
|
||||||
@ -40,7 +41,7 @@ BMC::BMC(
|
|||||||
UniqueErrorReporter& _errorReporter,
|
UniqueErrorReporter& _errorReporter,
|
||||||
map<h256, string> const& _smtlib2Responses,
|
map<h256, string> const& _smtlib2Responses,
|
||||||
ReadCallback::Callback const& _smtCallback,
|
ReadCallback::Callback const& _smtCallback,
|
||||||
ModelCheckerSettings const& _settings,
|
ModelCheckerSettings _settings,
|
||||||
CharStreamProvider const& _charStreamProvider
|
CharStreamProvider const& _charStreamProvider
|
||||||
):
|
):
|
||||||
SMTEncoder(_context, _settings, _errorReporter, _charStreamProvider),
|
SMTEncoder(_context, _settings, _errorReporter, _charStreamProvider),
|
||||||
@ -61,15 +62,14 @@ BMC::BMC(
|
|||||||
|
|
||||||
void BMC::analyze(SourceUnit const& _source, map<ASTNode const*, set<VerificationTargetType>, smt::EncodingContext::IdCompare> _solvedTargets)
|
void BMC::analyze(SourceUnit const& _source, map<ASTNode const*, set<VerificationTargetType>, smt::EncodingContext::IdCompare> _solvedTargets)
|
||||||
{
|
{
|
||||||
if (m_interface->solvers() == 0)
|
// At this point every enabled solver is available.
|
||||||
|
if (!m_settings.solvers.cvc4 && !m_settings.solvers.smtlib2 && !m_settings.solvers.z3)
|
||||||
{
|
{
|
||||||
m_errorReporter.warning(
|
m_errorReporter.warning(
|
||||||
7710_error,
|
7710_error,
|
||||||
SourceLocation(),
|
SourceLocation(),
|
||||||
"BMC analysis was not possible since no SMT solver was found and enabled."
|
"BMC analysis was not possible since no SMT solver was found and enabled."
|
||||||
#ifdef HAVE_Z3_DLOPEN
|
" The accepted solvers for BMC are cvc4 and z3."
|
||||||
" Install libz3.so." + to_string(Z3_MAJOR_VERSION) + "." + to_string(Z3_MINOR_VERSION) + " to enable Z3."
|
|
||||||
#endif
|
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ public:
|
|||||||
langutil::UniqueErrorReporter& _errorReporter,
|
langutil::UniqueErrorReporter& _errorReporter,
|
||||||
std::map<h256, std::string> const& _smtlib2Responses,
|
std::map<h256, std::string> const& _smtlib2Responses,
|
||||||
ReadCallback::Callback const& _smtCallback,
|
ReadCallback::Callback const& _smtCallback,
|
||||||
ModelCheckerSettings const& _settings,
|
ModelCheckerSettings _settings,
|
||||||
langutil::CharStreamProvider const& _charStreamProvider
|
langutil::CharStreamProvider const& _charStreamProvider
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
#include <libsolidity/formal/CHC.h>
|
#include <libsolidity/formal/CHC.h>
|
||||||
|
|
||||||
|
#include <libsolidity/formal/ModelChecker.h>
|
||||||
|
|
||||||
#ifdef HAVE_Z3
|
#ifdef HAVE_Z3
|
||||||
#include <libsmtutil/Z3CHCInterface.h>
|
#include <libsmtutil/Z3CHCInterface.h>
|
||||||
#endif
|
#endif
|
||||||
@ -62,7 +64,7 @@ CHC::CHC(
|
|||||||
UniqueErrorReporter& _errorReporter,
|
UniqueErrorReporter& _errorReporter,
|
||||||
map<util::h256, string> const& _smtlib2Responses,
|
map<util::h256, string> const& _smtlib2Responses,
|
||||||
ReadCallback::Callback const& _smtCallback,
|
ReadCallback::Callback const& _smtCallback,
|
||||||
ModelCheckerSettings const& _settings,
|
ModelCheckerSettings _settings,
|
||||||
CharStreamProvider const& _charStreamProvider
|
CharStreamProvider const& _charStreamProvider
|
||||||
):
|
):
|
||||||
SMTEncoder(_context, _settings, _errorReporter, _charStreamProvider),
|
SMTEncoder(_context, _settings, _errorReporter, _charStreamProvider),
|
||||||
@ -73,32 +75,30 @@ CHC::CHC(
|
|||||||
|
|
||||||
void CHC::analyze(SourceUnit const& _source)
|
void CHC::analyze(SourceUnit const& _source)
|
||||||
{
|
{
|
||||||
if (!shouldAnalyze(_source))
|
// At this point every enabled solver is available.
|
||||||
return;
|
if (!m_settings.solvers.eld && !m_settings.solvers.smtlib2 && !m_settings.solvers.z3)
|
||||||
|
|
||||||
bool usesZ3 = m_settings.solvers.z3;
|
|
||||||
#ifdef HAVE_Z3_DLOPEN
|
|
||||||
if (m_settings.solvers.z3 && !Z3Interface::available())
|
|
||||||
{
|
|
||||||
usesZ3 = false;
|
|
||||||
m_errorReporter.warning(
|
|
||||||
8158_error,
|
|
||||||
SourceLocation(),
|
|
||||||
"z3 was selected as a Horn solver for CHC analysis but libz3.so." + to_string(Z3_MAJOR_VERSION) + "." + to_string(Z3_MINOR_VERSION) + " was not found."
|
|
||||||
);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!usesZ3 && !m_settings.solvers.smtlib2)
|
|
||||||
{
|
{
|
||||||
m_errorReporter.warning(
|
m_errorReporter.warning(
|
||||||
7649_error,
|
7649_error,
|
||||||
SourceLocation(),
|
SourceLocation(),
|
||||||
"CHC analysis was not possible since no Horn solver was found and enabled."
|
"CHC analysis was not possible since no Horn solver was found and enabled."
|
||||||
|
" The accepted solvers for CHC are Eldarica and z3."
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_settings.solvers.eld && m_settings.solvers.z3)
|
||||||
|
m_errorReporter.warning(
|
||||||
|
5798_error,
|
||||||
|
SourceLocation(),
|
||||||
|
"Multiple Horn solvers were selected for CHC."
|
||||||
|
" CHC only supports one solver at a time, therefore only z3 will be used."
|
||||||
|
" If you wish to use Eldarica, please enable Eldarica only."
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!shouldAnalyze(_source))
|
||||||
|
return;
|
||||||
|
|
||||||
resetSourceAnalysis();
|
resetSourceAnalysis();
|
||||||
|
|
||||||
auto sources = sourceDependencies(_source);
|
auto sources = sourceDependencies(_source);
|
||||||
@ -115,7 +115,8 @@ void CHC::analyze(SourceUnit const& _source)
|
|||||||
|
|
||||||
bool ranSolver = true;
|
bool ranSolver = true;
|
||||||
// If ranSolver is true here it's because an SMT solver callback was
|
// If ranSolver is true here it's because an SMT solver callback was
|
||||||
// actually given and the queries were solved.
|
// actually given and the queries were solved,
|
||||||
|
// or Eldarica was chosen and was present in the system.
|
||||||
if (auto const* smtLibInterface = dynamic_cast<CHCSmtLib2Interface const*>(m_interface.get()))
|
if (auto const* smtLibInterface = dynamic_cast<CHCSmtLib2Interface const*>(m_interface.get()))
|
||||||
ranSolver = smtLibInterface->unhandledQueries().empty();
|
ranSolver = smtLibInterface->unhandledQueries().empty();
|
||||||
if (!ranSolver)
|
if (!ranSolver)
|
||||||
@ -994,24 +995,27 @@ void CHC::resetSourceAnalysis()
|
|||||||
ArraySlicePredicate::reset();
|
ArraySlicePredicate::reset();
|
||||||
m_blockCounter = 0;
|
m_blockCounter = 0;
|
||||||
|
|
||||||
bool usesZ3 = false;
|
// At this point every enabled solver is available.
|
||||||
#ifdef HAVE_Z3
|
// If more than one Horn solver is selected we go with z3.
|
||||||
usesZ3 = m_settings.solvers.z3 && Z3Interface::available();
|
// We still need the ifdef because of Z3CHCInterface.
|
||||||
if (usesZ3)
|
if (m_settings.solvers.z3)
|
||||||
{
|
{
|
||||||
/// z3::fixedpoint does not have a reset mechanism, so we need to create another.
|
#ifdef HAVE_Z3
|
||||||
|
// z3::fixedpoint does not have a reset mechanism, so we need to create another.
|
||||||
m_interface = std::make_unique<Z3CHCInterface>(m_settings.timeout);
|
m_interface = std::make_unique<Z3CHCInterface>(m_settings.timeout);
|
||||||
auto z3Interface = dynamic_cast<Z3CHCInterface const*>(m_interface.get());
|
auto z3Interface = dynamic_cast<Z3CHCInterface const*>(m_interface.get());
|
||||||
solAssert(z3Interface, "");
|
solAssert(z3Interface, "");
|
||||||
m_context.setSolver(z3Interface->z3Interface());
|
m_context.setSolver(z3Interface->z3Interface());
|
||||||
}
|
#else
|
||||||
|
solAssert(false);
|
||||||
#endif
|
#endif
|
||||||
if (!usesZ3)
|
}
|
||||||
|
if (!m_settings.solvers.z3)
|
||||||
{
|
{
|
||||||
solAssert(m_settings.solvers.smtlib2);
|
solAssert(m_settings.solvers.smtlib2 || m_settings.solvers.eld);
|
||||||
|
|
||||||
if (!m_interface)
|
if (!m_interface)
|
||||||
m_interface = make_unique<CHCSmtLib2Interface>(m_smtlib2Responses, m_smtCallback, m_settings.timeout);
|
m_interface = make_unique<CHCSmtLib2Interface>(m_smtlib2Responses, m_smtCallback, m_settings.solvers, m_settings.timeout);
|
||||||
|
|
||||||
auto smtlib2Interface = dynamic_cast<CHCSmtLib2Interface*>(m_interface.get());
|
auto smtlib2Interface = dynamic_cast<CHCSmtLib2Interface*>(m_interface.get());
|
||||||
solAssert(smtlib2Interface, "");
|
solAssert(smtlib2Interface, "");
|
||||||
@ -1551,9 +1555,10 @@ tuple<CheckResult, smtutil::Expression, CHCSolverInterface::CexGraph> CHC::query
|
|||||||
{
|
{
|
||||||
case CheckResult::SATISFIABLE:
|
case CheckResult::SATISFIABLE:
|
||||||
{
|
{
|
||||||
#ifdef HAVE_Z3
|
// We still need the ifdef because of Z3CHCInterface.
|
||||||
if (m_settings.solvers.z3)
|
if (m_settings.solvers.z3)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_Z3
|
||||||
// Even though the problem is SAT, Spacer's pre processing makes counterexamples incomplete.
|
// Even though the problem is SAT, Spacer's pre processing makes counterexamples incomplete.
|
||||||
// We now disable those optimizations and check whether we can still solve the problem.
|
// We now disable those optimizations and check whether we can still solve the problem.
|
||||||
auto* spacer = dynamic_cast<Z3CHCInterface*>(m_interface.get());
|
auto* spacer = dynamic_cast<Z3CHCInterface*>(m_interface.get());
|
||||||
@ -1569,8 +1574,10 @@ tuple<CheckResult, smtutil::Expression, CHCSolverInterface::CexGraph> CHC::query
|
|||||||
cex = std::move(cexNoOpt);
|
cex = std::move(cexNoOpt);
|
||||||
|
|
||||||
spacer->setSpacerOptions(true);
|
spacer->setSpacerOptions(true);
|
||||||
}
|
#else
|
||||||
|
solAssert(false);
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CheckResult::UNSATISFIABLE:
|
case CheckResult::UNSATISFIABLE:
|
||||||
|
@ -59,7 +59,7 @@ public:
|
|||||||
langutil::UniqueErrorReporter& _errorReporter,
|
langutil::UniqueErrorReporter& _errorReporter,
|
||||||
std::map<util::h256, std::string> const& _smtlib2Responses,
|
std::map<util::h256, std::string> const& _smtlib2Responses,
|
||||||
ReadCallback::Callback const& _smtCallback,
|
ReadCallback::Callback const& _smtCallback,
|
||||||
ModelCheckerSettings const& _settings,
|
ModelCheckerSettings _settings,
|
||||||
langutil::CharStreamProvider const& _charStreamProvider
|
langutil::CharStreamProvider const& _charStreamProvider
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -20,6 +20,13 @@
|
|||||||
#ifdef HAVE_Z3
|
#ifdef HAVE_Z3
|
||||||
#include <libsmtutil/Z3Interface.h>
|
#include <libsmtutil/Z3Interface.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef HAVE_Z3_DLOPEN
|
||||||
|
#include <z3_version.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__linux) || defined(__APPLE__)
|
||||||
|
#include <boost/process.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <range/v3/algorithm/any_of.hpp>
|
#include <range/v3/algorithm/any_of.hpp>
|
||||||
#include <range/v3/view.hpp>
|
#include <range/v3/view.hpp>
|
||||||
@ -29,6 +36,7 @@ using namespace solidity;
|
|||||||
using namespace solidity::util;
|
using namespace solidity::util;
|
||||||
using namespace solidity::langutil;
|
using namespace solidity::langutil;
|
||||||
using namespace solidity::frontend;
|
using namespace solidity::frontend;
|
||||||
|
using namespace solidity::smtutil;
|
||||||
|
|
||||||
ModelChecker::ModelChecker(
|
ModelChecker::ModelChecker(
|
||||||
ErrorReporter& _errorReporter,
|
ErrorReporter& _errorReporter,
|
||||||
@ -46,13 +54,11 @@ ModelChecker::ModelChecker(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO This should be removed for 0.9.0.
|
// TODO This should be removed for 0.9.0.
|
||||||
void ModelChecker::enableAllEnginesIfPragmaPresent(vector<shared_ptr<SourceUnit>> const& _sources)
|
bool ModelChecker::isPragmaPresent(vector<shared_ptr<SourceUnit>> const& _sources)
|
||||||
{
|
{
|
||||||
bool hasPragma = ranges::any_of(_sources, [](auto _source) {
|
return ranges::any_of(_sources, [](auto _source) {
|
||||||
return _source && _source->annotation().experimentalFeatures.count(ExperimentalFeature::SMTChecker);
|
return _source && _source->annotation().experimentalFeatures.count(ExperimentalFeature::SMTChecker);
|
||||||
});
|
});
|
||||||
if (hasPragma)
|
|
||||||
m_settings.engine = ModelCheckerEngine::All();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModelChecker::checkRequestedSourcesAndContracts(vector<shared_ptr<SourceUnit>> const& _sources)
|
void ModelChecker::checkRequestedSourcesAndContracts(vector<shared_ptr<SourceUnit>> const& _sources)
|
||||||
@ -135,9 +141,12 @@ vector<string> ModelChecker::unhandledQueries()
|
|||||||
return m_bmc.unhandledQueries() + m_chc.unhandledQueries();
|
return m_bmc.unhandledQueries() + m_chc.unhandledQueries();
|
||||||
}
|
}
|
||||||
|
|
||||||
solidity::smtutil::SMTSolverChoice ModelChecker::availableSolvers()
|
SMTSolverChoice ModelChecker::availableSolvers()
|
||||||
{
|
{
|
||||||
smtutil::SMTSolverChoice available = smtutil::SMTSolverChoice::SMTLIB2();
|
smtutil::SMTSolverChoice available = smtutil::SMTSolverChoice::SMTLIB2();
|
||||||
|
#if defined(__linux) || defined(__APPLE__)
|
||||||
|
available.eld = !boost::process::search_path("eld").empty();
|
||||||
|
#endif
|
||||||
#ifdef HAVE_Z3
|
#ifdef HAVE_Z3
|
||||||
available.z3 = solidity::smtutil::Z3Interface::available();
|
available.z3 = solidity::smtutil::Z3Interface::available();
|
||||||
#endif
|
#endif
|
||||||
@ -146,3 +155,47 @@ solidity::smtutil::SMTSolverChoice ModelChecker::availableSolvers()
|
|||||||
#endif
|
#endif
|
||||||
return available;
|
return available;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SMTSolverChoice ModelChecker::checkRequestedSolvers(SMTSolverChoice _enabled, ErrorReporter& _errorReporter)
|
||||||
|
{
|
||||||
|
SMTSolverChoice availableSolvers{ModelChecker::availableSolvers()};
|
||||||
|
|
||||||
|
if (_enabled.cvc4 && !availableSolvers.cvc4)
|
||||||
|
{
|
||||||
|
_enabled.cvc4 = false;
|
||||||
|
_errorReporter.warning(
|
||||||
|
4902_error,
|
||||||
|
SourceLocation(),
|
||||||
|
"Solver CVC4 was selected for SMTChecker but it is not available."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_enabled.eld && !availableSolvers.eld)
|
||||||
|
{
|
||||||
|
_enabled.eld = false;
|
||||||
|
_errorReporter.warning(
|
||||||
|
4458_error,
|
||||||
|
SourceLocation(),
|
||||||
|
#if defined(__linux) || defined(__APPLE__)
|
||||||
|
"Solver Eldarica was selected for SMTChecker but it was not found in the system."
|
||||||
|
#else
|
||||||
|
"Solver Eldarica was selected for SMTChecker but it is only supported on Linux and MacOS."
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_enabled.z3 && !availableSolvers.z3)
|
||||||
|
{
|
||||||
|
_enabled.z3 = false;
|
||||||
|
_errorReporter.warning(
|
||||||
|
8158_error,
|
||||||
|
SourceLocation(),
|
||||||
|
"Solver z3 was selected for SMTChecker but it is not available."
|
||||||
|
#ifdef HAVE_Z3_DLOPEN
|
||||||
|
" libz3.so." + to_string(Z3_MAJOR_VERSION) + "." + to_string(Z3_MINOR_VERSION) + " was not found."
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return _enabled;
|
||||||
|
}
|
||||||
|
@ -58,7 +58,7 @@ public:
|
|||||||
);
|
);
|
||||||
|
|
||||||
// TODO This should be removed for 0.9.0.
|
// TODO This should be removed for 0.9.0.
|
||||||
void enableAllEnginesIfPragmaPresent(std::vector<std::shared_ptr<SourceUnit>> const& _sources);
|
static bool isPragmaPresent(std::vector<std::shared_ptr<SourceUnit>> const& _sources);
|
||||||
|
|
||||||
/// Generates error messages if the requested sources and contracts
|
/// Generates error messages if the requested sources and contracts
|
||||||
/// do not exist.
|
/// do not exist.
|
||||||
@ -74,6 +74,10 @@ public:
|
|||||||
/// @returns SMT solvers that are available via the C++ API.
|
/// @returns SMT solvers that are available via the C++ API.
|
||||||
static smtutil::SMTSolverChoice availableSolvers();
|
static smtutil::SMTSolverChoice availableSolvers();
|
||||||
|
|
||||||
|
/// @returns the intersection of the enabled and available solvers,
|
||||||
|
/// reporting warnings when a solver is enabled but not available.
|
||||||
|
static smtutil::SMTSolverChoice checkRequestedSolvers(smtutil::SMTSolverChoice _enabled, langutil::ErrorReporter& _errorReporter);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// Error reporter from CompilerStack.
|
/// Error reporter from CompilerStack.
|
||||||
/// We need to append m_uniqueErrorReporter
|
/// We need to append m_uniqueErrorReporter
|
||||||
|
@ -153,7 +153,7 @@ struct ModelCheckerSettings
|
|||||||
ModelCheckerEngine engine = ModelCheckerEngine::None();
|
ModelCheckerEngine engine = ModelCheckerEngine::None();
|
||||||
ModelCheckerInvariants invariants = ModelCheckerInvariants::Default();
|
ModelCheckerInvariants invariants = ModelCheckerInvariants::Default();
|
||||||
bool showUnproved = false;
|
bool showUnproved = false;
|
||||||
smtutil::SMTSolverChoice solvers = smtutil::SMTSolverChoice::All();
|
smtutil::SMTSolverChoice solvers = smtutil::SMTSolverChoice::Z3();
|
||||||
ModelCheckerTargets targets = ModelCheckerTargets::Default();
|
ModelCheckerTargets targets = ModelCheckerTargets::Default();
|
||||||
std::optional<unsigned> timeout;
|
std::optional<unsigned> timeout;
|
||||||
|
|
||||||
|
@ -47,13 +47,13 @@ using namespace solidity::frontend;
|
|||||||
|
|
||||||
SMTEncoder::SMTEncoder(
|
SMTEncoder::SMTEncoder(
|
||||||
smt::EncodingContext& _context,
|
smt::EncodingContext& _context,
|
||||||
ModelCheckerSettings const& _settings,
|
ModelCheckerSettings _settings,
|
||||||
UniqueErrorReporter& _errorReporter,
|
UniqueErrorReporter& _errorReporter,
|
||||||
langutil::CharStreamProvider const& _charStreamProvider
|
langutil::CharStreamProvider const& _charStreamProvider
|
||||||
):
|
):
|
||||||
m_errorReporter(_errorReporter),
|
m_errorReporter(_errorReporter),
|
||||||
m_context(_context),
|
m_context(_context),
|
||||||
m_settings(_settings),
|
m_settings(std::move(_settings)),
|
||||||
m_charStreamProvider(_charStreamProvider)
|
m_charStreamProvider(_charStreamProvider)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@ class SMTEncoder: public ASTConstVisitor
|
|||||||
public:
|
public:
|
||||||
SMTEncoder(
|
SMTEncoder(
|
||||||
smt::EncodingContext& _context,
|
smt::EncodingContext& _context,
|
||||||
ModelCheckerSettings const& _settings,
|
ModelCheckerSettings _settings,
|
||||||
langutil::UniqueErrorReporter& _errorReporter,
|
langutil::UniqueErrorReporter& _errorReporter,
|
||||||
langutil::CharStreamProvider const& _charStreamProvider
|
langutil::CharStreamProvider const& _charStreamProvider
|
||||||
);
|
);
|
||||||
@ -483,7 +483,7 @@ protected:
|
|||||||
/// Stores the context of the encoding.
|
/// Stores the context of the encoding.
|
||||||
smt::EncodingContext& m_context;
|
smt::EncodingContext& m_context;
|
||||||
|
|
||||||
ModelCheckerSettings const& m_settings;
|
ModelCheckerSettings m_settings;
|
||||||
|
|
||||||
/// Character stream for each source,
|
/// Character stream for each source,
|
||||||
/// used for retrieving source text of expressions for e.g. counter-examples.
|
/// used for retrieving source text of expressions for e.g. counter-examples.
|
||||||
|
@ -577,9 +577,18 @@ bool CompilerStack::analyze()
|
|||||||
|
|
||||||
if (noErrors)
|
if (noErrors)
|
||||||
{
|
{
|
||||||
ModelChecker modelChecker(m_errorReporter, *this, m_smtlib2Responses, m_modelCheckerSettings, m_readFile);
|
// Run SMTChecker
|
||||||
|
|
||||||
auto allSources = util::applyMap(m_sourceOrder, [](Source const* _source) { return _source->ast; });
|
auto allSources = util::applyMap(m_sourceOrder, [](Source const* _source) { return _source->ast; });
|
||||||
modelChecker.enableAllEnginesIfPragmaPresent(allSources);
|
if (ModelChecker::isPragmaPresent(allSources))
|
||||||
|
m_modelCheckerSettings.engine = ModelCheckerEngine::All();
|
||||||
|
|
||||||
|
// m_modelCheckerSettings is spread to engines and solver interfaces,
|
||||||
|
// so we need to check whether the enabled ones are available before building the classes.
|
||||||
|
if (m_modelCheckerSettings.engine.any())
|
||||||
|
m_modelCheckerSettings.solvers = ModelChecker::checkRequestedSolvers(m_modelCheckerSettings.solvers, m_errorReporter);
|
||||||
|
|
||||||
|
ModelChecker modelChecker(m_errorReporter, *this, m_smtlib2Responses, m_modelCheckerSettings, m_readFile);
|
||||||
modelChecker.checkRequestedSourcesAndContracts(allSources);
|
modelChecker.checkRequestedSourcesAndContracts(allSources);
|
||||||
for (Source const* source: m_sourceOrder)
|
for (Source const* source: m_sourceOrder)
|
||||||
if (source->ast)
|
if (source->ast)
|
||||||
|
85
libsolidity/interface/SMTSolverCommand.cpp
Normal file
85
libsolidity/interface/SMTSolverCommand.cpp
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
/*
|
||||||
|
This file is part of solidity.
|
||||||
|
|
||||||
|
solidity is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
solidity is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with solidity. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
// SPDX-License-Identifier: GPL-3.0
|
||||||
|
#include <libsolidity/interface/SMTSolverCommand.h>
|
||||||
|
|
||||||
|
#include <liblangutil/Exceptions.h>
|
||||||
|
|
||||||
|
#include <libsolutil/CommonIO.h>
|
||||||
|
#include <libsolutil/Exceptions.h>
|
||||||
|
#include <libsolutil/Keccak256.h>
|
||||||
|
#include <libsolutil/TemporaryDirectory.h>
|
||||||
|
|
||||||
|
#include <boost/algorithm/string/join.hpp>
|
||||||
|
#include <boost/algorithm/string/predicate.hpp>
|
||||||
|
#include <boost/filesystem.hpp>
|
||||||
|
#include <boost/filesystem/fstream.hpp>
|
||||||
|
#include <boost/process.hpp>
|
||||||
|
|
||||||
|
using solidity::langutil::InternalCompilerError;
|
||||||
|
using solidity::util::errinfo_comment;
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
namespace solidity::frontend
|
||||||
|
{
|
||||||
|
|
||||||
|
SMTSolverCommand::SMTSolverCommand(string _solverCmd) : m_solverCmd(_solverCmd) {}
|
||||||
|
|
||||||
|
ReadCallback::Result SMTSolverCommand::solve(string const& _kind, string const& _query)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (_kind != ReadCallback::kindString(ReadCallback::Kind::SMTQuery))
|
||||||
|
solAssert(false, "SMTQuery callback used as callback kind " + _kind);
|
||||||
|
|
||||||
|
auto tempDir = solidity::util::TemporaryDirectory("smt");
|
||||||
|
util::h256 queryHash = util::keccak256(_query);
|
||||||
|
auto queryFileName = tempDir.path() / ("query_" + queryHash.hex() + ".smt2");
|
||||||
|
|
||||||
|
auto queryFile = boost::filesystem::ofstream(queryFileName);
|
||||||
|
queryFile << _query;
|
||||||
|
|
||||||
|
auto eldBin = boost::process::search_path(m_solverCmd);
|
||||||
|
|
||||||
|
if (eldBin.empty())
|
||||||
|
return ReadCallback::Result{false, m_solverCmd + " binary not found."};
|
||||||
|
|
||||||
|
boost::process::ipstream pipe;
|
||||||
|
boost::process::child eld(
|
||||||
|
eldBin,
|
||||||
|
queryFileName,
|
||||||
|
boost::process::std_out > pipe
|
||||||
|
);
|
||||||
|
|
||||||
|
vector<string> data;
|
||||||
|
string line;
|
||||||
|
while (eld.running() && std::getline(pipe, line))
|
||||||
|
if (!line.empty())
|
||||||
|
data.push_back(line);
|
||||||
|
|
||||||
|
eld.wait();
|
||||||
|
|
||||||
|
return ReadCallback::Result{true, boost::join(data, "\n")};
|
||||||
|
}
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
return ReadCallback::Result{false, "Unknown exception in SMTQuery callback: " + boost::current_exception_diagnostic_information()};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
46
libsolidity/interface/SMTSolverCommand.h
Normal file
46
libsolidity/interface/SMTSolverCommand.h
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
This file is part of solidity.
|
||||||
|
|
||||||
|
solidity is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
solidity is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with solidity. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
// SPDX-License-Identifier: GPL-3.0
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <libsolidity/interface/ReadFile.h>
|
||||||
|
|
||||||
|
#include <boost/filesystem.hpp>
|
||||||
|
|
||||||
|
namespace solidity::frontend
|
||||||
|
{
|
||||||
|
|
||||||
|
/// SMTSolverCommand wraps an SMT solver called via its binary in the OS.
|
||||||
|
class SMTSolverCommand
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
SMTSolverCommand(std::string _solverCmd);
|
||||||
|
|
||||||
|
/// Calls an SMT solver with the given query.
|
||||||
|
frontend::ReadCallback::Result solve(std::string const& _kind, std::string const& _query);
|
||||||
|
|
||||||
|
frontend::ReadCallback::Callback solver()
|
||||||
|
{
|
||||||
|
return [this](std::string const& _kind, std::string const& _query) { return solve(_kind, _query); };
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
/// The name of the solver's binary.
|
||||||
|
std::string const m_solverCmd;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
53
libsolidity/interface/UniversalCallback.h
Normal file
53
libsolidity/interface/UniversalCallback.h
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
This file is part of solidity.
|
||||||
|
|
||||||
|
solidity is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
solidity is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with solidity. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
// SPDX-License-Identifier: GPL-3.0
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <libsolidity/interface/FileReader.h>
|
||||||
|
#include <libsolidity/interface/SMTSolverCommand.h>
|
||||||
|
|
||||||
|
namespace solidity::frontend
|
||||||
|
{
|
||||||
|
|
||||||
|
/// UniversalCallback is used to wrap both FileReader and SMTSolverCommand
|
||||||
|
/// callbacks in a single callback. It uses the Kind of the callback to
|
||||||
|
/// determine which to call internally.
|
||||||
|
class UniversalCallback
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
UniversalCallback(FileReader& _fileReader, SMTSolverCommand& _solver) :
|
||||||
|
m_fileReader{_fileReader},
|
||||||
|
m_solver{_solver}
|
||||||
|
{}
|
||||||
|
|
||||||
|
frontend::ReadCallback::Callback callback()
|
||||||
|
{
|
||||||
|
return [this](std::string const& _kind, std::string const& _data) -> ReadCallback::Result {
|
||||||
|
if (_kind == ReadCallback::kindString(ReadCallback::Kind::ReadFile))
|
||||||
|
return m_fileReader.readFile(_kind, _data);
|
||||||
|
else if (_kind == ReadCallback::kindString(ReadCallback::Kind::SMTQuery))
|
||||||
|
return m_solver.solve(_kind, _data);
|
||||||
|
solAssert(false, "Unknown callback kind.");
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
FileReader& m_fileReader;
|
||||||
|
SMTSolverCommand& m_solver;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -33,6 +33,8 @@ set(sources
|
|||||||
StringUtils.h
|
StringUtils.h
|
||||||
SwarmHash.cpp
|
SwarmHash.cpp
|
||||||
SwarmHash.h
|
SwarmHash.h
|
||||||
|
TemporaryDirectory.cpp
|
||||||
|
TemporaryDirectory.h
|
||||||
UTF8.cpp
|
UTF8.cpp
|
||||||
UTF8.h
|
UTF8.h
|
||||||
vector_ref.h
|
vector_ref.h
|
||||||
|
@ -16,9 +16,9 @@
|
|||||||
*/
|
*/
|
||||||
// SPDX-License-Identifier: GPL-3.0
|
// SPDX-License-Identifier: GPL-3.0
|
||||||
|
|
||||||
#include <test/TemporaryDirectory.h>
|
#include <libsolutil/TemporaryDirectory.h>
|
||||||
|
|
||||||
#include <test/libsolidity/util/SoltestErrors.h>
|
#include <liblangutil/Exceptions.h>
|
||||||
|
|
||||||
#include <boost/algorithm/string/predicate.hpp>
|
#include <boost/algorithm/string/predicate.hpp>
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace solidity;
|
using namespace solidity;
|
||||||
using namespace solidity::test;
|
using namespace solidity::util;
|
||||||
|
|
||||||
namespace fs = boost::filesystem;
|
namespace fs = boost::filesystem;
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ TemporaryDirectory::TemporaryDirectory(std::string const& _prefix):
|
|||||||
m_path(fs::temp_directory_path() / fs::unique_path(_prefix + "-%%%%-%%%%-%%%%-%%%%"))
|
m_path(fs::temp_directory_path() / fs::unique_path(_prefix + "-%%%%-%%%%-%%%%-%%%%"))
|
||||||
{
|
{
|
||||||
// Prefix should just be a file name and not contain anything that would make us step out of /tmp.
|
// Prefix should just be a file name and not contain anything that would make us step out of /tmp.
|
||||||
soltestAssert(fs::path(_prefix) == fs::path(_prefix).stem(), "");
|
solAssert(fs::path(_prefix) == fs::path(_prefix).stem(), "");
|
||||||
|
|
||||||
fs::create_directory(m_path);
|
fs::create_directory(m_path);
|
||||||
}
|
}
|
||||||
@ -49,8 +49,8 @@ TemporaryDirectory::TemporaryDirectory(
|
|||||||
{
|
{
|
||||||
for (boost::filesystem::path const& subdirectory: _subdirectories)
|
for (boost::filesystem::path const& subdirectory: _subdirectories)
|
||||||
{
|
{
|
||||||
soltestAssert(!subdirectory.is_absolute() && subdirectory.root_path() != "/", "");
|
solAssert(!subdirectory.is_absolute() && subdirectory.root_path() != "/", "");
|
||||||
soltestAssert(
|
solAssert(
|
||||||
m_path.lexically_relative(subdirectory).empty() ||
|
m_path.lexically_relative(subdirectory).empty() ||
|
||||||
*m_path.lexically_relative(subdirectory).begin() != "..",
|
*m_path.lexically_relative(subdirectory).begin() != "..",
|
||||||
""
|
""
|
||||||
@ -62,10 +62,10 @@ TemporaryDirectory::TemporaryDirectory(
|
|||||||
TemporaryDirectory::~TemporaryDirectory()
|
TemporaryDirectory::~TemporaryDirectory()
|
||||||
{
|
{
|
||||||
// A few paranoid sanity checks just to be extra sure we're not deleting someone's homework.
|
// A few paranoid sanity checks just to be extra sure we're not deleting someone's homework.
|
||||||
soltestAssert(m_path.string().find(fs::temp_directory_path().string()) == 0, "");
|
solAssert(m_path.string().find(fs::temp_directory_path().string()) == 0, "");
|
||||||
soltestAssert(!fs::equivalent(m_path, fs::temp_directory_path()), "");
|
solAssert(!fs::equivalent(m_path, fs::temp_directory_path()), "");
|
||||||
soltestAssert(!fs::equivalent(m_path, m_path.root_path()), "");
|
solAssert(!fs::equivalent(m_path, m_path.root_path()), "");
|
||||||
soltestAssert(!m_path.empty(), "");
|
solAssert(!m_path.empty(), "");
|
||||||
|
|
||||||
boost::system::error_code errorCode;
|
boost::system::error_code errorCode;
|
||||||
uintmax_t numRemoved = fs::remove_all(m_path, errorCode);
|
uintmax_t numRemoved = fs::remove_all(m_path, errorCode);
|
@ -27,7 +27,7 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
namespace solidity::test
|
namespace solidity::util
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -41,10 +41,10 @@ namespace solidity::test
|
|||||||
class TemporaryDirectory
|
class TemporaryDirectory
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TemporaryDirectory(std::string const& _prefix = "solidity-test");
|
TemporaryDirectory(std::string const& _prefix = "solidity");
|
||||||
TemporaryDirectory(
|
TemporaryDirectory(
|
||||||
std::vector<boost::filesystem::path> const& _subdirectories,
|
std::vector<boost::filesystem::path> const& _subdirectories,
|
||||||
std::string const& _prefix = "solidity-test"
|
std::string const& _prefix = "solidity"
|
||||||
);
|
);
|
||||||
~TemporaryDirectory();
|
~TemporaryDirectory();
|
||||||
|
|
@ -229,8 +229,8 @@ def examine_id_coverage(top_dir, source_id_to_file_names, new_ids_only=False):
|
|||||||
old_source_only_ids = {
|
old_source_only_ids = {
|
||||||
"1584", "1823",
|
"1584", "1823",
|
||||||
"1988", "2066", "2833", "3356",
|
"1988", "2066", "2833", "3356",
|
||||||
"3893", "3996", "4010", "4802",
|
"3893", "3996", "4010", "4458", "4802",
|
||||||
"5272", "5622", "7128", "7400",
|
"4902", "5272", "5622", "5798", "7128", "7400",
|
||||||
"7589", "7593", "7649", "7710",
|
"7589", "7593", "7649", "7710",
|
||||||
"8065", "8084", "8140", "8158",
|
"8065", "8084", "8140", "8158",
|
||||||
"8312", "8592", "9134", "9609",
|
"8312", "8592", "9134", "9609",
|
||||||
|
@ -653,7 +653,7 @@ void CommandLineInterface::processInput()
|
|||||||
{
|
{
|
||||||
solAssert(m_standardJsonInput.has_value());
|
solAssert(m_standardJsonInput.has_value());
|
||||||
|
|
||||||
StandardCompiler compiler(m_fileReader.reader(), m_options.formatting.json);
|
StandardCompiler compiler(m_universalCallback.callback(), m_options.formatting.json);
|
||||||
sout() << compiler.compile(std::move(m_standardJsonInput.value())) << endl;
|
sout() << compiler.compile(std::move(m_standardJsonInput.value())) << endl;
|
||||||
m_standardJsonInput.reset();
|
m_standardJsonInput.reset();
|
||||||
break;
|
break;
|
||||||
@ -692,7 +692,7 @@ void CommandLineInterface::compile()
|
|||||||
{
|
{
|
||||||
solAssert(CompilerInputModes.count(m_options.input.mode) == 1);
|
solAssert(CompilerInputModes.count(m_options.input.mode) == 1);
|
||||||
|
|
||||||
m_compiler = make_unique<CompilerStack>(m_fileReader.reader());
|
m_compiler = make_unique<CompilerStack>(m_universalCallback.callback());
|
||||||
|
|
||||||
SourceReferenceFormatter formatter(serr(false), *m_compiler, coloredOutput(m_options), m_options.formatting.withErrorIds);
|
SourceReferenceFormatter formatter(serr(false), *m_compiler, coloredOutput(m_options), m_options.formatting.withErrorIds);
|
||||||
|
|
||||||
|
@ -27,6 +27,8 @@
|
|||||||
#include <libsolidity/interface/CompilerStack.h>
|
#include <libsolidity/interface/CompilerStack.h>
|
||||||
#include <libsolidity/interface/DebugSettings.h>
|
#include <libsolidity/interface/DebugSettings.h>
|
||||||
#include <libsolidity/interface/FileReader.h>
|
#include <libsolidity/interface/FileReader.h>
|
||||||
|
#include <libsolidity/interface/UniversalCallback.h>
|
||||||
|
#include <libsolidity/interface/SMTSolverCommand.h>
|
||||||
#include <libyul/YulStack.h>
|
#include <libyul/YulStack.h>
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
@ -138,6 +140,8 @@ private:
|
|||||||
std::ostream& m_serr;
|
std::ostream& m_serr;
|
||||||
bool m_hasOutput = false;
|
bool m_hasOutput = false;
|
||||||
FileReader m_fileReader;
|
FileReader m_fileReader;
|
||||||
|
SMTSolverCommand m_solverCommand{"eld"};
|
||||||
|
UniversalCallback m_universalCallback{m_fileReader, m_solverCommand};
|
||||||
std::optional<std::string> m_standardJsonInput;
|
std::optional<std::string> m_standardJsonInput;
|
||||||
std::unique_ptr<frontend::CompilerStack> m_compiler;
|
std::unique_ptr<frontend::CompilerStack> m_compiler;
|
||||||
CommandLineOptions m_options;
|
CommandLineOptions m_options;
|
||||||
|
@ -828,7 +828,7 @@ General Information)").c_str(),
|
|||||||
)
|
)
|
||||||
(
|
(
|
||||||
g_strModelCheckerSolvers.c_str(),
|
g_strModelCheckerSolvers.c_str(),
|
||||||
po::value<string>()->value_name("all,cvc4,z3,smtlib2")->default_value("all"),
|
po::value<string>()->value_name("cvc4,eld,z3,smtlib2")->default_value("z3"),
|
||||||
"Select model checker solvers."
|
"Select model checker solvers."
|
||||||
)
|
)
|
||||||
(
|
(
|
||||||
|
@ -13,9 +13,6 @@ set(sources
|
|||||||
InteractiveTests.h
|
InteractiveTests.h
|
||||||
Metadata.cpp
|
Metadata.cpp
|
||||||
Metadata.h
|
Metadata.h
|
||||||
TemporaryDirectory.cpp
|
|
||||||
TemporaryDirectory.h
|
|
||||||
TemporaryDirectoryTest.cpp
|
|
||||||
TestCase.cpp
|
TestCase.cpp
|
||||||
TestCase.h
|
TestCase.h
|
||||||
TestCaseReader.cpp
|
TestCaseReader.cpp
|
||||||
@ -45,6 +42,7 @@ set(libsolutil_sources
|
|||||||
libsolutil/LEB128.cpp
|
libsolutil/LEB128.cpp
|
||||||
libsolutil/StringUtils.cpp
|
libsolutil/StringUtils.cpp
|
||||||
libsolutil/SwarmHash.cpp
|
libsolutil/SwarmHash.cpp
|
||||||
|
libsolutil/TemporaryDirectoryTest.cpp
|
||||||
libsolutil/UTF8.cpp
|
libsolutil/UTF8.cpp
|
||||||
libsolutil/Whiskers.cpp
|
libsolutil/Whiskers.cpp
|
||||||
)
|
)
|
||||||
|
@ -1 +0,0 @@
|
|||||||
--model-checker-engine all --model-checker-solvers all
|
|
@ -1,12 +0,0 @@
|
|||||||
Warning: CHC: Assertion violation happens here.
|
|
||||||
Counterexample:
|
|
||||||
|
|
||||||
x = 0
|
|
||||||
|
|
||||||
Transaction trace:
|
|
||||||
test.constructor()
|
|
||||||
test.f(0)
|
|
||||||
--> model_checker_solvers_all_implicit/input.sol:5:3:
|
|
||||||
|
|
|
||||||
5 | assert(x > 0);
|
|
||||||
| ^^^^^^^^^^^^^
|
|
@ -1,7 +0,0 @@
|
|||||||
// SPDX-License-Identifier: GPL-3.0
|
|
||||||
pragma solidity >=0.0;
|
|
||||||
contract test {
|
|
||||||
function f(uint x) public pure {
|
|
||||||
assert(x > 0);
|
|
||||||
}
|
|
||||||
}
|
|
@ -6,7 +6,7 @@ x = 0
|
|||||||
Transaction trace:
|
Transaction trace:
|
||||||
test.constructor()
|
test.constructor()
|
||||||
test.f(0)
|
test.f(0)
|
||||||
--> model_checker_solvers_all/input.sol:5:3:
|
--> model_checker_solvers_z3_implicit/input.sol:5:3:
|
||||||
|
|
|
|
||||||
5 | assert(x > 0);
|
5 | assert(x > 0);
|
||||||
| ^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^
|
@ -1,76 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0x72b32f47722af7f889ab5740b229c1799f27d0a693995a581c00f65438255a15": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |a_3_3| () Int)
|
|
||||||
(declare-fun |b_5_3| () Int)
|
|
||||||
(declare-fun |_8_3| () Int)
|
|
||||||
(declare-fun |_10_3| () Int)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |a_3_4| () Int)
|
|
||||||
(declare-fun |b_5_4| () Int)
|
|
||||||
(declare-fun |_8_4| () Int)
|
|
||||||
(declare-fun |_10_4| () Int)
|
|
||||||
(declare-fun |a_3_0| () Int)
|
|
||||||
(declare-fun |b_5_0| () Int)
|
|
||||||
(declare-fun |_8_0| () Int)
|
|
||||||
(declare-fun |_10_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_0| () Int)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_1 (not (= expr_13_0 expr_14_0))) (and (=> (and true true) true) (and (= expr_14_0 0) (and (=> (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 b_5_0) (and (= _10_0 0) (and (= _8_0 0) (and (and (>= b_5_0 0) (<= b_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_3_0 0) (<= a_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 332507694)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 19)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 209)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 170)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 46)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) (not expr_15_1)))
|
|
||||||
(check-sat)
|
|
||||||
",
|
|
||||||
"0x825b322db572f1c2705128460f2af503aeeb571f1c2e15207ce4fd0355accee6": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |a_3_3| () Int)
|
|
||||||
(declare-fun |b_5_3| () Int)
|
|
||||||
(declare-fun |_8_3| () Int)
|
|
||||||
(declare-fun |_10_3| () Int)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |a_3_4| () Int)
|
|
||||||
(declare-fun |b_5_4| () Int)
|
|
||||||
(declare-fun |_8_4| () Int)
|
|
||||||
(declare-fun |_10_4| () Int)
|
|
||||||
(declare-fun |a_3_0| () Int)
|
|
||||||
(declare-fun |b_5_0| () Int)
|
|
||||||
(declare-fun |_8_0| () Int)
|
|
||||||
(declare-fun |_10_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_0| () Int)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_1 (not (= expr_13_0 expr_14_0))) (and (=> (and true true) true) (and (= expr_14_0 0) (and (=> (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 b_5_0) (and (= _10_0 0) (and (= _8_0 0) (and (and (>= b_5_0 0) (<= b_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_3_0 0) (<= a_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 332507694)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 19)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 209)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 170)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 46)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) expr_15_1))
|
|
||||||
(check-sat)
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sources":
|
"sources":
|
||||||
{
|
{
|
||||||
"A":
|
"A":
|
||||||
|
@ -1,160 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0x4e97ac0812ea5c46e435c3db54d9e2eb4a3bcadff47f83ce1640429a0a47f6a4": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |a_3_0| () Int)
|
|
||||||
(declare-fun |b_5_0| () Int)
|
|
||||||
(declare-fun |_8_0| () Int)
|
|
||||||
(declare-fun |_10_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_0| () Int)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
(declare-fun |expr_18_0| () Int)
|
|
||||||
(declare-fun |expr_19_0| () Int)
|
|
||||||
(declare-fun |d_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |r_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |expr_20_1| () Int)
|
|
||||||
(declare-fun |expr_21_0| () Int)
|
|
||||||
(declare-fun |expr_22_0| () Int)
|
|
||||||
(declare-fun |d_div_mod_1_0| () Int)
|
|
||||||
(declare-fun |r_div_mod_1_0| () Int)
|
|
||||||
(declare-fun |expr_23_1| () Int)
|
|
||||||
(declare-datatypes ((|tuple(uint256,uint256)| 0)) (((|tuple(uint256,uint256)| (|tuple(uint256,uint256)_accessor_0| Int) (|tuple(uint256,uint256)_accessor_1| Int)))))
|
|
||||||
(declare-fun |expr_24_1| () |tuple(uint256,uint256)|)
|
|
||||||
(declare-fun |_8_1| () Int)
|
|
||||||
(declare-fun |_10_1| () Int)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (=> (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 b_5_0) (and (=> (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 a_3_0) (and (=> (and true true) expr_15_1) (and (= expr_15_1 (not (= expr_13_0 expr_14_0))) (and (=> (and true true) true) (and (= expr_14_0 0) (and (=> (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 b_5_0) (and (= _10_0 0) (and (= _8_0 0) (and (and (>= b_5_0 0) (<= b_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_3_0 0) (<= a_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 332507694)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 19)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 209)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 170)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 46)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))) (= expr_19_0 0)))
|
|
||||||
(declare-const |EVALEXPR_0| Int)
|
|
||||||
(assert (= |EVALEXPR_0| a_3_0))
|
|
||||||
(declare-const |EVALEXPR_1| Int)
|
|
||||||
(assert (= |EVALEXPR_1| b_5_0))
|
|
||||||
(declare-const |EVALEXPR_2| Int)
|
|
||||||
(assert (= |EVALEXPR_2| _8_0))
|
|
||||||
(declare-const |EVALEXPR_3| Int)
|
|
||||||
(assert (= |EVALEXPR_3| _10_0))
|
|
||||||
(declare-const |EVALEXPR_4| Int)
|
|
||||||
(assert (= |EVALEXPR_4| expr_19_0))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| |EVALEXPR_3| |EVALEXPR_4| ))
|
|
||||||
",
|
|
||||||
"0x5e6c35c70ccbb1d9823ba3ab86fc9448ead56e6158f73aa8bed482232be56105": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |a_3_0| () Int)
|
|
||||||
(declare-fun |b_5_0| () Int)
|
|
||||||
(declare-fun |_8_0| () Int)
|
|
||||||
(declare-fun |_10_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_0| () Int)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
(declare-fun |expr_18_0| () Int)
|
|
||||||
(declare-fun |expr_19_0| () Int)
|
|
||||||
(declare-fun |d_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |r_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |expr_20_1| () Int)
|
|
||||||
(declare-fun |expr_21_0| () Int)
|
|
||||||
(declare-fun |expr_22_0| () Int)
|
|
||||||
(declare-fun |d_div_mod_1_0| () Int)
|
|
||||||
(declare-fun |r_div_mod_1_0| () Int)
|
|
||||||
(declare-fun |expr_23_1| () Int)
|
|
||||||
(declare-datatypes ((|tuple(uint256,uint256)| 0)) (((|tuple(uint256,uint256)| (|tuple(uint256,uint256)_accessor_0| Int) (|tuple(uint256,uint256)_accessor_1| Int)))))
|
|
||||||
(declare-fun |expr_24_1| () |tuple(uint256,uint256)|)
|
|
||||||
(declare-fun |_8_1| () Int)
|
|
||||||
(declare-fun |_10_1| () Int)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (=> (and true true) (and (>= expr_22_0 0) (<= expr_22_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_22_0 b_5_0) (and (=> (and true true) (and (>= expr_21_0 0) (<= expr_21_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_21_0 a_3_0) (and (=> (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (ite (= expr_19_0 0) 0 d_div_mod_0_0)) (and (and (<= 0 r_div_mod_0_0) (or (= expr_19_0 0) (< r_div_mod_0_0 expr_19_0))) (and (= (+ (* d_div_mod_0_0 expr_19_0) r_div_mod_0_0) expr_18_0) (and (=> (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 b_5_0) (and (=> (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 a_3_0) (and (=> (and true true) expr_15_1) (and (= expr_15_1 (not (= expr_13_0 expr_14_0))) (and (=> (and true true) true) (and (= expr_14_0 0) (and (=> (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 b_5_0) (and (= _10_0 0) (and (= _8_0 0) (and (and (>= b_5_0 0) (<= b_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_3_0 0) (<= a_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 332507694)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 19)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 209)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 170)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 46)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))))))) (= expr_22_0 0)))
|
|
||||||
(declare-const |EVALEXPR_0| Int)
|
|
||||||
(assert (= |EVALEXPR_0| a_3_0))
|
|
||||||
(declare-const |EVALEXPR_1| Int)
|
|
||||||
(assert (= |EVALEXPR_1| b_5_0))
|
|
||||||
(declare-const |EVALEXPR_2| Int)
|
|
||||||
(assert (= |EVALEXPR_2| _8_0))
|
|
||||||
(declare-const |EVALEXPR_3| Int)
|
|
||||||
(assert (= |EVALEXPR_3| _10_0))
|
|
||||||
(declare-const |EVALEXPR_4| Int)
|
|
||||||
(assert (= |EVALEXPR_4| expr_22_0))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| |EVALEXPR_3| |EVALEXPR_4| ))
|
|
||||||
",
|
|
||||||
"0x615d3f7e7a864c5b3fa9663d698ad3525d0345fa9b53c171d86493beded9023b": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |a_3_0| () Int)
|
|
||||||
(declare-fun |b_5_0| () Int)
|
|
||||||
(declare-fun |_8_0| () Int)
|
|
||||||
(declare-fun |_10_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_0| () Int)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_1 (not (= expr_13_0 expr_14_0))) (and (=> (and true true) true) (and (= expr_14_0 0) (and (=> (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 b_5_0) (and (= _10_0 0) (and (= _8_0 0) (and (and (>= b_5_0 0) (<= b_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_3_0 0) (<= a_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 332507694)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 19)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 209)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 170)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 46)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) (not expr_15_1)))
|
|
||||||
(check-sat)
|
|
||||||
",
|
|
||||||
"0x769f12e07b77225b4e96b3031839452b89976583e45e7924b8bf82ca53a0dd45": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |a_3_0| () Int)
|
|
||||||
(declare-fun |b_5_0| () Int)
|
|
||||||
(declare-fun |_8_0| () Int)
|
|
||||||
(declare-fun |_10_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_0| () Int)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_1 (not (= expr_13_0 expr_14_0))) (and (=> (and true true) true) (and (= expr_14_0 0) (and (=> (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 b_5_0) (and (= _10_0 0) (and (= _8_0 0) (and (and (>= b_5_0 0) (<= b_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_3_0 0) (<= a_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 332507694)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 19)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 209)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 170)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 46)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) expr_15_1))
|
|
||||||
(check-sat)
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sources":
|
"sources":
|
||||||
{
|
{
|
||||||
"A":
|
"A":
|
||||||
|
@ -1,184 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0x591e1d66214247cc99275e22a55210a804c80e9939d5e515cd60a20b3a927c44": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |a_3_3| () Int)
|
|
||||||
(declare-fun |b_5_3| () Int)
|
|
||||||
(declare-fun |_8_3| () Int)
|
|
||||||
(declare-fun |_10_3| () Int)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |a_3_4| () Int)
|
|
||||||
(declare-fun |b_5_4| () Int)
|
|
||||||
(declare-fun |_8_4| () Int)
|
|
||||||
(declare-fun |_10_4| () Int)
|
|
||||||
(declare-fun |a_3_0| () Int)
|
|
||||||
(declare-fun |b_5_0| () Int)
|
|
||||||
(declare-fun |_8_0| () Int)
|
|
||||||
(declare-fun |_10_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_0| () Int)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
(declare-fun |expr_18_0| () Int)
|
|
||||||
(declare-fun |expr_19_0| () Int)
|
|
||||||
(declare-fun |expr_20_1| () Int)
|
|
||||||
(declare-fun |expr_21_0| () Int)
|
|
||||||
(declare-fun |expr_22_0| () Int)
|
|
||||||
(declare-fun |expr_23_1| () Int)
|
|
||||||
(declare-datatypes ((|tuple(uint256,uint256)| 0)) (((|tuple(uint256,uint256)| (|tuple(uint256,uint256)_accessor_0| Int) (|tuple(uint256,uint256)_accessor_1| Int)))))
|
|
||||||
(declare-fun |expr_24_1| () |tuple(uint256,uint256)|)
|
|
||||||
(declare-fun |_8_1| () Int)
|
|
||||||
(declare-fun |_10_1| () Int)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (=> (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 b_5_0) (and (=> (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 a_3_0) (and (=> (and true true) expr_15_1) (and (= expr_15_1 (not (= expr_13_0 expr_14_0))) (and (=> (and true true) true) (and (= expr_14_0 0) (and (=> (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 b_5_0) (and (= _10_0 0) (and (= _8_0 0) (and (and (>= b_5_0 0) (<= b_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_3_0 0) (<= a_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 332507694)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 19)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 209)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 170)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 46)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))) (= expr_19_0 0)))
|
|
||||||
(declare-const |EVALEXPR_0| Int)
|
|
||||||
(assert (= |EVALEXPR_0| a_3_0))
|
|
||||||
(declare-const |EVALEXPR_1| Int)
|
|
||||||
(assert (= |EVALEXPR_1| b_5_0))
|
|
||||||
(declare-const |EVALEXPR_2| Int)
|
|
||||||
(assert (= |EVALEXPR_2| _8_0))
|
|
||||||
(declare-const |EVALEXPR_3| Int)
|
|
||||||
(assert (= |EVALEXPR_3| _10_0))
|
|
||||||
(declare-const |EVALEXPR_4| Int)
|
|
||||||
(assert (= |EVALEXPR_4| expr_19_0))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| |EVALEXPR_3| |EVALEXPR_4| ))
|
|
||||||
",
|
|
||||||
"0x5d07befb0482a6d4e328641d57f10a2cbc89b2c287f8d5630bbe20ba4f829e7d": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |a_3_3| () Int)
|
|
||||||
(declare-fun |b_5_3| () Int)
|
|
||||||
(declare-fun |_8_3| () Int)
|
|
||||||
(declare-fun |_10_3| () Int)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |a_3_4| () Int)
|
|
||||||
(declare-fun |b_5_4| () Int)
|
|
||||||
(declare-fun |_8_4| () Int)
|
|
||||||
(declare-fun |_10_4| () Int)
|
|
||||||
(declare-fun |a_3_0| () Int)
|
|
||||||
(declare-fun |b_5_0| () Int)
|
|
||||||
(declare-fun |_8_0| () Int)
|
|
||||||
(declare-fun |_10_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_0| () Int)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
(declare-fun |expr_18_0| () Int)
|
|
||||||
(declare-fun |expr_19_0| () Int)
|
|
||||||
(declare-fun |expr_20_1| () Int)
|
|
||||||
(declare-fun |expr_21_0| () Int)
|
|
||||||
(declare-fun |expr_22_0| () Int)
|
|
||||||
(declare-fun |expr_23_1| () Int)
|
|
||||||
(declare-datatypes ((|tuple(uint256,uint256)| 0)) (((|tuple(uint256,uint256)| (|tuple(uint256,uint256)_accessor_0| Int) (|tuple(uint256,uint256)_accessor_1| Int)))))
|
|
||||||
(declare-fun |expr_24_1| () |tuple(uint256,uint256)|)
|
|
||||||
(declare-fun |_8_1| () Int)
|
|
||||||
(declare-fun |_10_1| () Int)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (=> (and true true) (and (>= expr_22_0 0) (<= expr_22_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_22_0 b_5_0) (and (=> (and true true) (and (>= expr_21_0 0) (<= expr_21_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_21_0 a_3_0) (and (=> (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (div expr_18_0 expr_19_0)) (and (=> (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 b_5_0) (and (=> (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 a_3_0) (and (=> (and true true) expr_15_1) (and (= expr_15_1 (not (= expr_13_0 expr_14_0))) (and (=> (and true true) true) (and (= expr_14_0 0) (and (=> (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 b_5_0) (and (= _10_0 0) (and (= _8_0 0) (and (and (>= b_5_0 0) (<= b_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_3_0 0) (<= a_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 332507694)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 19)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 209)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 170)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 46)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))))) (= expr_22_0 0)))
|
|
||||||
(declare-const |EVALEXPR_0| Int)
|
|
||||||
(assert (= |EVALEXPR_0| a_3_0))
|
|
||||||
(declare-const |EVALEXPR_1| Int)
|
|
||||||
(assert (= |EVALEXPR_1| b_5_0))
|
|
||||||
(declare-const |EVALEXPR_2| Int)
|
|
||||||
(assert (= |EVALEXPR_2| _8_0))
|
|
||||||
(declare-const |EVALEXPR_3| Int)
|
|
||||||
(assert (= |EVALEXPR_3| _10_0))
|
|
||||||
(declare-const |EVALEXPR_4| Int)
|
|
||||||
(assert (= |EVALEXPR_4| expr_22_0))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| |EVALEXPR_3| |EVALEXPR_4| ))
|
|
||||||
",
|
|
||||||
"0x72b32f47722af7f889ab5740b229c1799f27d0a693995a581c00f65438255a15": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |a_3_3| () Int)
|
|
||||||
(declare-fun |b_5_3| () Int)
|
|
||||||
(declare-fun |_8_3| () Int)
|
|
||||||
(declare-fun |_10_3| () Int)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |a_3_4| () Int)
|
|
||||||
(declare-fun |b_5_4| () Int)
|
|
||||||
(declare-fun |_8_4| () Int)
|
|
||||||
(declare-fun |_10_4| () Int)
|
|
||||||
(declare-fun |a_3_0| () Int)
|
|
||||||
(declare-fun |b_5_0| () Int)
|
|
||||||
(declare-fun |_8_0| () Int)
|
|
||||||
(declare-fun |_10_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_0| () Int)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_1 (not (= expr_13_0 expr_14_0))) (and (=> (and true true) true) (and (= expr_14_0 0) (and (=> (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 b_5_0) (and (= _10_0 0) (and (= _8_0 0) (and (and (>= b_5_0 0) (<= b_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_3_0 0) (<= a_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 332507694)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 19)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 209)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 170)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 46)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) (not expr_15_1)))
|
|
||||||
(check-sat)
|
|
||||||
",
|
|
||||||
"0x825b322db572f1c2705128460f2af503aeeb571f1c2e15207ce4fd0355accee6": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |a_3_3| () Int)
|
|
||||||
(declare-fun |b_5_3| () Int)
|
|
||||||
(declare-fun |_8_3| () Int)
|
|
||||||
(declare-fun |_10_3| () Int)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |a_3_4| () Int)
|
|
||||||
(declare-fun |b_5_4| () Int)
|
|
||||||
(declare-fun |_8_4| () Int)
|
|
||||||
(declare-fun |_10_4| () Int)
|
|
||||||
(declare-fun |a_3_0| () Int)
|
|
||||||
(declare-fun |b_5_0| () Int)
|
|
||||||
(declare-fun |_8_0| () Int)
|
|
||||||
(declare-fun |_10_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_0| () Int)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_1 (not (= expr_13_0 expr_14_0))) (and (=> (and true true) true) (and (= expr_14_0 0) (and (=> (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 b_5_0) (and (= _10_0 0) (and (= _8_0 0) (and (and (>= b_5_0 0) (<= b_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_3_0 0) (<= a_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 332507694)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 19)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 209)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 170)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 46)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) expr_15_1))
|
|
||||||
(check-sat)
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"errors":
|
"errors":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
@ -1,152 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0x615d3f7e7a864c5b3fa9663d698ad3525d0345fa9b53c171d86493beded9023b": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |a_3_0| () Int)
|
|
||||||
(declare-fun |b_5_0| () Int)
|
|
||||||
(declare-fun |_8_0| () Int)
|
|
||||||
(declare-fun |_10_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_0| () Int)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_1 (not (= expr_13_0 expr_14_0))) (and (=> (and true true) true) (and (= expr_14_0 0) (and (=> (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 b_5_0) (and (= _10_0 0) (and (= _8_0 0) (and (and (>= b_5_0 0) (<= b_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_3_0 0) (<= a_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 332507694)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 19)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 209)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 170)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 46)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) (not expr_15_1)))
|
|
||||||
(check-sat)
|
|
||||||
",
|
|
||||||
"0x769f12e07b77225b4e96b3031839452b89976583e45e7924b8bf82ca53a0dd45": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |a_3_0| () Int)
|
|
||||||
(declare-fun |b_5_0| () Int)
|
|
||||||
(declare-fun |_8_0| () Int)
|
|
||||||
(declare-fun |_10_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_0| () Int)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_1 (not (= expr_13_0 expr_14_0))) (and (=> (and true true) true) (and (= expr_14_0 0) (and (=> (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 b_5_0) (and (= _10_0 0) (and (= _8_0 0) (and (and (>= b_5_0 0) (<= b_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_3_0 0) (<= a_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 332507694)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 19)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 209)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 170)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 46)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) expr_15_1))
|
|
||||||
(check-sat)
|
|
||||||
",
|
|
||||||
"0x7eae514917329522604efe7292b9036d26ff191c3e65dfa51c727b3e7427c10b": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |a_3_0| () Int)
|
|
||||||
(declare-fun |b_5_0| () Int)
|
|
||||||
(declare-fun |_8_0| () Int)
|
|
||||||
(declare-fun |_10_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_0| () Int)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
(declare-fun |expr_18_0| () Int)
|
|
||||||
(declare-fun |expr_19_0| () Int)
|
|
||||||
(declare-fun |expr_20_1| () Int)
|
|
||||||
(declare-fun |expr_21_0| () Int)
|
|
||||||
(declare-fun |expr_22_0| () Int)
|
|
||||||
(declare-fun |expr_23_1| () Int)
|
|
||||||
(declare-datatypes ((|tuple(uint256,uint256)| 0)) (((|tuple(uint256,uint256)| (|tuple(uint256,uint256)_accessor_0| Int) (|tuple(uint256,uint256)_accessor_1| Int)))))
|
|
||||||
(declare-fun |expr_24_1| () |tuple(uint256,uint256)|)
|
|
||||||
(declare-fun |_8_1| () Int)
|
|
||||||
(declare-fun |_10_1| () Int)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (=> (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 b_5_0) (and (=> (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 a_3_0) (and (=> (and true true) expr_15_1) (and (= expr_15_1 (not (= expr_13_0 expr_14_0))) (and (=> (and true true) true) (and (= expr_14_0 0) (and (=> (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 b_5_0) (and (= _10_0 0) (and (= _8_0 0) (and (and (>= b_5_0 0) (<= b_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_3_0 0) (<= a_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 332507694)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 19)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 209)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 170)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 46)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))) (= expr_19_0 0)))
|
|
||||||
(declare-const |EVALEXPR_0| Int)
|
|
||||||
(assert (= |EVALEXPR_0| a_3_0))
|
|
||||||
(declare-const |EVALEXPR_1| Int)
|
|
||||||
(assert (= |EVALEXPR_1| b_5_0))
|
|
||||||
(declare-const |EVALEXPR_2| Int)
|
|
||||||
(assert (= |EVALEXPR_2| _8_0))
|
|
||||||
(declare-const |EVALEXPR_3| Int)
|
|
||||||
(assert (= |EVALEXPR_3| _10_0))
|
|
||||||
(declare-const |EVALEXPR_4| Int)
|
|
||||||
(assert (= |EVALEXPR_4| expr_19_0))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| |EVALEXPR_3| |EVALEXPR_4| ))
|
|
||||||
",
|
|
||||||
"0xda96cf77e7e434e73e6c4dd847b2e0aa96dbdebf7a585f884ff024246977d02a": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |a_3_0| () Int)
|
|
||||||
(declare-fun |b_5_0| () Int)
|
|
||||||
(declare-fun |_8_0| () Int)
|
|
||||||
(declare-fun |_10_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_0| () Int)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
(declare-fun |expr_18_0| () Int)
|
|
||||||
(declare-fun |expr_19_0| () Int)
|
|
||||||
(declare-fun |expr_20_1| () Int)
|
|
||||||
(declare-fun |expr_21_0| () Int)
|
|
||||||
(declare-fun |expr_22_0| () Int)
|
|
||||||
(declare-fun |expr_23_1| () Int)
|
|
||||||
(declare-datatypes ((|tuple(uint256,uint256)| 0)) (((|tuple(uint256,uint256)| (|tuple(uint256,uint256)_accessor_0| Int) (|tuple(uint256,uint256)_accessor_1| Int)))))
|
|
||||||
(declare-fun |expr_24_1| () |tuple(uint256,uint256)|)
|
|
||||||
(declare-fun |_8_1| () Int)
|
|
||||||
(declare-fun |_10_1| () Int)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (=> (and true true) (and (>= expr_22_0 0) (<= expr_22_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_22_0 b_5_0) (and (=> (and true true) (and (>= expr_21_0 0) (<= expr_21_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_21_0 a_3_0) (and (=> (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (div expr_18_0 expr_19_0)) (and (=> (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 b_5_0) (and (=> (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 a_3_0) (and (=> (and true true) expr_15_1) (and (= expr_15_1 (not (= expr_13_0 expr_14_0))) (and (=> (and true true) true) (and (= expr_14_0 0) (and (=> (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 b_5_0) (and (= _10_0 0) (and (= _8_0 0) (and (and (>= b_5_0 0) (<= b_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_3_0 0) (<= a_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 332507694)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 19)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 209)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 170)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 46)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))))) (= expr_22_0 0)))
|
|
||||||
(declare-const |EVALEXPR_0| Int)
|
|
||||||
(assert (= |EVALEXPR_0| a_3_0))
|
|
||||||
(declare-const |EVALEXPR_1| Int)
|
|
||||||
(assert (= |EVALEXPR_1| b_5_0))
|
|
||||||
(declare-const |EVALEXPR_2| Int)
|
|
||||||
(assert (= |EVALEXPR_2| _8_0))
|
|
||||||
(declare-const |EVALEXPR_3| Int)
|
|
||||||
(assert (= |EVALEXPR_3| _10_0))
|
|
||||||
(declare-const |EVALEXPR_4| Int)
|
|
||||||
(assert (= |EVALEXPR_4| expr_22_0))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| |EVALEXPR_3| |EVALEXPR_4| ))
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"sources":
|
"sources":
|
||||||
{
|
{
|
||||||
"A":
|
"A":
|
||||||
|
@ -1,35 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0x7fe5be7672be6bc9bc2b750f3170bfa08ecd79fc95afb084539b74294c2dd24d": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |x_3_0| () Int)
|
|
||||||
(declare-fun |expr_7_0| () Int)
|
|
||||||
(declare-fun |expr_8_0| () Int)
|
|
||||||
(declare-fun |expr_9_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_9_1 (> expr_7_0 expr_8_0)) (and (=> (and true true) true) (and (= expr_8_0 0) (and (=> (and true true) (and (>= expr_7_0 0) (<= expr_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_7_0 x_3_0) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 3017696395)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 179)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 222)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 100)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 139)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))) (not expr_9_1)))
|
|
||||||
(declare-const |EVALEXPR_0| Int)
|
|
||||||
(assert (= |EVALEXPR_0| x_3_0))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| ))
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"errors":
|
"errors":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
@ -1,110 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0x4cd81a462deca8d6bf08b33a7f5bce9cf9306c7ee90b83c106ca7927066a23b1": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-datatypes ((|struct test.S| 0)) (((|struct test.S| (|struct test.S_accessor_x| Int)))))
|
|
||||||
(declare-fun |s_7_3| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_3| () Bool)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |s_7_4| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_4| () Bool)
|
|
||||||
(declare-fun |s_7_0| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_0| () Bool)
|
|
||||||
(declare-fun |s_7_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_15_0| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_0 b_9_0) (and true (and true (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 2562959041)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 152)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 195)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 166)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))) (not expr_15_0)))
|
|
||||||
(check-sat)
|
|
||||||
",
|
|
||||||
"0x65d23088fadc165b70d1947e1ba5191db247c8c5fab4e23d292c1168e94b4784": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-datatypes ((|struct test.S| 0)) (((|struct test.S| (|struct test.S_accessor_x| Int)))))
|
|
||||||
(declare-fun |s_7_3| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_3| () Bool)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |s_7_4| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_4| () Bool)
|
|
||||||
(declare-fun |s_7_0| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_0| () Bool)
|
|
||||||
(declare-fun |s_7_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_15_0| () Bool)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
(declare-fun |expr_16_0| () Int)
|
|
||||||
(declare-fun |expr_17_0| () Int)
|
|
||||||
(declare-fun |expr_18_0| () Int)
|
|
||||||
(declare-fun |expr_12_0| () |struct test.S|)
|
|
||||||
(declare-fun |expr_14_1| () Int)
|
|
||||||
(declare-fun |expr_19_1| () Int)
|
|
||||||
(declare-fun |expr_12_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_12_2| () |struct test.S|)
|
|
||||||
(declare-fun |expr_14_2| () Int)
|
|
||||||
(declare-fun |s_7_2| () |struct test.S|)
|
|
||||||
(declare-fun |expr_12_3| () |struct test.S|)
|
|
||||||
(declare-fun |expr_22_0| () |struct test.S|)
|
|
||||||
(declare-fun |expr_23_1| () Int)
|
|
||||||
(declare-fun |expr_24_0| () Int)
|
|
||||||
(declare-fun |expr_25_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_25_1 (> expr_23_1 expr_24_0)) (and (=> (and true true) true) (and (= expr_24_0 0) (and (=> (and true true) (and (>= expr_23_1 0) (<= expr_23_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_23_1 (|struct test.S_accessor_x| expr_22_0)) (and (= expr_22_0 s_7_2) (and (= expr_12_3 s_7_2) (and (ite (and true true) (= s_7_2 expr_12_2) (= s_7_2 s_7_1)) (and (=> (and true true) (and (>= expr_14_2 0) (<= expr_14_2 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_14_2 (|struct test.S_accessor_x| expr_12_2)) (and (= (|struct test.S_accessor_x| expr_12_2) expr_19_1) (and (= expr_12_1 s_7_1) (and (=> (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (bv2nat (bvor (ite (>= expr_14_1 0) ((_ int2bv 256) expr_14_1) (bvneg ((_ int2bv 256) (- expr_14_1)))) (ite (>= expr_18_0 0) ((_ int2bv 256) expr_18_0) (bvneg ((_ int2bv 256) (- expr_18_0))))))) (and (=> (and true true) (and (>= expr_14_1 0) (<= expr_14_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_14_1 (|struct test.S_accessor_x| expr_12_0)) (and (= expr_12_0 s_7_1) (and (=> (and true true) (and (>= expr_18_0 0) (<= expr_18_0 255))) (and (= expr_18_0 (ite expr_15_1 expr_16_0 expr_17_0)) (and (=> (and (and true true) (not expr_15_1)) true) (and (= expr_17_0 2) (and (=> (and (and true true) expr_15_1) true) (and (= expr_16_0 1) (and (= expr_15_1 b_9_0) (and true (and true (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 2562959041)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 152)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 195)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 166)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))))))))))) (not expr_25_1)))
|
|
||||||
(declare-const |EVALEXPR_0| Bool)
|
|
||||||
(assert (= |EVALEXPR_0| b_9_0))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| ))
|
|
||||||
",
|
|
||||||
"0xd6dbbd7b7e45b0360943223d07028611980d896347710102f264ffa0ae086fad": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-datatypes ((|struct test.S| 0)) (((|struct test.S| (|struct test.S_accessor_x| Int)))))
|
|
||||||
(declare-fun |s_7_3| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_3| () Bool)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |s_7_4| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_4| () Bool)
|
|
||||||
(declare-fun |s_7_0| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_0| () Bool)
|
|
||||||
(declare-fun |s_7_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_15_0| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_0 b_9_0) (and true (and true (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 2562959041)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 152)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 195)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 166)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))) expr_15_0))
|
|
||||||
(check-sat)
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"errors":
|
"errors":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
@ -1,110 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0x4cd81a462deca8d6bf08b33a7f5bce9cf9306c7ee90b83c106ca7927066a23b1": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-datatypes ((|struct test.S| 0)) (((|struct test.S| (|struct test.S_accessor_x| Int)))))
|
|
||||||
(declare-fun |s_7_3| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_3| () Bool)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |s_7_4| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_4| () Bool)
|
|
||||||
(declare-fun |s_7_0| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_0| () Bool)
|
|
||||||
(declare-fun |s_7_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_15_0| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_0 b_9_0) (and true (and true (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 2562959041)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 152)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 195)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 166)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))) (not expr_15_0)))
|
|
||||||
(check-sat)
|
|
||||||
",
|
|
||||||
"0x65d23088fadc165b70d1947e1ba5191db247c8c5fab4e23d292c1168e94b4784": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-datatypes ((|struct test.S| 0)) (((|struct test.S| (|struct test.S_accessor_x| Int)))))
|
|
||||||
(declare-fun |s_7_3| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_3| () Bool)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |s_7_4| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_4| () Bool)
|
|
||||||
(declare-fun |s_7_0| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_0| () Bool)
|
|
||||||
(declare-fun |s_7_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_15_0| () Bool)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
(declare-fun |expr_16_0| () Int)
|
|
||||||
(declare-fun |expr_17_0| () Int)
|
|
||||||
(declare-fun |expr_18_0| () Int)
|
|
||||||
(declare-fun |expr_12_0| () |struct test.S|)
|
|
||||||
(declare-fun |expr_14_1| () Int)
|
|
||||||
(declare-fun |expr_19_1| () Int)
|
|
||||||
(declare-fun |expr_12_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_12_2| () |struct test.S|)
|
|
||||||
(declare-fun |expr_14_2| () Int)
|
|
||||||
(declare-fun |s_7_2| () |struct test.S|)
|
|
||||||
(declare-fun |expr_12_3| () |struct test.S|)
|
|
||||||
(declare-fun |expr_22_0| () |struct test.S|)
|
|
||||||
(declare-fun |expr_23_1| () Int)
|
|
||||||
(declare-fun |expr_24_0| () Int)
|
|
||||||
(declare-fun |expr_25_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_25_1 (> expr_23_1 expr_24_0)) (and (=> (and true true) true) (and (= expr_24_0 0) (and (=> (and true true) (and (>= expr_23_1 0) (<= expr_23_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_23_1 (|struct test.S_accessor_x| expr_22_0)) (and (= expr_22_0 s_7_2) (and (= expr_12_3 s_7_2) (and (ite (and true true) (= s_7_2 expr_12_2) (= s_7_2 s_7_1)) (and (=> (and true true) (and (>= expr_14_2 0) (<= expr_14_2 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_14_2 (|struct test.S_accessor_x| expr_12_2)) (and (= (|struct test.S_accessor_x| expr_12_2) expr_19_1) (and (= expr_12_1 s_7_1) (and (=> (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (bv2nat (bvor (ite (>= expr_14_1 0) ((_ int2bv 256) expr_14_1) (bvneg ((_ int2bv 256) (- expr_14_1)))) (ite (>= expr_18_0 0) ((_ int2bv 256) expr_18_0) (bvneg ((_ int2bv 256) (- expr_18_0))))))) (and (=> (and true true) (and (>= expr_14_1 0) (<= expr_14_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_14_1 (|struct test.S_accessor_x| expr_12_0)) (and (= expr_12_0 s_7_1) (and (=> (and true true) (and (>= expr_18_0 0) (<= expr_18_0 255))) (and (= expr_18_0 (ite expr_15_1 expr_16_0 expr_17_0)) (and (=> (and (and true true) (not expr_15_1)) true) (and (= expr_17_0 2) (and (=> (and (and true true) expr_15_1) true) (and (= expr_16_0 1) (and (= expr_15_1 b_9_0) (and true (and true (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 2562959041)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 152)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 195)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 166)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))))))))))) (not expr_25_1)))
|
|
||||||
(declare-const |EVALEXPR_0| Bool)
|
|
||||||
(assert (= |EVALEXPR_0| b_9_0))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| ))
|
|
||||||
",
|
|
||||||
"0xd6dbbd7b7e45b0360943223d07028611980d896347710102f264ffa0ae086fad": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-datatypes ((|struct test.S| 0)) (((|struct test.S| (|struct test.S_accessor_x| Int)))))
|
|
||||||
(declare-fun |s_7_3| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_3| () Bool)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |s_7_4| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_4| () Bool)
|
|
||||||
(declare-fun |s_7_0| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_0| () Bool)
|
|
||||||
(declare-fun |s_7_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_15_0| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_0 b_9_0) (and true (and true (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 2562959041)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 152)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 195)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 166)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))) expr_15_0))
|
|
||||||
(check-sat)
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"errors":
|
"errors":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
@ -1,98 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0x5953b22204605efc775a59974aec3ddf9f831e46e30a65e149873e6f48887590": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-datatypes ((|struct test.S| 0)) (((|struct test.S| (|struct test.S_accessor_x| Int)))))
|
|
||||||
(declare-fun |s_7_0| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_0| () Bool)
|
|
||||||
(declare-fun |s_7_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_15_0| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_0 b_9_0) (and true (and true (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 2562959041)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 152)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 195)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 166)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))) (not expr_15_0)))
|
|
||||||
(check-sat)
|
|
||||||
",
|
|
||||||
"0x84635fcc37e5318fb46619945199a333750ee247769e97445a2f89b98b54fef9": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-datatypes ((|struct test.S| 0)) (((|struct test.S| (|struct test.S_accessor_x| Int)))))
|
|
||||||
(declare-fun |s_7_0| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_0| () Bool)
|
|
||||||
(declare-fun |s_7_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_15_0| () Bool)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
(declare-fun |expr_16_0| () Int)
|
|
||||||
(declare-fun |expr_17_0| () Int)
|
|
||||||
(declare-fun |expr_18_0| () Int)
|
|
||||||
(declare-fun |expr_12_0| () |struct test.S|)
|
|
||||||
(declare-fun |expr_14_1| () Int)
|
|
||||||
(declare-fun |expr_19_1| () Int)
|
|
||||||
(declare-fun |expr_12_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_12_2| () |struct test.S|)
|
|
||||||
(declare-fun |expr_14_2| () Int)
|
|
||||||
(declare-fun |s_7_2| () |struct test.S|)
|
|
||||||
(declare-fun |expr_12_3| () |struct test.S|)
|
|
||||||
(declare-fun |expr_22_0| () |struct test.S|)
|
|
||||||
(declare-fun |expr_23_1| () Int)
|
|
||||||
(declare-fun |expr_24_0| () Int)
|
|
||||||
(declare-fun |expr_25_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_25_1 (> expr_23_1 expr_24_0)) (and (=> (and true true) true) (and (= expr_24_0 0) (and (=> (and true true) (and (>= expr_23_1 0) (<= expr_23_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_23_1 (|struct test.S_accessor_x| expr_22_0)) (and (= expr_22_0 s_7_2) (and (= expr_12_3 s_7_2) (and (ite (and true true) (= s_7_2 expr_12_2) (= s_7_2 s_7_1)) (and (=> (and true true) (and (>= expr_14_2 0) (<= expr_14_2 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_14_2 (|struct test.S_accessor_x| expr_12_2)) (and (= (|struct test.S_accessor_x| expr_12_2) expr_19_1) (and (= expr_12_1 s_7_1) (and (=> (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (bv2nat (bvor (ite (>= expr_14_1 0) ((_ int2bv 256) expr_14_1) (bvneg ((_ int2bv 256) (- expr_14_1)))) (ite (>= expr_18_0 0) ((_ int2bv 256) expr_18_0) (bvneg ((_ int2bv 256) (- expr_18_0))))))) (and (=> (and true true) (and (>= expr_14_1 0) (<= expr_14_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_14_1 (|struct test.S_accessor_x| expr_12_0)) (and (= expr_12_0 s_7_1) (and (=> (and true true) (and (>= expr_18_0 0) (<= expr_18_0 255))) (and (= expr_18_0 (ite expr_15_1 expr_16_0 expr_17_0)) (and (=> (and (and true true) (not expr_15_1)) true) (and (= expr_17_0 2) (and (=> (and (and true true) expr_15_1) true) (and (= expr_16_0 1) (and (= expr_15_1 b_9_0) (and true (and true (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 2562959041)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 152)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 195)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 166)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))))))))))) (not expr_25_1)))
|
|
||||||
(declare-const |EVALEXPR_0| Bool)
|
|
||||||
(assert (= |EVALEXPR_0| b_9_0))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| ))
|
|
||||||
",
|
|
||||||
"0xd55ef003dcd6e8ebbd55fce4adaa36b4d898204d649e5426179dea4b7450a9f5": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-datatypes ((|struct test.S| 0)) (((|struct test.S| (|struct test.S_accessor_x| Int)))))
|
|
||||||
(declare-fun |s_7_0| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_0| () Bool)
|
|
||||||
(declare-fun |s_7_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_15_0| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_0 b_9_0) (and true (and true (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 2562959041)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 152)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 195)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 166)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))) expr_15_0))
|
|
||||||
(check-sat)
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"errors":
|
"errors":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
@ -1,110 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0x4cd81a462deca8d6bf08b33a7f5bce9cf9306c7ee90b83c106ca7927066a23b1": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-datatypes ((|struct test.S| 0)) (((|struct test.S| (|struct test.S_accessor_x| Int)))))
|
|
||||||
(declare-fun |s_7_3| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_3| () Bool)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |s_7_4| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_4| () Bool)
|
|
||||||
(declare-fun |s_7_0| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_0| () Bool)
|
|
||||||
(declare-fun |s_7_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_15_0| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_0 b_9_0) (and true (and true (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 2562959041)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 152)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 195)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 166)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))) (not expr_15_0)))
|
|
||||||
(check-sat)
|
|
||||||
",
|
|
||||||
"0x65d23088fadc165b70d1947e1ba5191db247c8c5fab4e23d292c1168e94b4784": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-datatypes ((|struct test.S| 0)) (((|struct test.S| (|struct test.S_accessor_x| Int)))))
|
|
||||||
(declare-fun |s_7_3| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_3| () Bool)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |s_7_4| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_4| () Bool)
|
|
||||||
(declare-fun |s_7_0| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_0| () Bool)
|
|
||||||
(declare-fun |s_7_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_15_0| () Bool)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
(declare-fun |expr_16_0| () Int)
|
|
||||||
(declare-fun |expr_17_0| () Int)
|
|
||||||
(declare-fun |expr_18_0| () Int)
|
|
||||||
(declare-fun |expr_12_0| () |struct test.S|)
|
|
||||||
(declare-fun |expr_14_1| () Int)
|
|
||||||
(declare-fun |expr_19_1| () Int)
|
|
||||||
(declare-fun |expr_12_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_12_2| () |struct test.S|)
|
|
||||||
(declare-fun |expr_14_2| () Int)
|
|
||||||
(declare-fun |s_7_2| () |struct test.S|)
|
|
||||||
(declare-fun |expr_12_3| () |struct test.S|)
|
|
||||||
(declare-fun |expr_22_0| () |struct test.S|)
|
|
||||||
(declare-fun |expr_23_1| () Int)
|
|
||||||
(declare-fun |expr_24_0| () Int)
|
|
||||||
(declare-fun |expr_25_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_25_1 (> expr_23_1 expr_24_0)) (and (=> (and true true) true) (and (= expr_24_0 0) (and (=> (and true true) (and (>= expr_23_1 0) (<= expr_23_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_23_1 (|struct test.S_accessor_x| expr_22_0)) (and (= expr_22_0 s_7_2) (and (= expr_12_3 s_7_2) (and (ite (and true true) (= s_7_2 expr_12_2) (= s_7_2 s_7_1)) (and (=> (and true true) (and (>= expr_14_2 0) (<= expr_14_2 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_14_2 (|struct test.S_accessor_x| expr_12_2)) (and (= (|struct test.S_accessor_x| expr_12_2) expr_19_1) (and (= expr_12_1 s_7_1) (and (=> (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (bv2nat (bvor (ite (>= expr_14_1 0) ((_ int2bv 256) expr_14_1) (bvneg ((_ int2bv 256) (- expr_14_1)))) (ite (>= expr_18_0 0) ((_ int2bv 256) expr_18_0) (bvneg ((_ int2bv 256) (- expr_18_0))))))) (and (=> (and true true) (and (>= expr_14_1 0) (<= expr_14_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_14_1 (|struct test.S_accessor_x| expr_12_0)) (and (= expr_12_0 s_7_1) (and (=> (and true true) (and (>= expr_18_0 0) (<= expr_18_0 255))) (and (= expr_18_0 (ite expr_15_1 expr_16_0 expr_17_0)) (and (=> (and (and true true) (not expr_15_1)) true) (and (= expr_17_0 2) (and (=> (and (and true true) expr_15_1) true) (and (= expr_16_0 1) (and (= expr_15_1 b_9_0) (and true (and true (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 2562959041)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 152)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 195)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 166)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))))))))))) (not expr_25_1)))
|
|
||||||
(declare-const |EVALEXPR_0| Bool)
|
|
||||||
(assert (= |EVALEXPR_0| b_9_0))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| ))
|
|
||||||
",
|
|
||||||
"0xd6dbbd7b7e45b0360943223d07028611980d896347710102f264ffa0ae086fad": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-datatypes ((|struct test.S| 0)) (((|struct test.S| (|struct test.S_accessor_x| Int)))))
|
|
||||||
(declare-fun |s_7_3| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_3| () Bool)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |s_7_4| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_4| () Bool)
|
|
||||||
(declare-fun |s_7_0| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_0| () Bool)
|
|
||||||
(declare-fun |s_7_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_15_0| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_0 b_9_0) (and true (and true (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 2562959041)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 152)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 195)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 166)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))) expr_15_0))
|
|
||||||
(check-sat)
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"errors":
|
"errors":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
@ -1,98 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0x5953b22204605efc775a59974aec3ddf9f831e46e30a65e149873e6f48887590": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-datatypes ((|struct test.S| 0)) (((|struct test.S| (|struct test.S_accessor_x| Int)))))
|
|
||||||
(declare-fun |s_7_0| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_0| () Bool)
|
|
||||||
(declare-fun |s_7_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_15_0| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_0 b_9_0) (and true (and true (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 2562959041)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 152)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 195)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 166)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))) (not expr_15_0)))
|
|
||||||
(check-sat)
|
|
||||||
",
|
|
||||||
"0x84635fcc37e5318fb46619945199a333750ee247769e97445a2f89b98b54fef9": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-datatypes ((|struct test.S| 0)) (((|struct test.S| (|struct test.S_accessor_x| Int)))))
|
|
||||||
(declare-fun |s_7_0| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_0| () Bool)
|
|
||||||
(declare-fun |s_7_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_15_0| () Bool)
|
|
||||||
(declare-fun |expr_15_1| () Bool)
|
|
||||||
(declare-fun |expr_16_0| () Int)
|
|
||||||
(declare-fun |expr_17_0| () Int)
|
|
||||||
(declare-fun |expr_18_0| () Int)
|
|
||||||
(declare-fun |expr_12_0| () |struct test.S|)
|
|
||||||
(declare-fun |expr_14_1| () Int)
|
|
||||||
(declare-fun |expr_19_1| () Int)
|
|
||||||
(declare-fun |expr_12_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_12_2| () |struct test.S|)
|
|
||||||
(declare-fun |expr_14_2| () Int)
|
|
||||||
(declare-fun |s_7_2| () |struct test.S|)
|
|
||||||
(declare-fun |expr_12_3| () |struct test.S|)
|
|
||||||
(declare-fun |expr_22_0| () |struct test.S|)
|
|
||||||
(declare-fun |expr_23_1| () Int)
|
|
||||||
(declare-fun |expr_24_0| () Int)
|
|
||||||
(declare-fun |expr_25_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_25_1 (> expr_23_1 expr_24_0)) (and (=> (and true true) true) (and (= expr_24_0 0) (and (=> (and true true) (and (>= expr_23_1 0) (<= expr_23_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_23_1 (|struct test.S_accessor_x| expr_22_0)) (and (= expr_22_0 s_7_2) (and (= expr_12_3 s_7_2) (and (ite (and true true) (= s_7_2 expr_12_2) (= s_7_2 s_7_1)) (and (=> (and true true) (and (>= expr_14_2 0) (<= expr_14_2 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_14_2 (|struct test.S_accessor_x| expr_12_2)) (and (= (|struct test.S_accessor_x| expr_12_2) expr_19_1) (and (= expr_12_1 s_7_1) (and (=> (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (bv2nat (bvor (ite (>= expr_14_1 0) ((_ int2bv 256) expr_14_1) (bvneg ((_ int2bv 256) (- expr_14_1)))) (ite (>= expr_18_0 0) ((_ int2bv 256) expr_18_0) (bvneg ((_ int2bv 256) (- expr_18_0))))))) (and (=> (and true true) (and (>= expr_14_1 0) (<= expr_14_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_14_1 (|struct test.S_accessor_x| expr_12_0)) (and (= expr_12_0 s_7_1) (and (=> (and true true) (and (>= expr_18_0 0) (<= expr_18_0 255))) (and (= expr_18_0 (ite expr_15_1 expr_16_0 expr_17_0)) (and (=> (and (and true true) (not expr_15_1)) true) (and (= expr_17_0 2) (and (=> (and (and true true) expr_15_1) true) (and (= expr_16_0 1) (and (= expr_15_1 b_9_0) (and true (and true (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 2562959041)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 152)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 195)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 166)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))))))))))) (not expr_25_1)))
|
|
||||||
(declare-const |EVALEXPR_0| Bool)
|
|
||||||
(assert (= |EVALEXPR_0| b_9_0))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| ))
|
|
||||||
",
|
|
||||||
"0xd55ef003dcd6e8ebbd55fce4adaa36b4d898204d649e5426179dea4b7450a9f5": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-datatypes ((|struct test.S| 0)) (((|struct test.S| (|struct test.S_accessor_x| Int)))))
|
|
||||||
(declare-fun |s_7_0| () |struct test.S|)
|
|
||||||
(declare-fun |b_9_0| () Bool)
|
|
||||||
(declare-fun |s_7_1| () |struct test.S|)
|
|
||||||
(declare-fun |expr_15_0| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_15_0 b_9_0) (and true (and true (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 2562959041)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 152)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 195)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 166)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))) expr_15_0))
|
|
||||||
(check-sat)
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"errors":
|
"errors":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
"language": "Solidity",
|
|
||||||
"sources":
|
|
||||||
{
|
|
||||||
"A":
|
|
||||||
{
|
|
||||||
"content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract C { function f(uint x) public pure { assert(x > 0); } }"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"settings":
|
|
||||||
{
|
|
||||||
"modelChecker":
|
|
||||||
{
|
|
||||||
"engine": "all"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,46 +0,0 @@
|
|||||||
{
|
|
||||||
"errors":
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"component": "general",
|
|
||||||
"errorCode": "6328",
|
|
||||||
"formattedMessage": "Warning: CHC: Assertion violation happens here.
|
|
||||||
Counterexample:
|
|
||||||
|
|
||||||
x = 0
|
|
||||||
|
|
||||||
Transaction trace:
|
|
||||||
C.constructor()
|
|
||||||
C.f(0)
|
|
||||||
--> A:4:47:
|
|
||||||
|
|
|
||||||
4 | contract C { function f(uint x) public pure { assert(x > 0); } }
|
|
||||||
| ^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
",
|
|
||||||
"message": "CHC: Assertion violation happens here.
|
|
||||||
Counterexample:
|
|
||||||
|
|
||||||
x = 0
|
|
||||||
|
|
||||||
Transaction trace:
|
|
||||||
C.constructor()
|
|
||||||
C.f(0)",
|
|
||||||
"severity": "warning",
|
|
||||||
"sourceLocation":
|
|
||||||
{
|
|
||||||
"end": 119,
|
|
||||||
"file": "A",
|
|
||||||
"start": 106
|
|
||||||
},
|
|
||||||
"type": "Warning"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"sources":
|
|
||||||
{
|
|
||||||
"A":
|
|
||||||
{
|
|
||||||
"id": 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -4,20 +4,20 @@
|
|||||||
{
|
{
|
||||||
"component": "general",
|
"component": "general",
|
||||||
"errorCode": "7649",
|
"errorCode": "7649",
|
||||||
"formattedMessage": "Warning: CHC analysis was not possible since no Horn solver was found and enabled.
|
"formattedMessage": "Warning: CHC analysis was not possible since no Horn solver was found and enabled. The accepted solvers for CHC are Eldarica and z3.
|
||||||
|
|
||||||
",
|
",
|
||||||
"message": "CHC analysis was not possible since no Horn solver was found and enabled.",
|
"message": "CHC analysis was not possible since no Horn solver was found and enabled. The accepted solvers for CHC are Eldarica and z3.",
|
||||||
"severity": "warning",
|
"severity": "warning",
|
||||||
"type": "Warning"
|
"type": "Warning"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"component": "general",
|
"component": "general",
|
||||||
"errorCode": "7710",
|
"errorCode": "7710",
|
||||||
"formattedMessage": "Warning: BMC analysis was not possible since no SMT solver was found and enabled.
|
"formattedMessage": "Warning: BMC analysis was not possible since no SMT solver was found and enabled. The accepted solvers for BMC are cvc4 and z3.
|
||||||
|
|
||||||
",
|
",
|
||||||
"message": "BMC analysis was not possible since no SMT solver was found and enabled.",
|
"message": "BMC analysis was not possible since no SMT solver was found and enabled. The accepted solvers for BMC are cvc4 and z3.",
|
||||||
"severity": "warning",
|
"severity": "warning",
|
||||||
"type": "Warning"
|
"type": "Warning"
|
||||||
}
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
@ -1,66 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0xa5a6f54f166338793f025832fad8408fccb5fa0ee7a8ab0cb4ed7ec5a8c034de": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-datatypes ((|uint_array_tuple| 0)) (((|uint_array_tuple| (|uint_array_tuple_accessor_array| (Array Int Int)) (|uint_array_tuple_accessor_length| Int)))))
|
|
||||||
(declare-fun |arr_4_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_0| () Int)
|
|
||||||
(declare-fun |x_8_0| () Int)
|
|
||||||
(declare-fun |arr_4_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_12_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_1| () Bool)
|
|
||||||
(declare-fun |expr_17_0| () Int)
|
|
||||||
(declare-fun |expr_18_1| () Int)
|
|
||||||
(declare-fun |x_8_1| () Int)
|
|
||||||
(declare-fun |expr_20_0| () Int)
|
|
||||||
(declare-fun |expr_25_1| () Int)
|
|
||||||
(declare-fun |expr_26_1| () Int)
|
|
||||||
(declare-fun |expr_28_0| () Int)
|
|
||||||
(declare-fun |expr_29_0| () Int)
|
|
||||||
(declare-fun |d_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |r_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |expr_30_1| () Int)
|
|
||||||
(declare-fun |expr_32_0| () Int)
|
|
||||||
(declare-fun |expr_35_0| () Int)
|
|
||||||
(declare-fun |state_1| () |state_type|)
|
|
||||||
(declare-fun |state_2| () |state_type|)
|
|
||||||
(declare-fun |state_3| () |state_type|)
|
|
||||||
(declare-fun |expr_39_0| () Int)
|
|
||||||
(declare-fun |expr_40_0| () Int)
|
|
||||||
(declare-fun |expr_41_1| () Bool)
|
|
||||||
(declare-fun |expr_44_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_44_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |arr_4_length_pair_2| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_49_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_50_0| () Int)
|
|
||||||
(declare-fun |expr_51_1| () Int)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (=> (and true true) (and (>= expr_35_0 0) (<= expr_35_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_35_0 x_8_1) (and (=> (and true true) (and (>= expr_32_0 0) (<= expr_32_0 1461501637330902918203684832716283019655932542975))) (and (= expr_32_0 a_6_0) (and (=> (and true true) (and (>= expr_30_1 0) (<= expr_30_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_30_1 (ite (= expr_29_0 0) 0 d_div_mod_0_0)) (and (and (<= 0 r_div_mod_0_0) (or (= expr_29_0 0) (< r_div_mod_0_0 expr_29_0))) (and (= (+ (* d_div_mod_0_0 expr_29_0) r_div_mod_0_0) expr_28_0) (and (=> (and true true) (and (>= expr_29_0 0) (<= expr_29_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_29_0 x_8_1) (and (=> (and true true) true) (and (= expr_28_0 2) (and (=> (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 (+ expr_20_0 expr_25_1)) (and (=> (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (=> (and true true) (and (>= expr_20_0 0) (<= expr_20_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_0 x_8_1) (and (ite (and true true) (= x_8_1 (- expr_17_0 1)) (= x_8_1 x_8_0)) (and (=> (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (=> (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (=> (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (=> (and true true) true) (and (= expr_13_0 0) (and (=> (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 x_8_0) (and (and (>= x_8_0 0) (<= x_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_6_0 0) (<= a_6_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint_array_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 1917212865)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 114)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 70)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 88)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))))))))))))))))) (< (select (|balances| state_0) this_0) expr_35_0)))
|
|
||||||
(declare-const |EVALEXPR_0| Int)
|
|
||||||
(assert (= |EVALEXPR_0| a_6_0))
|
|
||||||
(declare-const |EVALEXPR_1| Int)
|
|
||||||
(assert (= |EVALEXPR_1| x_8_1))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| |EVALEXPR_1| ))
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"errors":
|
"errors":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
@ -1,62 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0xca9972ec543d923e2e93a20db0b793a19de392a072a70371f575dbee55fe301c": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-datatypes ((|uint_array_tuple| 0)) (((|uint_array_tuple| (|uint_array_tuple_accessor_array| (Array Int Int)) (|uint_array_tuple_accessor_length| Int)))))
|
|
||||||
(declare-fun |arr_4_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_0| () Int)
|
|
||||||
(declare-fun |x_8_0| () Int)
|
|
||||||
(declare-fun |arr_4_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_12_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (=> (and true true) true) (and (= expr_13_0 0) (and (=> (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 x_8_0) (and (and (>= x_8_0 0) (<= x_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_6_0 0) (<= a_6_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint_array_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 1917212865)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 114)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 70)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 88)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))) (not expr_14_1)))
|
|
||||||
(check-sat)
|
|
||||||
",
|
|
||||||
"0xdda5d43b30361d8d706472ecb9bb78f49c5beb6ffe9eba3ff632d1cd5f17e317": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-datatypes ((|uint_array_tuple| 0)) (((|uint_array_tuple| (|uint_array_tuple_accessor_array| (Array Int Int)) (|uint_array_tuple_accessor_length| Int)))))
|
|
||||||
(declare-fun |arr_4_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_0| () Int)
|
|
||||||
(declare-fun |x_8_0| () Int)
|
|
||||||
(declare-fun |arr_4_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_12_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (=> (and true true) true) (and (= expr_13_0 0) (and (=> (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 x_8_0) (and (and (>= x_8_0 0) (<= x_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_6_0 0) (<= a_6_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint_array_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 1917212865)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 114)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 70)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 88)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))) expr_14_1))
|
|
||||||
(check-sat)
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"errors":
|
"errors":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
@ -1,138 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0x03d0edb825a4f6251a71019a2075e51c5d4fce6236dfaa9b24ed56309b4cb52e": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-datatypes ((|uint_array_tuple| 0)) (((|uint_array_tuple| (|uint_array_tuple_accessor_array| (Array Int Int)) (|uint_array_tuple_accessor_length| Int)))))
|
|
||||||
(declare-fun |arr_4_length_pair_2| () |uint_array_tuple|)
|
|
||||||
(declare-fun |arr_4_length_pair_3| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_3| () Int)
|
|
||||||
(declare-fun |x_8_3| () Int)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |arr_4_length_pair_4| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_4| () Int)
|
|
||||||
(declare-fun |x_8_4| () Int)
|
|
||||||
(declare-fun |arr_4_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_0| () Int)
|
|
||||||
(declare-fun |x_8_0| () Int)
|
|
||||||
(declare-fun |arr_4_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_12_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (=> (and true true) true) (and (= expr_13_0 0) (and (=> (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 x_8_0) (and (and (>= x_8_0 0) (<= x_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_6_0 0) (<= a_6_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint_array_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 1917212865)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 114)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 70)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 88)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))) (not expr_14_1)))
|
|
||||||
(check-sat)
|
|
||||||
",
|
|
||||||
"0xa7b2de16abc4c0f0f9e2c540a576178d99cb73a01cf0d0d1d62d51735c6d3b44": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-datatypes ((|uint_array_tuple| 0)) (((|uint_array_tuple| (|uint_array_tuple_accessor_array| (Array Int Int)) (|uint_array_tuple_accessor_length| Int)))))
|
|
||||||
(declare-fun |arr_4_length_pair_2| () |uint_array_tuple|)
|
|
||||||
(declare-fun |arr_4_length_pair_3| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_3| () Int)
|
|
||||||
(declare-fun |x_8_3| () Int)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |arr_4_length_pair_4| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_4| () Int)
|
|
||||||
(declare-fun |x_8_4| () Int)
|
|
||||||
(declare-fun |arr_4_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_0| () Int)
|
|
||||||
(declare-fun |x_8_0| () Int)
|
|
||||||
(declare-fun |arr_4_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_12_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_1| () Bool)
|
|
||||||
(declare-fun |expr_17_0| () Int)
|
|
||||||
(declare-fun |expr_18_1| () Int)
|
|
||||||
(declare-fun |x_8_1| () Int)
|
|
||||||
(declare-fun |expr_20_0| () Int)
|
|
||||||
(declare-fun |expr_25_1| () Int)
|
|
||||||
(declare-fun |expr_26_1| () Int)
|
|
||||||
(declare-fun |expr_28_0| () Int)
|
|
||||||
(declare-fun |expr_29_0| () Int)
|
|
||||||
(declare-fun |d_div_mod_11_0| () Int)
|
|
||||||
(declare-fun |r_div_mod_11_0| () Int)
|
|
||||||
(declare-fun |expr_30_1| () Int)
|
|
||||||
(declare-fun |expr_32_0| () Int)
|
|
||||||
(declare-fun |expr_35_0| () Int)
|
|
||||||
(declare-fun |state_1| () |state_type|)
|
|
||||||
(declare-fun |state_2| () |state_type|)
|
|
||||||
(declare-fun |state_3| () |state_type|)
|
|
||||||
(declare-fun |expr_39_0| () Int)
|
|
||||||
(declare-fun |expr_40_0| () Int)
|
|
||||||
(declare-fun |expr_41_1| () Bool)
|
|
||||||
(declare-fun |expr_44_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_44_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_49_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_50_0| () Int)
|
|
||||||
(declare-fun |expr_51_1| () Int)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (=> (and true true) (and (>= expr_35_0 0) (<= expr_35_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_35_0 x_8_1) (and (=> (and true true) (and (>= expr_32_0 0) (<= expr_32_0 1461501637330902918203684832716283019655932542975))) (and (= expr_32_0 a_6_0) (and (=> (and true true) (and (>= expr_30_1 0) (<= expr_30_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_30_1 (ite (= expr_29_0 0) 0 d_div_mod_11_0)) (and (and (<= 0 r_div_mod_11_0) (or (= expr_29_0 0) (< r_div_mod_11_0 expr_29_0))) (and (= (+ (* d_div_mod_11_0 expr_29_0) r_div_mod_11_0) expr_28_0) (and (=> (and true true) (and (>= expr_29_0 0) (<= expr_29_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_29_0 x_8_1) (and (=> (and true true) true) (and (= expr_28_0 2) (and (=> (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 (+ expr_20_0 expr_25_1)) (and (=> (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (=> (and true true) (and (>= expr_20_0 0) (<= expr_20_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_0 x_8_1) (and (ite (and true true) (= x_8_1 (- expr_17_0 1)) (= x_8_1 x_8_0)) (and (=> (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (=> (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (=> (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (=> (and true true) true) (and (= expr_13_0 0) (and (=> (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 x_8_0) (and (and (>= x_8_0 0) (<= x_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_6_0 0) (<= a_6_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint_array_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 1917212865)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 114)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 70)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 88)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))))))))))))))))) (< (select (|balances| state_0) this_0) expr_35_0)))
|
|
||||||
(declare-const |EVALEXPR_0| Int)
|
|
||||||
(assert (= |EVALEXPR_0| a_6_0))
|
|
||||||
(declare-const |EVALEXPR_1| Int)
|
|
||||||
(assert (= |EVALEXPR_1| x_8_1))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| |EVALEXPR_1| ))
|
|
||||||
",
|
|
||||||
"0xd43cc6edbb2db7e490ff38b099043a3d3f17f85031b33673e76cb1eaf0598122": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-datatypes ((|uint_array_tuple| 0)) (((|uint_array_tuple| (|uint_array_tuple_accessor_array| (Array Int Int)) (|uint_array_tuple_accessor_length| Int)))))
|
|
||||||
(declare-fun |arr_4_length_pair_2| () |uint_array_tuple|)
|
|
||||||
(declare-fun |arr_4_length_pair_3| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_3| () Int)
|
|
||||||
(declare-fun |x_8_3| () Int)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-fun |arr_4_length_pair_4| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_4| () Int)
|
|
||||||
(declare-fun |x_8_4| () Int)
|
|
||||||
(declare-fun |arr_4_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_0| () Int)
|
|
||||||
(declare-fun |x_8_0| () Int)
|
|
||||||
(declare-fun |arr_4_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_12_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_1| () Bool)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (=> (and true true) true) (and (= expr_13_0 0) (and (=> (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 x_8_0) (and (and (>= x_8_0 0) (<= x_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_6_0 0) (<= a_6_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint_array_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 1917212865)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 114)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 70)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 88)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))) expr_14_1))
|
|
||||||
(check-sat)
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"errors":
|
"errors":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
File diff suppressed because one or more lines are too long
@ -1,68 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0x540d6a4b18ea4181713b8f0e9b4b272f762e142ba1716a3960cfdbed3f1ae64e": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-datatypes ((|uint_array_tuple| 0)) (((|uint_array_tuple| (|uint_array_tuple_accessor_array| (Array Int Int)) (|uint_array_tuple_accessor_length| Int)))))
|
|
||||||
(declare-fun |arr_4_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_0| () Int)
|
|
||||||
(declare-fun |x_8_0| () Int)
|
|
||||||
(declare-fun |arr_4_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_12_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_1| () Bool)
|
|
||||||
(declare-fun |expr_17_0| () Int)
|
|
||||||
(declare-fun |expr_18_1| () Int)
|
|
||||||
(declare-fun |x_8_1| () Int)
|
|
||||||
(declare-fun |expr_20_0| () Int)
|
|
||||||
(declare-fun |expr_25_1| () Int)
|
|
||||||
(declare-fun |expr_26_1| () Int)
|
|
||||||
(declare-fun |expr_28_0| () Int)
|
|
||||||
(declare-fun |expr_29_0| () Int)
|
|
||||||
(declare-fun |d_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |r_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |expr_30_1| () Int)
|
|
||||||
(declare-fun |expr_32_0| () Int)
|
|
||||||
(declare-fun |expr_35_0| () Int)
|
|
||||||
(declare-fun |state_1| () |state_type|)
|
|
||||||
(declare-fun |state_2| () |state_type|)
|
|
||||||
(declare-fun |state_3| () |state_type|)
|
|
||||||
(declare-fun |expr_39_0| () Int)
|
|
||||||
(declare-fun |expr_40_0| () Int)
|
|
||||||
(declare-fun |expr_41_1| () Bool)
|
|
||||||
(declare-fun |expr_44_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_44_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |arr_4_length_pair_2| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_49_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_50_0| () Int)
|
|
||||||
(declare-fun |expr_51_1| () Int)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (=> (and true true) (and (>= expr_29_0 0) (<= expr_29_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_29_0 x_8_1) (and (=> (and true true) true) (and (= expr_28_0 2) (and (=> (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 (+ expr_20_0 expr_25_1)) (and (=> (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (=> (and true true) (and (>= expr_20_0 0) (<= expr_20_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_0 x_8_1) (and (ite (and true true) (= x_8_1 (- expr_17_0 1)) (= x_8_1 x_8_0)) (and (=> (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (=> (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (=> (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (=> (and true true) true) (and (= expr_13_0 0) (and (=> (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 x_8_0) (and (and (>= x_8_0 0) (<= x_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_6_0 0) (<= a_6_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint_array_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 1917212865)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 114)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 70)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 88)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))))))))) (= expr_29_0 0)))
|
|
||||||
(declare-const |EVALEXPR_0| Int)
|
|
||||||
(assert (= |EVALEXPR_0| a_6_0))
|
|
||||||
(declare-const |EVALEXPR_1| Int)
|
|
||||||
(assert (= |EVALEXPR_1| x_8_1))
|
|
||||||
(declare-const |EVALEXPR_2| Int)
|
|
||||||
(assert (= |EVALEXPR_2| expr_29_0))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| ))
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"errors":
|
"errors":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
@ -1,68 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0xb91b28779c6db8b1a6ceecabfa97788476fbb427474cd132376917103e4bc9d9": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-datatypes ((|uint_array_tuple| 0)) (((|uint_array_tuple| (|uint_array_tuple_accessor_array| (Array Int Int)) (|uint_array_tuple_accessor_length| Int)))))
|
|
||||||
(declare-fun |arr_4_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_0| () Int)
|
|
||||||
(declare-fun |x_8_0| () Int)
|
|
||||||
(declare-fun |arr_4_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_12_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_1| () Bool)
|
|
||||||
(declare-fun |expr_17_0| () Int)
|
|
||||||
(declare-fun |expr_18_1| () Int)
|
|
||||||
(declare-fun |x_8_1| () Int)
|
|
||||||
(declare-fun |expr_20_0| () Int)
|
|
||||||
(declare-fun |expr_25_1| () Int)
|
|
||||||
(declare-fun |expr_26_1| () Int)
|
|
||||||
(declare-fun |expr_28_0| () Int)
|
|
||||||
(declare-fun |expr_29_0| () Int)
|
|
||||||
(declare-fun |d_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |r_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |expr_30_1| () Int)
|
|
||||||
(declare-fun |expr_32_0| () Int)
|
|
||||||
(declare-fun |expr_35_0| () Int)
|
|
||||||
(declare-fun |state_1| () |state_type|)
|
|
||||||
(declare-fun |state_2| () |state_type|)
|
|
||||||
(declare-fun |state_3| () |state_type|)
|
|
||||||
(declare-fun |expr_39_0| () Int)
|
|
||||||
(declare-fun |expr_40_0| () Int)
|
|
||||||
(declare-fun |expr_41_1| () Bool)
|
|
||||||
(declare-fun |expr_44_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_44_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |arr_4_length_pair_2| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_49_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_50_0| () Int)
|
|
||||||
(declare-fun |expr_51_1| () Int)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (=> (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (=> (and true true) (and (>= expr_20_0 0) (<= expr_20_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_0 x_8_1) (and (ite (and true true) (= x_8_1 (- expr_17_0 1)) (= x_8_1 x_8_0)) (and (=> (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (=> (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (=> (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (=> (and true true) true) (and (= expr_13_0 0) (and (=> (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 x_8_0) (and (and (>= x_8_0 0) (<= x_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_6_0 0) (<= a_6_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint_array_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 1917212865)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 114)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 70)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 88)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))) (> (+ expr_20_0 expr_25_1) 115792089237316195423570985008687907853269984665640564039457584007913129639935)))
|
|
||||||
(declare-const |EVALEXPR_0| Int)
|
|
||||||
(assert (= |EVALEXPR_0| a_6_0))
|
|
||||||
(declare-const |EVALEXPR_1| Int)
|
|
||||||
(assert (= |EVALEXPR_1| x_8_1))
|
|
||||||
(declare-const |EVALEXPR_2| Int)
|
|
||||||
(assert (= |EVALEXPR_2| (+ expr_20_0 expr_25_1)))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| ))
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"errors":
|
"errors":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
@ -1,68 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0x6bfae35e234137f12dfe7bc10a8cd34cfa8f3cf1a3439e2e99418358e7bad911": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-datatypes ((|uint_array_tuple| 0)) (((|uint_array_tuple| (|uint_array_tuple_accessor_array| (Array Int Int)) (|uint_array_tuple_accessor_length| Int)))))
|
|
||||||
(declare-fun |arr_4_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_0| () Int)
|
|
||||||
(declare-fun |x_8_0| () Int)
|
|
||||||
(declare-fun |arr_4_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_12_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_1| () Bool)
|
|
||||||
(declare-fun |expr_17_0| () Int)
|
|
||||||
(declare-fun |expr_18_1| () Int)
|
|
||||||
(declare-fun |x_8_1| () Int)
|
|
||||||
(declare-fun |expr_20_0| () Int)
|
|
||||||
(declare-fun |expr_25_1| () Int)
|
|
||||||
(declare-fun |expr_26_1| () Int)
|
|
||||||
(declare-fun |expr_28_0| () Int)
|
|
||||||
(declare-fun |expr_29_0| () Int)
|
|
||||||
(declare-fun |d_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |r_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |expr_30_1| () Int)
|
|
||||||
(declare-fun |expr_32_0| () Int)
|
|
||||||
(declare-fun |expr_35_0| () Int)
|
|
||||||
(declare-fun |state_1| () |state_type|)
|
|
||||||
(declare-fun |state_2| () |state_type|)
|
|
||||||
(declare-fun |state_3| () |state_type|)
|
|
||||||
(declare-fun |expr_39_0| () Int)
|
|
||||||
(declare-fun |expr_40_0| () Int)
|
|
||||||
(declare-fun |expr_41_1| () Bool)
|
|
||||||
(declare-fun |expr_44_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_44_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |arr_4_length_pair_2| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_49_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_50_0| () Int)
|
|
||||||
(declare-fun |expr_51_1| () Int)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (=> (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (=> (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (=> (and true true) true) (and (= expr_13_0 0) (and (=> (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 x_8_0) (and (and (>= x_8_0 0) (<= x_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_6_0 0) (<= a_6_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint_array_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 1917212865)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 114)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 70)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 88)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))) (< (- expr_17_0 1) 0)))
|
|
||||||
(declare-const |EVALEXPR_0| Int)
|
|
||||||
(assert (= |EVALEXPR_0| a_6_0))
|
|
||||||
(declare-const |EVALEXPR_1| Int)
|
|
||||||
(assert (= |EVALEXPR_1| x_8_0))
|
|
||||||
(declare-const |EVALEXPR_2| Int)
|
|
||||||
(assert (= |EVALEXPR_2| (- expr_17_0 1)))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| ))
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"errors":
|
"errors":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
File diff suppressed because one or more lines are too long
@ -1,126 +1,4 @@
|
|||||||
{
|
{
|
||||||
"auxiliaryInputRequested":
|
|
||||||
{
|
|
||||||
"smtlib2queries":
|
|
||||||
{
|
|
||||||
"0x6bfae35e234137f12dfe7bc10a8cd34cfa8f3cf1a3439e2e99418358e7bad911": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-datatypes ((|uint_array_tuple| 0)) (((|uint_array_tuple| (|uint_array_tuple_accessor_array| (Array Int Int)) (|uint_array_tuple_accessor_length| Int)))))
|
|
||||||
(declare-fun |arr_4_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_0| () Int)
|
|
||||||
(declare-fun |x_8_0| () Int)
|
|
||||||
(declare-fun |arr_4_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_12_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_1| () Bool)
|
|
||||||
(declare-fun |expr_17_0| () Int)
|
|
||||||
(declare-fun |expr_18_1| () Int)
|
|
||||||
(declare-fun |x_8_1| () Int)
|
|
||||||
(declare-fun |expr_20_0| () Int)
|
|
||||||
(declare-fun |expr_25_1| () Int)
|
|
||||||
(declare-fun |expr_26_1| () Int)
|
|
||||||
(declare-fun |expr_28_0| () Int)
|
|
||||||
(declare-fun |expr_29_0| () Int)
|
|
||||||
(declare-fun |d_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |r_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |expr_30_1| () Int)
|
|
||||||
(declare-fun |expr_32_0| () Int)
|
|
||||||
(declare-fun |expr_35_0| () Int)
|
|
||||||
(declare-fun |state_1| () |state_type|)
|
|
||||||
(declare-fun |state_2| () |state_type|)
|
|
||||||
(declare-fun |state_3| () |state_type|)
|
|
||||||
(declare-fun |expr_39_0| () Int)
|
|
||||||
(declare-fun |expr_40_0| () Int)
|
|
||||||
(declare-fun |expr_41_1| () Bool)
|
|
||||||
(declare-fun |expr_44_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_44_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |arr_4_length_pair_2| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_49_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_50_0| () Int)
|
|
||||||
(declare-fun |expr_51_1| () Int)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (=> (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (=> (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (=> (and true true) true) (and (= expr_13_0 0) (and (=> (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 x_8_0) (and (and (>= x_8_0 0) (<= x_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_6_0 0) (<= a_6_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint_array_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 1917212865)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 114)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 70)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 88)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))) (< (- expr_17_0 1) 0)))
|
|
||||||
(declare-const |EVALEXPR_0| Int)
|
|
||||||
(assert (= |EVALEXPR_0| a_6_0))
|
|
||||||
(declare-const |EVALEXPR_1| Int)
|
|
||||||
(assert (= |EVALEXPR_1| x_8_0))
|
|
||||||
(declare-const |EVALEXPR_2| Int)
|
|
||||||
(assert (= |EVALEXPR_2| (- expr_17_0 1)))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| ))
|
|
||||||
",
|
|
||||||
"0xb91b28779c6db8b1a6ceecabfa97788476fbb427474cd132376917103e4bc9d9": "(set-option :produce-models true)
|
|
||||||
(set-logic ALL)
|
|
||||||
(declare-fun |error_0| () Int)
|
|
||||||
(declare-fun |this_0| () Int)
|
|
||||||
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
|
|
||||||
(declare-fun |state_0| () |state_type|)
|
|
||||||
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
|
|
||||||
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.basefee| Int) (|block.chainid| Int) (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
|
|
||||||
(declare-fun |tx_0| () |tx_type|)
|
|
||||||
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
|
|
||||||
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
|
|
||||||
(declare-fun |crypto_0| () |crypto_type|)
|
|
||||||
(declare-datatypes ((|abi_type| 0)) (((|abi_type|))))
|
|
||||||
(declare-fun |abi_0| () |abi_type|)
|
|
||||||
(declare-datatypes ((|uint_array_tuple| 0)) (((|uint_array_tuple| (|uint_array_tuple_accessor_array| (Array Int Int)) (|uint_array_tuple_accessor_length| Int)))))
|
|
||||||
(declare-fun |arr_4_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |a_6_0| () Int)
|
|
||||||
(declare-fun |x_8_0| () Int)
|
|
||||||
(declare-fun |arr_4_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_12_0| () Int)
|
|
||||||
(declare-fun |expr_13_0| () Int)
|
|
||||||
(declare-fun |expr_14_1| () Bool)
|
|
||||||
(declare-fun |expr_17_0| () Int)
|
|
||||||
(declare-fun |expr_18_1| () Int)
|
|
||||||
(declare-fun |x_8_1| () Int)
|
|
||||||
(declare-fun |expr_20_0| () Int)
|
|
||||||
(declare-fun |expr_25_1| () Int)
|
|
||||||
(declare-fun |expr_26_1| () Int)
|
|
||||||
(declare-fun |expr_28_0| () Int)
|
|
||||||
(declare-fun |expr_29_0| () Int)
|
|
||||||
(declare-fun |d_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |r_div_mod_0_0| () Int)
|
|
||||||
(declare-fun |expr_30_1| () Int)
|
|
||||||
(declare-fun |expr_32_0| () Int)
|
|
||||||
(declare-fun |expr_35_0| () Int)
|
|
||||||
(declare-fun |state_1| () |state_type|)
|
|
||||||
(declare-fun |state_2| () |state_type|)
|
|
||||||
(declare-fun |state_3| () |state_type|)
|
|
||||||
(declare-fun |expr_39_0| () Int)
|
|
||||||
(declare-fun |expr_40_0| () Int)
|
|
||||||
(declare-fun |expr_41_1| () Bool)
|
|
||||||
(declare-fun |expr_44_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_44_length_pair_1| () |uint_array_tuple|)
|
|
||||||
(declare-fun |arr_4_length_pair_2| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_49_length_pair_0| () |uint_array_tuple|)
|
|
||||||
(declare-fun |expr_50_0| () Int)
|
|
||||||
(declare-fun |expr_51_1| () Int)
|
|
||||||
|
|
||||||
(assert (and (and (and true true) (and (=> (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (=> (and true true) (and (>= expr_20_0 0) (<= expr_20_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_0 x_8_1) (and (ite (and true true) (= x_8_1 (- expr_17_0 1)) (= x_8_1 x_8_0)) (and (=> (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (=> (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (=> (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (=> (and true true) true) (and (= expr_13_0 0) (and (=> (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 x_8_0) (and (and (>= x_8_0 0) (<= x_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_6_0 0) (<= a_6_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint_array_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (and (and (>= (|block.basefee| tx_0) 0) (<= (|block.basefee| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (>= (|block.chainid| tx_0) 0) (<= (|block.chainid| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.coinbase| tx_0) 0) (<= (|block.coinbase| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|block.difficulty| tx_0) 0) (<= (|block.difficulty| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.gaslimit| tx_0) 0) (<= (|block.gaslimit| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.number| tx_0) 0) (<= (|block.number| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|block.timestamp| tx_0) 0) (<= (|block.timestamp| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|msg.sender| tx_0) 0) (<= (|msg.sender| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|msg.value| tx_0) 0) (<= (|msg.value| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (>= (|tx.origin| tx_0) 0) (<= (|tx.origin| tx_0) 1461501637330902918203684832716283019655932542975))) (and (>= (|tx.gasprice| tx_0) 0) (<= (|tx.gasprice| tx_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (and (and (and (and (and (= (|msg.value| tx_0) 0) (= (|msg.sig| tx_0) 1917212865)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 114)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 70)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 88)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 193)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))) (> (+ expr_20_0 expr_25_1) 115792089237316195423570985008687907853269984665640564039457584007913129639935)))
|
|
||||||
(declare-const |EVALEXPR_0| Int)
|
|
||||||
(assert (= |EVALEXPR_0| a_6_0))
|
|
||||||
(declare-const |EVALEXPR_1| Int)
|
|
||||||
(assert (= |EVALEXPR_1| x_8_1))
|
|
||||||
(declare-const |EVALEXPR_2| Int)
|
|
||||||
(assert (= |EVALEXPR_2| (+ expr_20_0 expr_25_1)))
|
|
||||||
(check-sat)
|
|
||||||
(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| ))
|
|
||||||
"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"errors":
|
"errors":
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -22,14 +22,16 @@
|
|||||||
|
|
||||||
#include <test/Common.h>
|
#include <test/Common.h>
|
||||||
#include <test/FilesystemUtils.h>
|
#include <test/FilesystemUtils.h>
|
||||||
#include <test/TemporaryDirectory.h>
|
|
||||||
#include <test/libsolidity/util/SoltestErrors.h>
|
#include <test/libsolidity/util/SoltestErrors.h>
|
||||||
|
|
||||||
|
#include <libsolutil/TemporaryDirectory.h>
|
||||||
|
|
||||||
#include <boost/algorithm/string.hpp>
|
#include <boost/algorithm/string.hpp>
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
using namespace solidity::util;
|
||||||
using namespace solidity::test;
|
using namespace solidity::test;
|
||||||
|
|
||||||
#define TEST_CASE_NAME (boost::unit_test::framework::current_test_case().p_name)
|
#define TEST_CASE_NAME (boost::unit_test::framework::current_test_case().p_name)
|
||||||
|
@ -19,10 +19,10 @@
|
|||||||
/// Unit tests for the CommonIO routines.
|
/// Unit tests for the CommonIO routines.
|
||||||
|
|
||||||
#include <libsolutil/CommonIO.h>
|
#include <libsolutil/CommonIO.h>
|
||||||
|
#include <libsolutil/TemporaryDirectory.h>
|
||||||
|
|
||||||
#include <test/Common.h>
|
#include <test/Common.h>
|
||||||
#include <test/FilesystemUtils.h>
|
#include <test/FilesystemUtils.h>
|
||||||
#include <test/TemporaryDirectory.h>
|
|
||||||
#include <test/libsolidity/util/SoltestErrors.h>
|
#include <test/libsolidity/util/SoltestErrors.h>
|
||||||
|
|
||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
|
@ -16,9 +16,9 @@
|
|||||||
*/
|
*/
|
||||||
// SPDX-License-Identifier: GPL-3.0
|
// SPDX-License-Identifier: GPL-3.0
|
||||||
|
|
||||||
#include <test/TemporaryDirectory.h>
|
#include <libsolutil/TemporaryDirectory.h>
|
||||||
|
|
||||||
#include <test/libsolidity/util/SoltestErrors.h>
|
#include <libsolidity/util/SoltestErrors.h>
|
||||||
|
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
@ -28,7 +28,7 @@
|
|||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace boost::test_tools;
|
using namespace boost::test_tools;
|
||||||
|
|
||||||
namespace solidity::test
|
namespace solidity::util::test
|
||||||
{
|
{
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE(TemporaryDirectoryTest)
|
BOOST_AUTO_TEST_SUITE(TemporaryDirectoryTest)
|
@ -26,9 +26,9 @@
|
|||||||
#include <test/Common.h>
|
#include <test/Common.h>
|
||||||
#include <test/libsolidity/util/SoltestErrors.h>
|
#include <test/libsolidity/util/SoltestErrors.h>
|
||||||
#include <test/FilesystemUtils.h>
|
#include <test/FilesystemUtils.h>
|
||||||
#include <test/TemporaryDirectory.h>
|
|
||||||
|
|
||||||
#include <libsolutil/JSON.h>
|
#include <libsolutil/JSON.h>
|
||||||
|
#include <libsolutil/TemporaryDirectory.h>
|
||||||
|
|
||||||
#include <boost/algorithm/string.hpp>
|
#include <boost/algorithm/string.hpp>
|
||||||
|
|
||||||
|
@ -24,9 +24,10 @@
|
|||||||
|
|
||||||
#include <test/Common.h>
|
#include <test/Common.h>
|
||||||
#include <test/FilesystemUtils.h>
|
#include <test/FilesystemUtils.h>
|
||||||
#include <test/TemporaryDirectory.h>
|
|
||||||
#include <test/libsolidity/util/SoltestErrors.h>
|
#include <test/libsolidity/util/SoltestErrors.h>
|
||||||
|
|
||||||
|
#include <libsolutil/TemporaryDirectory.h>
|
||||||
|
|
||||||
#include <boost/algorithm/string/predicate.hpp>
|
#include <boost/algorithm/string/predicate.hpp>
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
@ -36,6 +37,7 @@
|
|||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace solidity::frontend;
|
using namespace solidity::frontend;
|
||||||
|
using namespace solidity::util;
|
||||||
using namespace solidity::test;
|
using namespace solidity::test;
|
||||||
|
|
||||||
#define TEST_CASE_NAME (boost::unit_test::framework::current_test_case().p_name)
|
#define TEST_CASE_NAME (boost::unit_test::framework::current_test_case().p_name)
|
||||||
|
@ -213,7 +213,7 @@ BOOST_AUTO_TEST_CASE(cli_mode_options)
|
|||||||
{true, false},
|
{true, false},
|
||||||
{{InvariantType::Contract, InvariantType::Reentrancy}},
|
{{InvariantType::Contract, InvariantType::Reentrancy}},
|
||||||
true,
|
true,
|
||||||
{false, true, true},
|
{false, false, true, true},
|
||||||
{{VerificationTargetType::Underflow, VerificationTargetType::DivByZero}},
|
{{VerificationTargetType::Underflow, VerificationTargetType::DivByZero}},
|
||||||
5,
|
5,
|
||||||
};
|
};
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
// SPDX-License-Identifier: GPL-3.0
|
// SPDX-License-Identifier: GPL-3.0
|
||||||
|
|
||||||
#include <test/TemporaryDirectory.h>
|
|
||||||
#include <test/yulPhaser/TestHelpers.h>
|
#include <test/yulPhaser/TestHelpers.h>
|
||||||
|
|
||||||
#include <tools/yulPhaser/AlgorithmRunner.h>
|
#include <tools/yulPhaser/AlgorithmRunner.h>
|
||||||
@ -26,6 +25,7 @@
|
|||||||
#include <liblangutil/CharStream.h>
|
#include <liblangutil/CharStream.h>
|
||||||
|
|
||||||
#include <libsolutil/CommonIO.h>
|
#include <libsolutil/CommonIO.h>
|
||||||
|
#include <libsolutil/TemporaryDirectory.h>
|
||||||
|
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
@ -39,7 +39,6 @@ using namespace std;
|
|||||||
using namespace boost::unit_test::framework;
|
using namespace boost::unit_test::framework;
|
||||||
using namespace boost::test_tools;
|
using namespace boost::test_tools;
|
||||||
using namespace solidity::langutil;
|
using namespace solidity::langutil;
|
||||||
using namespace solidity::test;
|
|
||||||
using namespace solidity::util;
|
using namespace solidity::util;
|
||||||
using namespace solidity::yul;
|
using namespace solidity::yul;
|
||||||
|
|
||||||
|
@ -16,12 +16,12 @@
|
|||||||
*/
|
*/
|
||||||
// SPDX-License-Identifier: GPL-3.0
|
// SPDX-License-Identifier: GPL-3.0
|
||||||
|
|
||||||
#include <test/TemporaryDirectory.h>
|
|
||||||
#include <test/yulPhaser/TestHelpers.h>
|
#include <test/yulPhaser/TestHelpers.h>
|
||||||
|
|
||||||
#include <tools/yulPhaser/Common.h>
|
#include <tools/yulPhaser/Common.h>
|
||||||
|
|
||||||
#include <libsolutil/CommonData.h>
|
#include <libsolutil/CommonData.h>
|
||||||
|
#include <libsolutil/TemporaryDirectory.h>
|
||||||
|
|
||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
#include <boost/test/tools/output_test_stream.hpp>
|
#include <boost/test/tools/output_test_stream.hpp>
|
||||||
@ -32,7 +32,6 @@
|
|||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace boost::test_tools;
|
using namespace boost::test_tools;
|
||||||
using namespace solidity::test;
|
|
||||||
using namespace solidity::util;
|
using namespace solidity::util;
|
||||||
|
|
||||||
namespace solidity::phaser::test
|
namespace solidity::phaser::test
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
// SPDX-License-Identifier: GPL-3.0
|
// SPDX-License-Identifier: GPL-3.0
|
||||||
|
|
||||||
#include <test/TemporaryDirectory.h>
|
|
||||||
#include <test/yulPhaser/TestHelpers.h>
|
#include <test/yulPhaser/TestHelpers.h>
|
||||||
|
|
||||||
#include <tools/yulPhaser/Exceptions.h>
|
#include <tools/yulPhaser/Exceptions.h>
|
||||||
@ -25,6 +24,7 @@
|
|||||||
#include <liblangutil/CharStream.h>
|
#include <liblangutil/CharStream.h>
|
||||||
|
|
||||||
#include <libsolutil/CommonIO.h>
|
#include <libsolutil/CommonIO.h>
|
||||||
|
#include <libsolutil/TemporaryDirectory.h>
|
||||||
|
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
@ -33,7 +33,6 @@
|
|||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace solidity::test;
|
|
||||||
using namespace solidity::util;
|
using namespace solidity::util;
|
||||||
using namespace solidity::langutil;
|
using namespace solidity::langutil;
|
||||||
using namespace solidity::yul;
|
using namespace solidity::yul;
|
||||||
|
Loading…
Reference in New Issue
Block a user