From b753cb6120b758c8db73c6f9f9b8745b3413dcdb Mon Sep 17 00:00:00 2001 From: Leonardo Alt Date: Wed, 31 Mar 2021 17:09:37 +0200 Subject: [PATCH 1/7] Deprecate pragma experimental SMTChecker --- libsolidity/formal/BMC.cpp | 2 -- libsolidity/formal/CHC.cpp | 6 ---- libsolidity/formal/ModelChecker.cpp | 39 ++++++++++++++++++++++- libsolidity/formal/ModelChecker.h | 5 +++ libsolidity/formal/ModelCheckerSettings.h | 2 +- libsolidity/interface/CompilerStack.cpp | 1 + solc/CommandLineInterface.cpp | 2 +- 7 files changed, 46 insertions(+), 11 deletions(-) diff --git a/libsolidity/formal/BMC.cpp b/libsolidity/formal/BMC.cpp index 1caf3228a..f6630f0da 100644 --- a/libsolidity/formal/BMC.cpp +++ b/libsolidity/formal/BMC.cpp @@ -61,8 +61,6 @@ BMC::BMC( void BMC::analyze(SourceUnit const& _source, map> _solvedTargets) { - solAssert(_source.annotation().experimentalFeatures.count(ExperimentalFeature::SMTChecker), ""); - /// This is currently used to abort analysis of SourceUnits /// containing file level functions or constants. if (SMTEncoder::analyze(_source)) diff --git a/libsolidity/formal/CHC.cpp b/libsolidity/formal/CHC.cpp index 6812e2a99..65e29870b 100644 --- a/libsolidity/formal/CHC.cpp +++ b/libsolidity/formal/CHC.cpp @@ -76,8 +76,6 @@ CHC::CHC( void CHC::analyze(SourceUnit const& _source) { - solAssert(_source.annotation().experimentalFeatures.count(ExperimentalFeature::SMTChecker), ""); - /// This is currently used to abort analysis of SourceUnits /// containing file level functions or constants. if (SMTEncoder::analyze(_source)) @@ -1430,10 +1428,6 @@ void CHC::verificationTargetEncountered( return; solAssert(m_currentContract || m_currentFunction, ""); - SourceUnit const* source = m_currentContract ? sourceUnitContaining(*m_currentContract) : sourceUnitContaining(*m_currentFunction); - solAssert(source, ""); - if (!source->annotation().experimentalFeatures.count(ExperimentalFeature::SMTChecker)) - return; bool scopeIsFunction = m_currentFunction && !m_currentFunction->isConstructor(); auto errorId = newErrorId(); diff --git a/libsolidity/formal/ModelChecker.cpp b/libsolidity/formal/ModelChecker.cpp index dadc05a04..b26fc9352 100644 --- a/libsolidity/formal/ModelChecker.cpp +++ b/libsolidity/formal/ModelChecker.cpp @@ -21,6 +21,8 @@ #include #endif +#include + using namespace std; using namespace solidity; using namespace solidity::util; @@ -34,6 +36,7 @@ ModelChecker::ModelChecker( ReadCallback::Callback const& _smtCallback, smtutil::SMTSolverChoice _enabledSolvers ): + m_errorReporter(_errorReporter), m_settings(_settings), m_context(), m_bmc(m_context, _errorReporter, _smtlib2Responses, _smtCallback, _enabledSolvers, m_settings), @@ -41,9 +44,43 @@ ModelChecker::ModelChecker( { } +// TODO This should be removed for 0.9.0. +void ModelChecker::enableAllEnginesIfPragmaPresent(vector> const& _sources) +{ + bool hasPragma = ranges::any_of(_sources, [](auto _source) { + return _source && _source->annotation().experimentalFeatures.count(ExperimentalFeature::SMTChecker); + }); + if (hasPragma) + m_settings.engine = ModelCheckerEngine::All(); +} + void ModelChecker::analyze(SourceUnit const& _source) { - if (!_source.annotation().experimentalFeatures.count(ExperimentalFeature::SMTChecker)) + // TODO This should be removed for 0.9.0. + if (_source.annotation().experimentalFeatures.count(ExperimentalFeature::SMTChecker)) + { + PragmaDirective const* smtPragma = nullptr; + for (auto node: _source.nodes()) + if (auto pragma = dynamic_pointer_cast(node)) + if ( + pragma->literals().size() >= 2 && + pragma->literals().at(1) == "SMTChecker" + ) + { + smtPragma = pragma.get(); + break; + } + solAssert(smtPragma, ""); + m_errorReporter.warning( + 5523_error, + smtPragma->location(), + "The SMTChecker pragma has been deprecated and will be removed in the future. " + "Please use the \"model checker engine\" compiler setting to activate the SMTChecker instead. " + "If the pragma is enabled, all engines will be used." + ); + } + + if (m_settings.engine.none()) return; if (m_settings.engine.chc) diff --git a/libsolidity/formal/ModelChecker.h b/libsolidity/formal/ModelChecker.h index 572f47083..9c594394b 100644 --- a/libsolidity/formal/ModelChecker.h +++ b/libsolidity/formal/ModelChecker.h @@ -55,6 +55,9 @@ public: smtutil::SMTSolverChoice _enabledSolvers = smtutil::SMTSolverChoice::All() ); + // TODO This should be removed for 0.9.0. + void enableAllEnginesIfPragmaPresent(std::vector> const& _sources); + void analyze(SourceUnit const& _sources); /// This is used if the SMT solver is not directly linked into this binary. @@ -66,6 +69,8 @@ public: static smtutil::SMTSolverChoice availableSolvers(); private: + langutil::ErrorReporter& m_errorReporter; + ModelCheckerSettings m_settings; /// Stores the context of the encoding. diff --git a/libsolidity/formal/ModelCheckerSettings.h b/libsolidity/formal/ModelCheckerSettings.h index 0a1f338ff..a9eba20d5 100644 --- a/libsolidity/formal/ModelCheckerSettings.h +++ b/libsolidity/formal/ModelCheckerSettings.h @@ -69,7 +69,7 @@ struct ModelCheckerTargets struct ModelCheckerSettings { - ModelCheckerEngine engine = ModelCheckerEngine::All(); + ModelCheckerEngine engine = ModelCheckerEngine::None(); ModelCheckerTargets targets = ModelCheckerTargets::All(); std::optional timeout; }; diff --git a/libsolidity/interface/CompilerStack.cpp b/libsolidity/interface/CompilerStack.cpp index a48270074..30f09d5cd 100644 --- a/libsolidity/interface/CompilerStack.cpp +++ b/libsolidity/interface/CompilerStack.cpp @@ -547,6 +547,7 @@ bool CompilerStack::analyze() if (noErrors) { ModelChecker modelChecker(m_errorReporter, m_smtlib2Responses, m_modelCheckerSettings, m_readFile, m_enabledSMTSolvers); + modelChecker.enableAllEnginesIfPragmaPresent(applyMap(m_sourceOrder, [](Source const* _source) { return _source->ast; })); for (Source const* source: m_sourceOrder) if (source->ast) modelChecker.analyze(*source->ast); diff --git a/solc/CommandLineInterface.cpp b/solc/CommandLineInterface.cpp index d7ada29f3..d0c9e81ee 100644 --- a/solc/CommandLineInterface.cpp +++ b/solc/CommandLineInterface.cpp @@ -1055,7 +1055,7 @@ General Information)").c_str(), smtCheckerOptions.add_options() ( g_strModelCheckerEngine.c_str(), - po::value()->value_name("all,bmc,chc,none")->default_value("all"), + po::value()->value_name("all,bmc,chc,none")->default_value("none"), "Select model checker engine." ) ( From d617ef461e9e0648a74b07d0636541ea044f9db8 Mon Sep 17 00:00:00 2001 From: Leonardo Alt Date: Wed, 31 Mar 2021 17:11:44 +0200 Subject: [PATCH 2/7] Add new tests --- test/libsolidity/smtCheckerTests/options/engine_none.sol | 7 +++++++ test/libsolidity/smtCheckerTests/options/pragma.sol | 9 +++++++++ 2 files changed, 16 insertions(+) create mode 100644 test/libsolidity/smtCheckerTests/options/engine_none.sol create mode 100644 test/libsolidity/smtCheckerTests/options/pragma.sol diff --git a/test/libsolidity/smtCheckerTests/options/engine_none.sol b/test/libsolidity/smtCheckerTests/options/engine_none.sol new file mode 100644 index 000000000..f14eb43f3 --- /dev/null +++ b/test/libsolidity/smtCheckerTests/options/engine_none.sol @@ -0,0 +1,7 @@ +contract C { + function f(uint x) public pure { + assert(x > 0); + } +} +// ==== +// SMTEngine: none diff --git a/test/libsolidity/smtCheckerTests/options/pragma.sol b/test/libsolidity/smtCheckerTests/options/pragma.sol new file mode 100644 index 000000000..b3e35ee02 --- /dev/null +++ b/test/libsolidity/smtCheckerTests/options/pragma.sol @@ -0,0 +1,9 @@ +pragma experimental SMTChecker; +contract C { + function f(uint x) public pure { + assert(x > 0); + } +} +// ---- +// Warning 5523: (0-31): The SMTChecker pragma has been deprecated and will be removed in the future. Please use the "model checker engine" compiler setting to activate the SMTChecker instead. If the pragma is enabled, all engines will be used. +// Warning 6328: (90-103): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) From 0a4afa71bd3f79732088b50512bb0822746bf02f Mon Sep 17 00:00:00 2001 From: Leonardo Alt Date: Wed, 31 Mar 2021 17:11:54 +0200 Subject: [PATCH 3/7] Update old tests --- .../abi/abi_decode_1_tuple.sol | 11 +- .../smtCheckerTests/abi/abi_decode_array.sol | 79 ++-- .../smtCheckerTests/abi/abi_decode_simple.sol | 16 +- .../abi/abi_encode_array_slice.sol | 4 +- .../abi/abi_encode_array_slice_2.sol | 10 +- .../abi/abi_encode_function.sol | 7 +- .../smtCheckerTests/abi/abi_encode_hash.sol | 3 +- .../abi/abi_encode_no_arguments.sol | 10 +- .../abi/abi_encode_packed_array_slice.sol | 10 +- .../abi/abi_encode_packed_array_slice_2.sol | 7 +- .../abi/abi_encode_packed_hash.sol | 9 +- .../abi/abi_encode_packed_simple.sol | 11 +- .../abi/abi_encode_packed_string_literal.sol | 29 +- .../smtCheckerTests/abi/abi_encode_simple.sol | 9 +- .../abi/abi_encode_string_literal.sol | 27 +- .../abi_encode_with_selector_array_slice.sol | 25 +- ...abi_encode_with_selector_array_slice_2.sol | 25 +- .../abi/abi_encode_with_selector_hash.sol | 15 +- .../abi/abi_encode_with_selector_simple.sol | 13 +- ...bi_encode_with_selector_string_literal.sol | 29 +- ..._encode_with_selector_string_literal_2.sol | 3 +- .../abi/abi_encode_with_selector_vs_sig.sol | 5 +- .../abi/abi_encode_with_sig_array_slice.sol | 25 +- .../abi/abi_encode_with_sig_array_slice_2.sol | 25 +- .../abi/abi_encode_with_sig_hash.sol | 15 +- .../abi/abi_encode_with_sig_simple.sol | 13 +- .../abi_encode_with_sig_string_literal.sol | 29 +- .../array_members/array_pop_length_1.sol | 6 +- .../array_members/array_pop_length_2.sol | 6 +- .../array_members/array_pop_length_3.sol | 8 +- .../array_members/array_pop_length_4.sol | 6 +- .../array_members/array_pop_length_5.sol | 6 +- .../array_members/array_pop_length_6.sol | 6 +- .../array_members/array_pop_length_7.sol | 4 +- .../array_members/array_pop_length_8.sol | 6 +- .../array_push_string_literal.sol | 7 +- ...ngth_1d_assignment_2d_memory_to_memory.sol | 3 +- ...th_1d_assignment_2d_storage_to_storage.sol | 3 +- .../length_1d_copy_2d_memory_to_storage.sol | 3 +- .../length_1d_copy_2d_storage_to_memory.sol | 3 +- .../length_1d_mapping_array_1.sol | 4 +- .../length_1d_mapping_array_2.sol | 4 +- .../length_1d_mapping_array_2d_1.sol | 4 +- .../length_1d_struct_array_1.sol | 4 +- .../length_1d_struct_array_2d_1.sol | 4 +- .../length_assignment_2d_memory_to_memory.sol | 3 +- .../length_assignment_memory_to_memory.sol | 4 +- .../length_assignment_storage_to_storage.sol | 4 +- .../array_members/length_basic.sol | 6 +- .../length_copy_memory_to_storage.sol | 4 +- .../length_copy_storage_to_memory.sol | 4 +- .../array_members/length_function_call.sol | 4 +- .../length_same_after_assignment.sol | 4 +- .../length_same_after_assignment_2.sol | 4 +- .../length_same_after_assignment_2_fail.sol | 9 +- .../length_same_after_assignment_3.sol | 4 +- .../length_same_after_assignment_3_fail.sol | 12 +- .../array_members/pop_1_safe.sol | 4 +- .../array_members/pop_1_unsafe.sol | 6 +- .../array_members/pop_2d_safe.sol | 4 +- .../array_members/pop_2d_unsafe.sol | 6 +- .../array_members/pop_constructor_safe.sol | 4 +- .../array_members/pop_constructor_unsafe.sol | 6 +- .../array_members/pop_loop_safe.sol | 4 +- .../array_members/pop_loop_unsafe.sol | 6 +- .../array_members/push_2d_arg_1_safe.sol | 4 +- .../array_members/push_2d_arg_1_unsafe.sol | 7 +- .../array_members/push_arg_1.sol | 4 +- .../array_members/push_as_lhs_1d.sol | 6 +- .../array_members/push_as_lhs_2d.sol | 6 +- .../array_members/push_as_lhs_2d_2.sol | 3 +- .../array_members/push_as_lhs_3d.sol | 5 +- .../array_members/push_as_lhs_and_rhs_1d.sol | 6 +- .../push_as_lhs_and_rhs_2d_1.sol | 6 +- .../push_as_lhs_and_rhs_2d_2.sol | 4 +- .../push_as_lhs_and_rhs_bytes.sol | 6 +- .../array_members/push_as_lhs_bytes.sol | 6 +- .../array_members/push_as_lhs_bytes_2d.sol | 6 +- .../push_as_lhs_compound_assignment.sol | 6 +- .../array_members/push_as_lhs_struct.sol | 3 +- .../array_members/push_overflow_1_safe.sol | 4 +- ...overflow_1_safe_no_overflow_assumption.sol | 4 +- .../array_members/push_overflow_2_safe.sol | 2 + ...overflow_2_safe_no_overflow_assumption.sol | 4 +- .../array_members/push_push_no_args_1.sol | 3 +- .../push_push_no_args_1_fail.sol | 7 +- .../array_members/push_push_no_args_2.sol | 3 +- .../push_push_no_args_2_fail.sol | 9 +- .../push_storage_ref_safe_aliasing.sol | 11 +- .../push_storage_ref_unsafe_aliasing.sol | 10 +- .../push_storage_ref_unsafe_length.sol | 24 +- .../array_members/push_struct_member_1.sol | 3 +- .../array_members/push_struct_member_2.sol | 3 +- .../array_members/push_zero_2d_safe.sol | 4 +- .../array_members/push_zero_2d_unsafe.sol | 6 +- .../array_members/push_zero_safe.sol | 4 +- .../array_members/push_zero_unsafe.sol | 6 +- .../array_members/storage_pointer_push_1.sol | 5 +- .../storage_pointer_push_1_safe.sol | 3 +- .../blockchain_state/decreasing_balance.sol | 4 +- .../blockchain_state/this_does_not_change.sol | 4 +- .../this_does_not_change_external_call.sol | 4 +- .../this_does_not_change_internal_call.sol | 4 +- .../blockchain_state/transfer.sol | 5 +- .../smtCheckerTests/bmc_coverage/assert.sol | 9 +- .../bmc_coverage/assert_in_constructor.sol | 2 - .../branches_in_modifiers.sol | 4 +- .../branches_in_modifiers_2.sol | 8 +- .../constructor_state_variable_init.sol | 10 +- ...or_state_variable_init_chain_alternate.sol | 4 +- ...onstructor_state_variable_init_diamond.sol | 14 +- .../branches_with_return/constructors.sol | 6 +- .../branches_with_return/nested_if.sol | 6 +- .../return_in_both_branches.sol | 4 +- .../branches_with_return/simple_if.sol | 2 - .../branches_with_return/simple_if2.sol | 4 +- .../branches_with_return/simple_if_array.sol | 4 +- .../simple_if_state_var.sol | 4 +- .../branches_with_return/simple_if_struct.sol | 4 +- .../simple_if_struct_2.sol | 4 +- .../branches_with_return/simple_if_tuple.sol | 6 +- .../branches_with_return/triple_nested_if.sol | 2 - .../smtCheckerTests/bmc_coverage/funds.sol | 3 +- ...plicit_constructor_with_function_calls.sol | 4 +- .../smtCheckerTests/bmc_coverage/math.sol | 9 +- .../bmc_coverage/math_constructor.sol | 3 +- .../bmc_coverage/msg_value_4.sol | 3 +- .../bmc_coverage/range_check.sol | 2 - .../bmc_coverage/timestamp.sol | 2 - .../try_multiple_catch_clauses_2.sol | 3 +- ...ry_multiple_returned_values_with_tuple.sol | 3 +- .../unary_add_minus_overflow_detected.sol | 5 +- ...ked_function_call_with_unchecked_block.sol | 5 +- .../smtCheckerTests/complex/MerkleProof.sol | 4 +- .../complex/slither/const_state_variables.sol | 9 +- .../complex/slither/data_dependency.sol | 5 +- .../complex/slither/external_function.sol | 38 +- .../complex/warn_on_typecast.sol | 3 +- .../assignment_in_declaration.sol | 3 +- .../branches_assert_condition_1.sol | 3 +- .../branches_assert_condition_2.sol | 3 +- .../branches_inside_modifiers_1.sol | 5 +- .../branches_inside_modifiers_2.sol | 5 +- .../branches_inside_modifiers_3.sol | 5 +- .../branches_inside_modifiers_4.sol | 4 +- .../branches_merge_variables_1.sol | 3 +- .../branches_merge_variables_2.sol | 3 +- .../branches_merge_variables_3.sol | 3 +- .../branches_merge_variables_4.sol | 3 +- .../branches_merge_variables_5.sol | 3 +- .../branches_merge_variables_6.sol | 3 +- .../branches_in_modifiers.sol | 6 +- .../branches_in_modifiers_2.sol | 10 +- .../constructor_state_variable_init.sol | 12 +- ...or_state_variable_init_chain_alternate.sol | 6 +- ...onstructor_state_variable_init_diamond.sol | 16 +- .../branches_with_return/constructors.sol | 10 +- .../branches_with_return/nested_if.sol | 8 +- .../return_in_both_branches.sol | 6 +- .../branches_with_return/simple_if.sol | 4 +- .../branches_with_return/simple_if2.sol | 6 +- .../branches_with_return/simple_if_array.sol | 6 +- .../simple_if_state_var.sol | 6 +- .../branches_with_return/simple_if_struct.sol | 6 +- .../simple_if_struct_2.sol | 6 +- .../branches_with_return/simple_if_tuple.sol | 8 +- .../branches_with_return/triple_nested_if.sol | 4 +- .../function_call_inside_branch.sol | 4 +- .../function_call_inside_branch_2.sol | 4 +- .../function_call_inside_branch_3.sol | 4 +- .../function_call_inside_branch_4.sol | 4 +- .../function_call_inside_else_branch.sol | 4 +- .../function_call_inside_modifier_branch.sol | 4 +- ...ide_placeholder_inside_modifier_branch.sol | 4 +- .../smtCheckerTests/control_flow/require.sol | 8 +- .../smtCheckerTests/control_flow/return_1.sol | 4 +- .../control_flow/return_1_fail.sol | 11 +- .../smtCheckerTests/control_flow/return_2.sol | 4 +- .../control_flow/return_2_fail.sol | 19 +- .../smtCheckerTests/control_flow/revert.sol | 12 +- .../control_flow/revert_complex_flow.sol | 8 +- .../control_flow/short_circuit_and.sol | 4 +- .../control_flow/short_circuit_and_fail.sol | 6 +- .../short_circuit_and_inside_branch.sol | 8 +- .../short_circuit_and_need_both.sol | 4 +- .../short_circuit_and_need_both_fail.sol | 6 +- .../short_circuit_and_touched.sol | 14 +- .../short_circuit_and_touched_function.sol | 14 +- .../control_flow/short_circuit_or.sol | 4 +- .../control_flow/short_circuit_or_fail.sol | 6 +- .../short_circuit_or_inside_branch.sol | 6 +- .../short_circuit_or_need_both.sol | 4 +- .../short_circuit_or_need_both_fail.sol | 6 +- .../control_flow/short_circuit_or_touched.sol | 14 +- .../short_circuit_or_touched_function.sol | 14 +- .../control_flow/try_catch_1.sol | 4 +- .../control_flow/try_catch_2.sol | 2 +- .../virtual_function_call_inside_branch_1.sol | 4 +- .../virtual_function_call_inside_branch_2.sol | 5 +- .../ways_to_merge_variables_1.sol | 5 +- .../ways_to_merge_variables_2.sol | 5 +- .../ways_to_merge_variables_3.sol | 5 +- .../crypto_functions_compare_hashes.sol | 9 +- .../crypto/crypto_functions_fail.sol | 19 +- .../crypto/crypto_functions_not_same.sol | 5 +- .../crypto/crypto_functions_over_blocks.sol | 4 +- ...ions_same_input_over_state_same_output.sol | 4 +- ...same_input_over_state_same_output_fail.sol | 28 +- ...rypto_functions_same_input_same_output.sol | 4 +- .../external_calls/external.sol | 6 +- .../external_calls/external_hash.sol | 5 +- .../external_hash_known_code_pure.sol | 5 +- .../external_hash_known_code_state.sol | 5 +- ...ernal_hash_known_code_state_reentrancy.sol | 5 +- ...nal_hash_known_code_state_reentrancy_2.sol | 8 +- ...nal_hash_known_code_state_reentrancy_3.sol | 4 +- ...h_known_code_state_reentrancy_indirect.sol | 7 +- ...ash_known_code_state_reentrancy_unsafe.sol | 7 +- .../external_hash_known_code_state_unsafe.sol | 7 +- .../external_calls/external_inc.sol | 11 +- .../external_calls/external_inc1_inc2.sol | 6 +- .../external_calls/external_reentrancy_1.sol | 6 +- .../external_calls/external_reentrancy_2.sol | 6 +- .../external_calls/external_reentrancy_3.sol | 8 +- .../external_reentrancy_crypto.sol | 14 +- .../external_calls/external_safe.sol | 4 +- .../external_calls/external_single_inc.sol | 6 +- .../smtCheckerTests/external_calls/mutex.sol | 4 +- .../external_calls/mutex_f_no_guard.sol | 5 +- .../file_level/free_constant_1.sol | 7 +- .../file_level/free_constant_2.sol | 17 +- .../file_level/free_function_1.sol | 7 +- .../file_level/free_function_2.sol | 7 +- .../file_level/free_function_3.sol | 7 +- .../file_level/free_function_4.sol | 9 +- .../file_level/free_function_5.sol | 9 +- .../free_function_and_constant_1.sol | 11 +- .../function_selector_via_contract_name.sol | 3 +- .../function_selector/function_types_sig.sol | 14 +- .../function_selector/homer.sol | 6 +- .../function_selector/selector.sol | 4 +- .../function_selector/selector_2.sol | 6 +- .../function_selector/selector_3.sol | 6 +- .../functions/abi_encode_functions.sol | 4 +- .../functions/constructor_base_basic.sol | 4 +- .../functions/constructor_hierarchy.sol | 5 +- .../functions/constructor_hierarchy_2.sol | 5 +- .../functions/constructor_hierarchy_3.sol | 6 +- .../functions/constructor_hierarchy_4.sol | 7 +- .../constructor_hierarchy_diamond.sol | 6 +- .../constructor_hierarchy_diamond_2.sol | 6 +- .../constructor_hierarchy_diamond_3.sol | 8 +- ...tructor_hierarchy_diamond_empty_middle.sol | 7 +- ...rarchy_diamond_empty_middle_empty_base.sol | 3 +- .../constructor_hierarchy_empty_chain.sol | 7 +- .../constructor_hierarchy_empty_middle.sol | 7 +- ...r_hierarchy_empty_middle_no_invocation.sol | 7 +- .../constructor_hierarchy_mixed_chain.sol | 7 +- ...uctor_hierarchy_mixed_chain_empty_base.sol | 3 +- ...uctor_hierarchy_mixed_chain_local_vars.sol | 7 +- ...ctor_hierarchy_mixed_chain_with_params.sol | 6 +- ...or_hierarchy_mixed_chain_with_params_2.sol | 5 +- .../constructor_hierarchy_modifier.sol | 5 +- .../constructor_hierarchy_same_var.sol | 7 +- .../functions/constructor_simple.sol | 5 +- .../functions/constructor_state_value.sol | 6 +- .../constructor_state_value_inherited.sol | 5 +- .../constructor_state_value_parameter.sol | 7 +- .../functions/constructor_this.sol | 7 +- ...unction_call_does_not_clear_local_vars.sol | 3 +- .../function_call_state_var_init.sol | 6 +- ...tion_external_call_should_not_inline_1.sol | 5 +- ...tion_external_call_should_not_inline_2.sol | 3 +- .../functions/function_inline_chain.sol | 4 +- ...unction_inside_branch_modify_state_var.sol | 6 +- ...ction_inside_branch_modify_state_var_2.sol | 4 +- ...ction_inside_branch_modify_state_var_3.sol | 8 +- .../functions/functions_bound_1.sol | 4 +- .../functions/functions_bound_1_fail.sol | 6 +- .../functions/functions_external_1.sol | 4 +- .../functions/functions_external_2.sol | 5 +- .../functions/functions_external_3.sol | 4 +- .../functions/functions_external_4.sol | 5 +- .../functions_identifier_nested_tuple_1.sol | 4 +- .../functions_identifier_nested_tuple_2.sol | 4 +- .../functions_identifier_nested_tuple_3.sol | 5 +- .../functions/functions_identity_1.sol | 3 +- .../functions/functions_identity_1_fail.sol | 5 +- .../functions/functions_identity_2.sol | 3 +- .../functions/functions_identity_2_fail.sol | 5 +- .../functions/functions_identity_as_tuple.sol | 3 +- .../functions_identity_as_tuple_fail.sol | 5 +- .../functions/functions_library_1.sol | 4 +- .../functions/functions_library_1_fail.sol | 6 +- .../functions/functions_recursive.sol | 3 +- .../functions_recursive_indirect.sol | 3 +- .../functions/functions_storage_var_1.sol | 3 +- .../functions_storage_var_1_fail.sol | 5 +- .../functions/functions_storage_var_2.sol | 3 +- .../functions_storage_var_2_fail.sol | 5 +- .../functions_trivial_condition_for.sol | 6 +- ...ctions_trivial_condition_for_only_call.sol | 4 +- .../functions_trivial_condition_if.sol | 5 +- .../functions_trivial_condition_require.sol | 6 +- ...ns_trivial_condition_require_only_call.sol | 4 +- .../functions_trivial_condition_while.sol | 6 +- ...ions_trivial_condition_while_only_call.sol | 4 +- .../functions/getters/address.sol | 8 +- .../functions/getters/array_1.sol | 6 +- .../functions/getters/array_2.sol | 5 +- .../functions/getters/array_of_structs_1.sol | 4 +- .../functions/getters/array_of_structs_2.sol | 6 +- .../functions/getters/array_of_structs_3.sol | 6 +- .../functions/getters/bytes.sol | 10 +- .../functions/getters/contract.sol | 6 +- .../functions/getters/double_access.sol | 6 +- .../functions/getters/enum.sol | 6 +- .../functions/getters/fixed_bytes.sol | 8 +- .../functions/getters/function.sol | 8 +- .../getters/inaccessible_dynamic_type_1.sol | 4 +- .../getters/inaccessible_dynamic_type_2.sol | 4 +- .../getters/inaccessible_dynamic_type_3.sol | 4 +- .../getters/inaccessible_dynamic_type_4.sol | 4 +- .../functions/getters/mapping_1.sol | 6 +- .../functions/getters/mapping_2.sol | 6 +- .../functions/getters/mapping_with_cast.sol | 6 +- .../getters/nested_arrays_mappings_1.sol | 6 +- .../getters/nested_arrays_mappings_10.sol | 5 +- .../getters/nested_arrays_mappings_2.sol | 5 +- .../getters/nested_arrays_mappings_3.sol | 4 +- .../getters/nested_arrays_mappings_4.sol | 5 +- .../getters/nested_arrays_mappings_5.sol | 5 +- .../getters/nested_arrays_mappings_6.sol | 4 +- .../getters/nested_arrays_mappings_7.sol | 6 +- .../getters/nested_arrays_mappings_8.sol | 6 +- .../getters/nested_arrays_mappings_9.sol | 6 +- .../functions/getters/static_array.sol | 6 +- .../functions/getters/string.sol | 10 +- .../functions/getters/struct_1.sol | 5 +- .../functions/getters/struct_2.sol | 5 +- .../functions/getters/struct_3.sol | 6 +- .../functions/getters/struct_4.sol | 8 +- .../getters/struct_with_reassignment.sol | 8 +- .../functions/getters/uint.sol | 6 +- .../functions/internal_call_inheritance.sol | 6 +- .../internal_call_state_var_init.sol | 3 +- .../internal_call_state_var_init_2.sol | 5 +- .../internal_call_with_assertion_1.sol | 6 +- .../internal_call_with_assertion_1_fail.sol | 16 +- ...rnal_call_with_assertion_inheritance_1.sol | 4 +- ...call_with_assertion_inheritance_1_fail.sol | 10 +- ...ternal_multiple_calls_with_assertion_1.sol | 6 +- ...l_multiple_calls_with_assertion_1_fail.sol | 12 +- .../functions/library_after_contract.sol | 6 +- .../functions/library_constant.sol | 8 +- .../functions/library_constant_2.sol | 4 +- .../functions/recursive_multi_return.sol | 8 +- .../functions/recursive_multi_return_2.sol | 34 +- .../functions/super_function_assert.sol | 7 +- .../functions/this_external_call.sol | 4 +- .../functions/this_external_call_2.sol | 6 +- .../functions/this_external_call_return.sol | 4 +- .../functions/this_external_call_sender.sol | 7 +- .../this_external_call_tx_origin.sol | 4 +- .../smtCheckerTests/functions/this_state.sol | 4 +- .../functions/virtual_function_assert.sol | 5 +- ...virtual_function_called_by_constructor.sol | 7 +- .../smtCheckerTests/imports/import_base.sol | 5 +- .../imports/import_library.sol | 5 +- .../imports/imported_fail_1.sol | 8 +- .../imports/imported_fail_2.sol | 10 +- .../imports/imported_fail_3.sol | 8 +- .../smtCheckerTests/imports/private_vars.sol | 4 +- .../smtCheckerTests/imports/simple.sol | 3 +- .../simple_imported_fail_no_pragma.sol | 12 - .../simple_imported_fail_two_pragmas.sol | 14 - .../base_contract_assertion_fail_1.sol | 6 +- .../base_contract_assertion_fail_2.sol | 6 +- .../base_contract_assertion_fail_3.sol | 6 +- .../base_contract_assertion_fail_4.sol | 6 +- .../base_contract_assertion_fail_5.sol | 6 +- .../base_contract_assertion_fail_6.sol | 6 +- .../base_contract_assertion_fail_7.sol | 6 +- .../base_contract_assertion_fail_8.sol | 6 +- .../base_contract_assertion_fail_9.sol | 8 +- ...chy_base_calls_inheritance_specifier_1.sol | 8 +- ...chy_base_calls_inheritance_specifier_2.sol | 9 +- ...erarchy_base_calls_with_side_effects_1.sol | 7 +- ...erarchy_base_calls_with_side_effects_2.sol | 6 +- ...erarchy_base_calls_with_side_effects_3.sol | 7 +- ...erarchy_base_calls_with_side_effects_4.sol | 7 +- ...erarchy_base_calls_with_side_effects_5.sol | 7 +- ...erarchy_base_calls_with_side_effects_6.sol | 6 +- ...erarchy_base_calls_with_side_effects_7.sol | 6 +- ...erarchy_base_calls_with_side_effects_8.sol | 8 +- ...erarchy_base_calls_with_side_effects_9.sol | 8 +- ...ctor_hierarchy_mixed_chain_with_params.sol | 6 +- .../constructor_state_variable_init.sol | 6 +- ...onstructor_state_variable_init_asserts.sol | 12 +- .../constructor_state_variable_init_base.sol | 6 +- .../constructor_state_variable_init_chain.sol | 6 +- ...or_state_variable_init_chain_alternate.sol | 6 +- ...ctor_state_variable_init_chain_run_all.sol | 8 +- ...or_state_variable_init_chain_run_all_2.sol | 8 +- ...tructor_state_variable_init_chain_tree.sol | 8 +- ...onstructor_state_variable_init_diamond.sol | 6 +- ...tor_state_variable_init_diamond_middle.sol | 8 +- ...ctor_state_variable_init_function_call.sol | 4 +- .../constructor_uses_function_base.sol | 4 +- .../inheritance/diamond_super_1.sol | 5 +- .../inheritance/diamond_super_2.sol | 7 +- .../inheritance/diamond_super_3.sol | 6 +- .../smtCheckerTests/inheritance/fallback.sol | 10 +- .../inheritance/fallback_receive.sol | 10 +- .../inheritance/functions_1.sol | 10 +- .../inheritance/functions_2.sol | 10 +- .../inheritance/functions_3.sol | 16 +- .../implicit_constructor_hierarchy.sol | 3 +- .../implicit_only_constructor_hierarchy.sol | 3 +- .../overriden_function_static_call_parent.sol | 6 +- .../smtCheckerTests/inheritance/receive.sol | 10 +- .../inheritance/receive_fallback.sol | 10 +- .../inheritance/state_variables.sol | 4 +- .../inheritance/state_variables_2.sol | 4 +- .../inheritance/state_variables_3.sol | 4 +- .../inline_assembly/assembly_1.sol | 20 +- .../inline_assembly/assembly_2.sol | 10 +- .../inline_assembly/assembly_3.sol | 10 +- .../inline_assembly/assembly_4.sol | 8 +- .../inline_assembly/assembly_5.sol | 8 +- .../inline_assembly/assembly_6.sol | 8 +- ...y_local_storage_access_inside_function.sol | 12 +- .../assembly_local_storage_pointer.sol | 11 +- .../inline_assembly/assembly_memory_write.sol | 11 +- .../smtCheckerTests/inline_assembly/empty.sol | 8 +- .../inline_assembly/local_var.sol | 8 +- .../invariants/aon_blog_post.sol | 5 +- .../smtCheckerTests/invariants/loop_basic.sol | 3 +- .../invariants/loop_basic_for.sol | 3 +- .../invariants/loop_nested.sol | 4 +- .../invariants/loop_nested_for.sol | 4 +- .../invariants/state_machine_1.sol | 3 +- .../invariants/state_machine_1_fail.sol | 3 +- .../smtCheckerTests/loops/do_while_1_fail.sol | 5 +- .../loops/do_while_1_false_positives.sol | 3 +- .../smtCheckerTests/loops/do_while_break.sol | 7 +- .../loops/do_while_break_2.sol | 7 +- .../loops/do_while_break_2_fail.sol | 9 +- .../loops/do_while_break_fail.sol | 9 +- .../loops/do_while_continue.sol | 5 +- .../smtCheckerTests/loops/for_1_break.sol | 3 +- .../loops/for_1_break_fail.sol | 5 +- .../smtCheckerTests/loops/for_1_continue.sol | 3 +- .../loops/for_1_continue_fail.sol | 7 +- .../smtCheckerTests/loops/for_1_fail.sol | 9 +- .../loops/for_1_false_positive.sol | 6 +- .../loops/for_break_direct.sol | 5 +- .../smtCheckerTests/loops/for_loop_1.sol | 2 +- .../smtCheckerTests/loops/for_loop_2.sol | 2 +- .../smtCheckerTests/loops/for_loop_3.sol | 2 +- .../smtCheckerTests/loops/for_loop_4.sol | 4 +- .../smtCheckerTests/loops/for_loop_5.sol | 4 +- .../smtCheckerTests/loops/for_loop_6.sol | 2 +- ...or_loop_array_assignment_memory_memory.sol | 11 +- ...r_loop_array_assignment_memory_storage.sol | 9 +- ...r_loop_array_assignment_storage_memory.sol | 4 +- ..._loop_array_assignment_storage_storage.sol | 3 +- .../loops/for_loop_trivial_condition_1.sol | 4 +- .../loops/for_loop_trivial_condition_2.sol | 4 +- .../loops/for_loop_trivial_condition_3.sol | 4 +- .../loops/for_loop_unreachable_1.sol | 4 +- .../smtCheckerTests/loops/while_1.sol | 3 +- .../smtCheckerTests/loops/while_1_break.sol | 3 +- .../loops/while_1_break_fail.sol | 5 +- .../loops/while_1_continue.sol | 3 +- .../loops/while_1_continue_fail.sol | 7 +- .../smtCheckerTests/loops/while_1_fail.sol | 5 +- .../loops/while_1_infinite.sol | 3 +- .../smtCheckerTests/loops/while_2.sol | 2 +- .../smtCheckerTests/loops/while_2_break.sol | 5 +- .../loops/while_2_break_fail.sol | 9 +- .../smtCheckerTests/loops/while_2_fail.sol | 2 +- .../loops/while_break_direct.sol | 5 +- ...le_loop_array_assignment_memory_memory.sol | 7 +- ...e_loop_array_assignment_memory_storage.sol | 5 +- ..._loop_array_assignment_storage_storage.sol | 16 +- .../loops/while_loop_simple_1.sol | 4 +- .../loops/while_loop_simple_2.sol | 2 +- .../loops/while_loop_simple_3.sol | 6 +- .../loops/while_loop_simple_4.sol | 2 +- .../loops/while_loop_simple_5.sol | 4 +- .../loops/while_nested_break.sol | 3 +- .../loops/while_nested_break_fail.sol | 8 +- .../loops/while_nested_continue.sol | 3 +- .../loops/while_nested_continue_fail.sol | 8 +- .../smtCheckerTests/math/addmod_1.sol | 10 +- .../smtCheckerTests/math/addmod_mulmod.sol | 8 +- .../math/addmod_mulmod_zero.sol | 14 +- .../smtCheckerTests/math/addmulmod.sol | 4 +- .../smtCheckerTests/math/mulmod_1.sol | 10 +- .../modifiers/modifier_abstract.sol | 4 +- .../modifier_assignment_outside_branch.sol | 4 +- .../modifier_code_after_placeholder.sol | 6 +- .../modifiers/modifier_control_flow.sol | 6 +- ...modifier_inline_function_inside_branch.sol | 4 +- .../modifiers/modifier_inside_branch.sol | 4 +- .../modifier_inside_branch_assignment.sol | 6 +- ...difier_inside_branch_assignment_branch.sol | 6 +- ...nside_branch_assignment_multi_branches.sol | 6 +- .../modifiers/modifier_multi.sol | 6 +- .../modifiers/modifier_multi_functions.sol | 6 +- .../modifier_multi_functions_recursive.sol | 4 +- .../modifiers/modifier_multi_parameters.sol | 6 +- .../modifiers/modifier_overflow.sol | 4 +- .../modifiers/modifier_overriding_1.sol | 6 +- .../modifiers/modifier_overriding_2.sol | 8 +- .../modifiers/modifier_overriding_3.sol | 8 +- .../modifiers/modifier_overriding_4.sol | 10 +- .../modifiers/modifier_parameter_copy.sol | 6 +- .../modifiers/modifier_parameters.sol | 4 +- .../modifiers/modifier_return.sol | 4 +- .../modifier_same_local_variables.sol | 6 +- .../modifiers/modifier_simple.sol | 4 +- .../modifiers/modifier_two_invocations.sol | 4 +- .../modifiers/modifier_two_invocations_2.sol | 6 +- .../modifiers/modifier_two_placeholders.sol | 6 +- .../modifier_virtual_static_call_1.sol | 3 +- .../modifier_virtual_static_call_2.sol | 5 +- .../assignment_contract_member_variable.sol | 4 +- ...ignment_contract_member_variable_array.sol | 5 +- ...nment_contract_member_variable_array_2.sol | 3 +- ...nment_contract_member_variable_array_3.sol | 11 +- ...gnment_module_contract_member_variable.sol | 7 +- .../operators/bitwise_and_fixed_bytes.sol | 5 +- .../operators/bitwise_and_int.sol | 6 +- .../operators/bitwise_and_rational.sol | 6 +- .../operators/bitwise_and_uint.sol | 10 +- .../operators/bitwise_combo.sol | 4 +- .../operators/bitwise_not_fixed_bytes.sol | 6 +- .../operators/bitwise_not_int.sol | 12 +- .../operators/bitwise_not_uint.sol | 8 +- .../operators/bitwise_or_fixed_bytes.sol | 5 +- .../operators/bitwise_or_int.sol | 8 +- .../operators/bitwise_or_uint.sol | 8 +- .../operators/bitwise_rational_1.sol | 4 +- .../operators/bitwise_rational_2.sol | 6 +- .../operators/bitwise_xor_fixed_bytes.sol | 4 +- .../operators/bitwise_xor_int.sol | 8 +- .../operators/bitwise_xor_uint.sol | 8 +- .../smtCheckerTests/operators/bytes_new.sol | 8 +- .../operators/compound_add.sol | 6 +- .../operators/compound_add_array_index.sol | 6 +- .../operators/compound_add_chain.sol | 4 +- .../operators/compound_add_mapping.sol | 6 +- .../compound_assignment_division_1.sol | 5 +- .../compound_assignment_division_2.sol | 5 +- .../compound_assignment_division_3.sol | 5 +- .../compound_assignment_right_shift.sol | 4 +- .../compound_bitwise_and_fixed_bytes.sol | 7 +- .../operators/compound_bitwise_and_int.sol | 6 +- .../operators/compound_bitwise_and_uint.sol | 10 +- .../compound_bitwise_or_fixed_bytes.sol | 7 +- .../operators/compound_bitwise_or_int.sol | 6 +- .../operators/compound_bitwise_or_int_1.sol | 21 +- .../operators/compound_bitwise_or_uint.sol | 10 +- .../operators/compound_bitwise_or_uint_1.sol | 11 +- .../operators/compound_bitwise_or_uint_2.sol | 3 +- .../operators/compound_bitwise_or_uint_3.sol | 7 +- .../compound_bitwise_string_literal.sol | 5 +- .../compound_bitwise_string_literal_2.sol | 6 +- .../compound_bitwise_string_literal_3.sol | 8 +- .../compound_bitwise_xor_fixed_bytes.sol | 7 +- .../operators/compound_bitwise_xor_int.sol | 6 +- .../operators/compound_bitwise_xor_uint.sol | 10 +- .../operators/compound_mul.sol | 6 +- .../operators/compound_mul_array_index.sol | 6 +- .../operators/compound_mul_mapping.sol | 6 +- .../operators/compound_shl_1.sol | 4 +- .../operators/compound_shr_1.sol | 6 +- .../operators/compound_sub.sol | 6 +- .../operators/compound_sub_array_index.sol | 5 +- .../operators/compound_sub_mapping.sol | 5 +- .../operators/conditional_assignment_1.sol | 6 +- .../operators/conditional_assignment_2.sol | 5 +- .../operators/conditional_assignment_3.sol | 5 +- .../operators/conditional_assignment_4.sol | 6 +- .../operators/conditional_assignment_5.sol | 7 +- .../operators/conditional_assignment_6.sol | 6 +- .../conditional_assignment_always_false.sol | 6 +- .../conditional_assignment_always_true.sol | 8 +- .../conditional_assignment_function_1.sol | 6 +- .../conditional_assignment_function_2.sol | 5 +- ...ditional_assignment_nested_always_true.sol | 6 +- .../conditional_assignment_nested_unsafe.sol | 6 +- .../conditional_assignment_statevar_1.sol | 13 +- .../smtCheckerTests/operators/const_exp_1.sol | 8 +- .../operators/constant_propagation_1.sol | 6 +- .../operators/constant_propagation_2.sol | 4 +- .../operators/delete_array.sol | 6 +- .../operators/delete_array_2d.sol | 4 +- .../operators/delete_array_index.sol | 6 +- .../operators/delete_array_index_2d.sol | 31 +- .../operators/delete_array_push.sol | 7 +- .../operators/delete_function.sol | 6 +- .../operators/delete_multid_array.sol | 3 +- .../operators/delete_struct.sol | 4 +- .../operators/delete_tuple.sol | 4 +- .../smtCheckerTests/operators/div_zero.sol | 6 +- .../smtCheckerTests/operators/division_1.sol | 5 +- .../smtCheckerTests/operators/division_2.sol | 3 +- .../smtCheckerTests/operators/division_3.sol | 5 +- .../smtCheckerTests/operators/division_4.sol | 3 +- .../smtCheckerTests/operators/division_5.sol | 5 +- .../smtCheckerTests/operators/division_6.sol | 7 +- .../smtCheckerTests/operators/division_7.sol | 3 +- .../division_truncates_correctly_1.sol | 3 +- .../division_truncates_correctly_2.sol | 3 +- .../division_truncates_correctly_3.sol | 3 +- .../division_truncates_correctly_4.sol | 3 +- .../division_truncates_correctly_5.sol | 3 +- .../smtCheckerTests/operators/exp.sol | 9 +- .../operators/fixed_point_add.sol | 5 +- .../operators/fixed_point_compound_add.sol | 3 +- .../function_call_named_arguments.sol | 5 +- .../operators/index_access_for_bytes.sol | 6 +- .../operators/index_access_for_bytesNN.sol | 3 +- .../operators/index_access_for_string.sol | 4 +- .../operators/index_access_side_effect.sol | 13 +- .../smtCheckerTests/operators/integer_new.sol | 8 +- .../smtCheckerTests/operators/mod.sol | 3 +- .../smtCheckerTests/operators/mod_even.sol | 4 +- .../smtCheckerTests/operators/mod_n.sol | 4 +- .../operators/mod_n_uint16.sol | 4 +- .../smtCheckerTests/operators/mod_signed.sol | 5 +- .../named_arguments_in_any_order.sol | 3 +- .../named_arguments_overload_in_any_order.sol | 3 +- .../operators/shifts/compound_shift_left.sol | 4 +- .../operators/shifts/compound_shift_right.sol | 4 +- .../operators/shifts/shift_cleanup.sol | 5 +- .../operators/shifts/shift_left.sol | 12 +- .../shifts/shift_left_larger_type.sol | 6 +- .../operators/shifts/shift_left_uint32.sol | 12 +- .../operators/shifts/shift_left_uint8.sol | 8 +- .../operators/shifts/shift_overflow.sol | 14 +- .../operators/shifts/shift_right.sol | 12 +- .../shifts/shift_right_negative_literal.sol | 16 +- .../shifts/shift_right_negative_lvalue.sol | 16 +- .../shift_right_negative_lvalue_int16.sol | 16 +- .../shift_right_negative_lvalue_int32.sol | 16 +- .../shift_right_negative_lvalue_int8.sol | 16 +- .../operators/shifts/shift_right_uint32.sol | 12 +- .../operators/shifts/shift_right_uint8.sol | 8 +- .../shift_underflow_negative_rvalue.sol | 8 +- .../operators/shifts/shr_unused.sol | 4 +- .../smtCheckerTests/operators/slice.sol | 4 +- .../smtCheckerTests/operators/slice_bytes.sol | 3 +- .../operators/slice_default_end.sol | 8 +- .../operators/slice_default_start.sol | 10 +- .../smtCheckerTests/operators/slices_1.sol | 4 +- .../smtCheckerTests/operators/slices_2.sol | 3 +- .../smtCheckerTests/operators/slices_3.sol | 8 +- .../operators/tuple_rationals_conditional.sol | 4 +- .../smtCheckerTests/operators/unary_add.sol | 6 +- .../operators/unary_add_array.sol | 5 +- .../operators/unary_add_array_push_1.sol | 5 +- .../operators/unary_add_array_push_2.sol | 4 +- .../operators/unary_add_mapping.sol | 5 +- .../unary_add_minus_overflow_detected.sol | 9 +- .../unary_add_overflows_correctly.sol | 6 +- .../unary_add_overflows_correctly_struct.sol | 6 +- .../operators/unary_operators_tuple_1.sol | 3 +- .../operators/unary_operators_tuple_2.sol | 3 +- .../operators/unary_operators_tuple_3.sol | 5 +- .../smtCheckerTests/operators/unary_sub.sol | 6 +- .../operators/unary_sub_array.sol | 5 +- .../operators/unary_sub_mapping.sol | 5 +- .../smtCheckerTests/out_of_bounds/array_1.sol | 14 +- .../smtCheckerTests/out_of_bounds/array_2.sol | 4 +- .../out_of_bounds/array_2d_1.sol | 4 +- .../out_of_bounds/array_2d_2.sol | 6 +- .../out_of_bounds/array_2d_3.sol | 4 +- .../out_of_bounds/array_2d_4.sol | 20 +- .../smtCheckerTests/out_of_bounds/array_3.sol | 6 +- .../smtCheckerTests/out_of_bounds/array_4.sol | 4 +- .../out_of_bounds/fixed_bytes_1.sol | 4 +- .../out_of_bounds/fixed_bytes_2.sol | 6 +- .../out_of_bounds/fixed_bytes_3.sol | 4 +- .../out_of_bounds/fixed_bytes_4.sol | 6 +- .../overflow/overflow_constant_bound.sol | 9 +- .../smtCheckerTests/overflow/overflow_mul.sol | 6 +- .../overflow/overflow_mul_cex_with_array.sol | 7 +- .../overflow/overflow_mul_signed.sol | 6 +- .../smtCheckerTests/overflow/overflow_sum.sol | 6 +- .../overflow/overflow_sum_signed.sol | 4 +- .../smtCheckerTests/overflow/safe_sub_1.sol | 4 +- .../overflow/signed_div_overflow.sol | 9 +- .../overflow/signed_guard_sub_overflow.sol | 6 +- .../overflow/signed_guard_sum_overflow.sol | 7 +- .../overflow/signed_mod_overflow.sol | 6 +- .../overflow/signed_mul_overflow.sol | 7 +- .../overflow/signed_sub_overflow.sol | 7 +- .../overflow/signed_sum_overflow.sol | 7 +- .../overflow/simple_overflow.sol | 5 +- .../overflow/underflow_sub.sol | 4 +- .../overflow/underflow_sub_signed.sol | 4 +- .../overflow/unsigned_div_overflow.sol | 6 +- .../overflow/unsigned_guard_sub_overflow.sol | 4 +- .../overflow/unsigned_guard_sum_overflow.sol | 5 +- .../overflow/unsigned_mod_overflow.sol | 6 +- .../overflow/unsigned_mul_overflow.sol | 6 +- .../overflow/unsigned_sub_overflow.sol | 6 +- .../overflow/unsigned_sum_overflow.sol | 5 +- .../smtCheckerTests/simple/smoke_test.sol | 3 +- .../smtCheckerTests/simple/static_array.sol | 3 +- .../special/abi_decode_memory_v2.sol | 15 +- .../abi_decode_memory_v2_value_types.sol | 7 +- .../special/abi_decode_simple.sol | 21 +- .../special/abi_encode_slice.sol | 3 +- .../smtCheckerTests/special/blockhash.sol | 8 +- .../smtCheckerTests/special/chainid.sol | 3 +- .../smtCheckerTests/special/difficulty.sol | 5 +- .../smtCheckerTests/special/ether_units.sol | 9 +- .../smtCheckerTests/special/event.sol | 10 +- .../smtCheckerTests/special/gasleft.sol | 8 +- .../smtCheckerTests/special/many.sol | 19 +- .../smtCheckerTests/special/msg_data.sol | 8 +- .../smtCheckerTests/special/msg_sender_1.sol | 4 +- .../smtCheckerTests/special/msg_sender_2.sol | 4 +- .../smtCheckerTests/special/msg_sender_3.sol | 4 +- .../special/msg_sender_fail_1.sol | 5 +- .../special/msg_sender_range.sol | 4 +- .../smtCheckerTests/special/msg_sig.sol | 10 +- .../smtCheckerTests/special/msg_value_1.sol | 7 +- .../smtCheckerTests/special/msg_value_2.sol | 5 +- .../smtCheckerTests/special/msg_value_3.sol | 3 +- .../smtCheckerTests/special/msg_value_4.sol | 5 +- .../special/msg_value_inheritance_1.sol | 6 +- .../special/msg_value_inheritance_2.sol | 8 +- .../special/msg_value_inheritance_3.sol | 6 +- .../smtCheckerTests/special/range_check.sol | 4 +- .../smtCheckerTests/special/this.sol | 5 +- .../smtCheckerTests/special/this_state.sol | 4 +- .../smtCheckerTests/special/time_units.sol | 13 +- .../smtCheckerTests/special/timestamp.sol | 4 +- .../smtCheckerTests/special/timestamp_2.sol | 6 +- .../special/tx_data_gasleft_changes.sol | 7 +- .../special/tx_data_immutable.sol | 4 +- .../special/tx_data_immutable_fail.sol | 51 ++- .../smtCheckerTests/try_catch/try_1.sol | 7 +- .../smtCheckerTests/try_catch/try_2.sol | 5 +- .../smtCheckerTests/try_catch/try_3.sol | 7 +- .../smtCheckerTests/try_catch/try_4.sol | 7 +- .../smtCheckerTests/try_catch/try_5.sol | 6 +- .../try_catch/try_call_in_catch_1.sol | 5 +- .../try_catch/try_call_in_catch_2.sol | 9 +- .../try_catch/try_inside_if.sol | 5 +- .../try_catch/try_inside_while.sol | 7 +- .../try_catch/try_multiple_catch_clauses.sol | 5 +- .../try_multiple_catch_clauses_2.sol | 5 +- .../try_multiple_returned_values.sol | 12 +- ...ry_multiple_returned_values_with_tuple.sol | 5 +- .../try_catch/try_nested_1.sol | 4 +- .../try_catch/try_nested_2.sol | 5 +- .../try_catch/try_nested_3.sol | 5 +- .../smtCheckerTests/try_catch/try_new.sol | 12 +- .../try_catch/try_public_var.sol | 5 +- .../try_catch/try_public_var_mapping.sol | 6 +- .../try_string_literal_to_bytes_array.sol | 3 +- .../try_string_literal_to_fixed_bytes.sol | 4 +- .../typecast/address_literal.sol | 6 +- .../typecast/cast_address_1.sol | 4 +- .../typecast/cast_different_size_1.sol | 4 +- .../typecast/cast_larger_1.sol | 4 +- .../typecast/cast_larger_2.sol | 4 +- .../typecast/cast_larger_2_fail.sol | 6 +- .../typecast/cast_larger_3.sol | 6 +- .../typecast/cast_smaller_1.sol | 4 +- .../typecast/cast_smaller_2.sol | 4 +- .../typecast/cast_smaller_3.sol | 4 +- .../smtCheckerTests/typecast/downcast.sol | 4 +- .../typecast/enum_from_uint.sol | 4 +- .../typecast/enum_to_uint_max_value.sol | 4 +- ...unction_type_to_function_type_external.sol | 5 +- ...unction_type_to_function_type_internal.sol | 27 +- .../implicit_cast_string_literal_byte.sol | 6 +- .../typecast/number_literal.sol | 4 +- .../smtCheckerTests/typecast/same_size.sol | 4 +- .../typecast/slice_to_bytes.sol | 4 +- .../string_literal_to_dynamic_bytes.sol | 6 +- ..._fixed_bytes_constant_initialization_1.sol | 4 +- ..._fixed_bytes_constant_initialization_2.sol | 4 +- ...string_literal_to_fixed_bytes_explicit.sol | 3 +- ...g_literal_to_fixed_bytes_function_call.sol | 6 +- ...string_literal_to_fixed_bytes_modifier.sol | 5 +- .../string_literal_to_fixed_bytes_return.sol | 5 +- ...ng_literal_to_fixed_bytes_return_multi.sol | 5 +- .../string_literal_to_fixed_bytes_upcast.sol | 6 +- .../typecast/string_to_bytes_push_1.sol | 6 +- .../typecast/string_to_bytes_push_2.sol | 6 +- .../smtCheckerTests/typecast/upcast.sol | 4 +- .../smtCheckerTests/types/address_balance.sol | 10 +- .../smtCheckerTests/types/address_call.sol | 17 +- .../types/address_delegatecall.sol | 17 +- .../types/address_staticcall.sol | 7 +- .../types/address_transfer.sol | 8 +- .../types/address_transfer_2.sol | 9 +- .../types/address_transfer_insufficient.sol | 10 +- .../types/array_aliasing_memory_1.sol | 31 +- .../types/array_aliasing_memory_2.sol | 10 +- .../types/array_aliasing_memory_3.sol | 3 +- .../types/array_aliasing_storage_1.sol | 5 +- .../types/array_aliasing_storage_2.sol | 11 +- .../types/array_aliasing_storage_3.sol | 13 +- .../types/array_aliasing_storage_4.sol | 5 +- .../types/array_aliasing_storage_5.sol | 19 +- .../smtCheckerTests/types/array_branch_1d.sol | 5 +- .../smtCheckerTests/types/array_branch_2d.sol | 4 +- .../smtCheckerTests/types/array_branch_3d.sol | 18 +- .../types/array_branches_1d.sol | 4 +- .../types/array_branches_2d.sol | 4 +- .../types/array_branches_3d.sol | 16 +- .../smtCheckerTests/types/array_dynamic_1.sol | 4 +- .../types/array_dynamic_1_fail.sol | 6 +- .../smtCheckerTests/types/array_dynamic_2.sol | 8 +- .../types/array_dynamic_2_fail.sol | 6 +- .../smtCheckerTests/types/array_dynamic_3.sol | 4 +- .../types/array_dynamic_3_fail.sol | 6 +- .../types/array_dynamic_parameter_1.sol | 4 +- .../types/array_dynamic_parameter_1_fail.sol | 6 +- .../smtCheckerTests/types/array_literal_1.sol | 4 +- .../smtCheckerTests/types/array_literal_2.sol | 6 +- .../smtCheckerTests/types/array_literal_3.sol | 6 +- .../smtCheckerTests/types/array_literal_4.sol | 4 +- .../smtCheckerTests/types/array_literal_5.sol | 6 +- .../smtCheckerTests/types/array_literal_6.sol | 8 +- .../smtCheckerTests/types/array_literal_7.sol | 8 +- .../types/array_mapping_aliasing_1.sol | 7 +- .../types/array_mapping_aliasing_2.sol | 19 +- .../smtCheckerTests/types/array_static_1.sol | 4 +- .../types/array_static_1_fail.sol | 6 +- .../smtCheckerTests/types/array_static_2.sol | 4 +- .../types/array_static_2_fail.sol | 6 +- .../smtCheckerTests/types/array_static_3.sol | 4 +- .../types/array_static_3_fail.sol | 6 +- .../types/array_static_aliasing_memory_5.sol | 8 +- .../types/array_static_aliasing_storage_5.sol | 13 +- .../types/array_static_mapping_aliasing_1.sol | 11 +- .../types/array_static_mapping_aliasing_2.sol | 17 +- .../types/array_struct_array_branches_2d.sol | 8 +- .../types/bool_int_mixed_1.sol | 3 +- .../types/bool_int_mixed_2.sol | 3 +- .../types/bool_int_mixed_3.sol | 3 +- .../smtCheckerTests/types/bool_simple_1.sol | 5 +- .../smtCheckerTests/types/bool_simple_2.sol | 5 +- .../smtCheckerTests/types/bool_simple_3.sol | 3 +- .../smtCheckerTests/types/bool_simple_4.sol | 3 +- .../smtCheckerTests/types/bool_simple_5.sol | 3 +- .../smtCheckerTests/types/bool_simple_6.sol | 3 +- .../smtCheckerTests/types/bytes_1.sol | 6 +- .../smtCheckerTests/types/bytes_2.sol | 5 +- .../smtCheckerTests/types/bytes_2_fail.sol | 5 +- .../smtCheckerTests/types/bytes_length.sol | 4 +- .../smtCheckerTests/types/contract.sol | 5 +- .../smtCheckerTests/types/contract_2.sol | 5 +- .../smtCheckerTests/types/contract_3.sol | 4 +- .../types/contract_address_conversion.sol | 5 +- .../types/contract_address_conversion_2.sol | 4 +- .../types/data_location_in_function_type.sol | 3 +- .../types/enum_explicit_values.sol | 4 +- .../types/enum_explicit_values_2.sol | 6 +- .../smtCheckerTests/types/enum_in_library.sol | 4 +- .../types/enum_in_library_2.sol | 6 +- .../smtCheckerTests/types/enum_in_struct.sol | 3 +- .../smtCheckerTests/types/enum_range.sol | 4 +- .../smtCheckerTests/types/enum_storage_eq.sol | 6 +- .../types/enum_transitivity.sol | 4 +- .../types/event_with_rational_size_array.sol | 3 +- .../smtCheckerTests/types/fixed_bytes_1.sol | 7 +- .../smtCheckerTests/types/fixed_bytes_2.sol | 6 +- .../types/fixed_bytes_access_1.sol | 3 +- .../types/fixed_bytes_access_2.sol | 4 +- .../types/fixed_bytes_access_3.sol | 5 +- .../types/fixed_bytes_access_4.sol | 6 +- .../types/fixed_bytes_access_5.sol | 10 +- .../types/fixed_bytes_access_6.sol | 4 +- .../types/fixed_bytes_access_7.sol | 8 +- .../types/fixed_bytes_range.sol | 4 +- .../types/function_in_tuple_1.sol | 6 +- .../types/function_in_tuple_2.sol | 6 +- .../function_type_array_as_reference_type.sol | 3 +- .../types/function_type_arrays.sol | 3 +- .../types/function_type_as_argument.sol | 3 +- .../types/function_type_call.sol | 7 +- .../types/function_type_external_address.sol | 7 +- .../types/function_type_members.sol | 7 +- .../types/function_type_nested.sol | 25 +- .../types/function_type_nested_return.sol | 29 +- .../smtCheckerTests/types/mapping_1.sol | 4 +- .../smtCheckerTests/types/mapping_1_fail.sol | 6 +- .../smtCheckerTests/types/mapping_2.sol | 6 +- .../smtCheckerTests/types/mapping_2d_1.sol | 4 +- .../types/mapping_2d_1_fail.sol | 6 +- .../smtCheckerTests/types/mapping_3.sol | 4 +- .../smtCheckerTests/types/mapping_3d_1.sol | 4 +- .../types/mapping_3d_1_fail.sol | 6 +- .../smtCheckerTests/types/mapping_4.sol | 3 +- .../smtCheckerTests/types/mapping_5.sol | 6 +- .../types/mapping_aliasing_1.sol | 5 +- .../types/mapping_aliasing_2.sol | 7 +- .../types/mapping_and_array_of_functions.sol | 3 +- .../types/mapping_as_local_var_1.sol | 8 +- .../types/mapping_as_parameter_1.sol | 5 +- .../types/mapping_equal_keys_1.sol | 4 +- .../types/mapping_equal_keys_2.sol | 6 +- .../types/mapping_struct_assignment.sol | 5 +- .../types/mapping_unsupported_key_type_1.sol | 4 +- .../types/no_effect_statements.sol | 23 +- .../types/rational_large_1.sol | 7 +- .../types/static_array_implicit_push_1.sol | 3 +- .../types/static_array_implicit_push_2.sol | 3 +- .../types/static_array_implicit_push_3.sol | 3 +- .../types/static_array_implicit_push_4.sol | 3 +- .../types/storage_value_vars_1.sol | 5 +- .../types/storage_value_vars_2.sol | 5 +- .../types/storage_value_vars_3.sol | 3 +- .../types/storage_value_vars_4.sol | 5 +- .../smtCheckerTests/types/string_1.sol | 6 +- .../smtCheckerTests/types/string_2.sol | 6 +- .../smtCheckerTests/types/string_length.sol | 4 +- .../types/string_literal_assignment_1.sol | 6 +- .../types/string_literal_assignment_2.sol | 6 +- .../types/string_literal_assignment_3.sol | 6 +- .../types/string_literal_assignment_4.sol | 6 +- .../types/string_literal_assignment_5.sol | 6 +- .../types/string_literal_comparison_1.sol | 6 +- .../types/string_literal_comparison_2.sol | 8 +- .../array_struct_array_struct_memory_safe.sol | 3 +- ...rray_struct_array_struct_memory_unsafe.sol | 5 +- ...array_struct_array_struct_storage_safe.sol | 3 +- .../types/struct/struct_aliasing_memory.sol | 8 +- .../types/struct/struct_aliasing_storage.sol | 6 +- .../struct_array_struct_array_memory_safe.sol | 3 +- ...uct_array_struct_array_memory_unsafe_1.sol | 13 +- ...uct_array_struct_array_memory_unsafe_2.sol | 5 +- ...struct_array_struct_array_storage_safe.sol | 4 +- ...ct_array_struct_array_storage_unsafe_1.sol | 14 +- .../struct/struct_constructor_named_args.sol | 6 +- .../struct_constructor_named_args_2.sol | 6 +- .../struct/struct_constructor_recursive_1.sol | 9 +- .../struct/struct_constructor_recursive_2.sol | 21 +- .../types/struct/struct_delete_memory.sol | 6 +- .../types/struct/struct_delete_storage.sol | 6 +- .../types/struct/struct_mapping.sol | 4 +- .../struct/struct_nested_constructor.sol | 6 +- .../struct_nested_constructor_named_args.sol | 4 +- .../types/struct/struct_nested_temporary.sol | 4 +- .../types/struct/struct_recursive_1.sol | 48 +-- .../types/struct/struct_recursive_2.sol | 178 ++++----- .../types/struct/struct_recursive_3.sol | 366 +++++++++--------- .../types/struct/struct_recursive_4.sol | 133 ++++--- .../types/struct/struct_recursive_5.sol | 46 +-- .../types/struct/struct_recursive_6.sol | 100 ++--- .../struct/struct_recursive_indirect_1.sol | 48 +-- .../struct/struct_recursive_indirect_2.sol | 154 ++++---- .../types/struct/struct_return.sol | 6 +- .../types/struct/struct_state_constructor.sol | 4 +- .../types/struct/struct_state_var.sol | 5 +- .../struct/struct_state_var_array_pop_1.sol | 7 +- .../struct/struct_state_var_array_pop_2.sol | 7 +- .../types/struct/struct_temporary.sol | 4 +- .../types/struct/struct_unary_add.sol | 4 +- .../types/struct/struct_unary_sub.sol | 4 +- .../smtCheckerTests/types/struct_1.sol | 4 +- .../types/struct_array_branches_1d.sol | 4 +- .../types/struct_array_branches_2d.sol | 8 +- .../types/struct_array_branches_3d.sol | 6 +- .../smtCheckerTests/types/tuple_1_chain_1.sol | 5 +- .../smtCheckerTests/types/tuple_1_chain_2.sol | 5 +- .../smtCheckerTests/types/tuple_1_chain_n.sol | 5 +- .../types/tuple_array_pop_1.sol | 5 +- .../types/tuple_array_pop_2.sol | 5 +- .../types/tuple_assignment.sol | 4 +- .../types/tuple_assignment_array.sol | 4 +- .../types/tuple_assignment_array_empty.sol | 5 +- .../types/tuple_assignment_compound.sol | 6 +- .../types/tuple_assignment_empty.sol | 6 +- .../types/tuple_assignment_multiple_calls.sol | 4 +- .../types/tuple_declarations.sol | 4 +- .../types/tuple_declarations_empty.sol | 4 +- .../types/tuple_declarations_function.sol | 4 +- .../types/tuple_declarations_function_2.sol | 4 +- .../tuple_declarations_function_empty.sol | 6 +- .../tuple_different_count_assignment_1.sol | 7 +- .../tuple_different_count_assignment_2.sol | 7 +- .../types/tuple_extra_parens_1.sol | 5 +- .../types/tuple_extra_parens_2.sol | 5 +- .../types/tuple_extra_parens_3.sol | 5 +- .../types/tuple_extra_parens_4.sol | 5 +- .../types/tuple_extra_parens_5.sol | 5 +- .../types/tuple_extra_parens_6.sol | 3 +- .../types/tuple_extra_parens_7.sol | 7 +- .../smtCheckerTests/types/tuple_function.sol | 8 +- .../types/tuple_function_2.sol | 6 +- .../types/tuple_function_3.sol | 8 +- .../types/tuple_return_branch.sol | 4 +- .../types/tuple_single_element_1.sol | 6 +- .../types/tuple_single_element_2.sol | 6 +- .../types/tuple_single_non_tuple_element.sol | 6 +- .../smtCheckerTests/types/tuple_tuple.sol | 3 +- .../types/type_expression_array_2d.sol | 13 +- .../types/type_expression_array_3d.sol | 17 +- .../types/type_expression_tuple_array_2d.sol | 17 +- .../types/type_expression_tuple_array_3d.sol | 21 +- .../types/type_interfaceid.sol | 8 +- .../types/type_meta_unsupported.sol | 22 +- .../smtCheckerTests/types/type_minmax.sol | 6 +- .../smtCheckerTests/types/unused_mapping.sol | 4 +- .../unchecked/block_inside_unchecked.sol | 4 +- .../unchecked/check_var_init.sol | 8 +- .../unchecked/checked_called_by_unchecked.sol | 6 +- .../checked_modifier_called_by_unchecked.sol | 6 +- .../unchecked/flipping_sign_tests.sol | 6 +- .../smtCheckerTests/unchecked/inc_dec.sol | 4 +- .../smtCheckerTests/unchecked/signed_mod.sol | 8 +- .../unchecked/unchecked_called_by_checked.sol | 6 +- .../unchecked/unchecked_div_by_zero.sol | 8 +- .../unchecked_double_with_modifier.sol | 4 +- ...ked_function_call_with_unchecked_block.sol | 5 +- .../constant_condition_1.sol | 5 +- .../constant_condition_2.sol | 5 +- .../constant_condition_3.sol | 3 +- .../no_target_for_abstract_constract.sol | 4 +- ..._for_constructor_of_abstract_constract.sol | 4 +- .../verification_target/simple_assert.sol | 5 +- .../simple_assert_with_require.sol | 3 +- .../simple_assert_with_require_message.sol | 3 +- 1036 files changed, 3950 insertions(+), 3904 deletions(-) delete mode 100644 test/libsolidity/smtCheckerTests/imports/simple_imported_fail_no_pragma.sol delete mode 100644 test/libsolidity/smtCheckerTests/imports/simple_imported_fail_two_pragmas.sol diff --git a/test/libsolidity/smtCheckerTests/abi/abi_decode_1_tuple.sol b/test/libsolidity/smtCheckerTests/abi/abi_decode_1_tuple.sol index d0efe08ab..2cfa10b31 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_decode_1_tuple.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_decode_1_tuple.sol @@ -1,11 +1,12 @@ -pragma experimental SMTChecker; contract C { function f(bytes calldata data) external pure returns (uint256[] memory) { return abi.decode(data, (uint256[])); } } +// ==== +// SMTEngine: all // ---- -// Warning 8364: (148-157): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (147-158): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (148-157): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (147-158): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (116-125): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (115-126): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (116-125): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (115-126): Assertion checker does not yet implement type type(uint256[] memory) diff --git a/test/libsolidity/smtCheckerTests/abi/abi_decode_array.sol b/test/libsolidity/smtCheckerTests/abi/abi_decode_array.sol index 57841ca27..10e6115e5 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_decode_array.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_decode_array.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -29,42 +28,44 @@ contract C { assert(l.length == b.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 8364: (194-200): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (202-208): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (315-321): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (323-329): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (564-570): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (572-578): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (580-586): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (801-807): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (801-809): Assertion checker does not yet implement type type(uint256[] memory[] memory) -// Warning 8364: (811-817): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (811-819): Assertion checker does not yet implement type type(uint256[] memory[] memory) -// Warning 8364: (811-821): Assertion checker does not yet implement type type(uint256[] memory[] memory[] memory) -// Warning 8364: (1021-1027): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (1029-1035): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 6328: (214-242): CHC: Assertion violation happens here. -// Warning 6328: (367-395): CHC: Assertion violation happens here. -// Warning 6328: (446-474): CHC: Assertion violation happens here. -// Warning 6328: (592-620): CHC: Assertion violation happens here. -// Warning 6328: (639-667): CHC: Assertion violation happens here. -// Warning 6328: (686-714): CHC: Assertion violation happens here. -// Warning 6328: (911-948): CHC: Assertion violation happens here. -// Warning 6328: (1041-1069): CHC: Assertion violation happens here. -// Warning 6328: (1088-1116): CHC: Assertion violation happens here. -// Warning 6328: (1135-1163): CHC: Assertion violation happens here. -// Warning 8364: (194-200): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (202-208): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (315-321): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (323-329): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (564-570): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (572-578): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (580-586): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (801-807): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (801-809): Assertion checker does not yet implement type type(uint256[] memory[] memory) -// Warning 8364: (811-817): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (811-819): Assertion checker does not yet implement type type(uint256[] memory[] memory) -// Warning 8364: (811-821): Assertion checker does not yet implement type type(uint256[] memory[] memory[] memory) -// Warning 8364: (1021-1027): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (1029-1035): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (162-168): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (170-176): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (283-289): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (291-297): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (532-538): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (540-546): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (548-554): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (769-775): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (769-777): Assertion checker does not yet implement type type(uint256[] memory[] memory) +// Warning 8364: (779-785): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (779-787): Assertion checker does not yet implement type type(uint256[] memory[] memory) +// Warning 8364: (779-789): Assertion checker does not yet implement type type(uint256[] memory[] memory[] memory) +// Warning 8364: (989-995): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (997-1003): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 6328: (182-210): CHC: Assertion violation happens here. +// Warning 6328: (335-363): CHC: Assertion violation happens here. +// Warning 6328: (414-442): CHC: Assertion violation happens here. +// Warning 6328: (560-588): CHC: Assertion violation happens here. +// Warning 6328: (607-635): CHC: Assertion violation happens here. +// Warning 6328: (654-682): CHC: Assertion violation happens here. +// Warning 6328: (879-916): CHC: Assertion violation happens here. +// Warning 6328: (1009-1037): CHC: Assertion violation happens here. +// Warning 6328: (1056-1084): CHC: Assertion violation happens here. +// Warning 6328: (1103-1131): CHC: Assertion violation happens here. +// Warning 8364: (162-168): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (170-176): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (283-289): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (291-297): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (532-538): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (540-546): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (548-554): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (769-775): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (769-777): Assertion checker does not yet implement type type(uint256[] memory[] memory) +// Warning 8364: (779-785): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (779-787): Assertion checker does not yet implement type type(uint256[] memory[] memory) +// Warning 8364: (779-789): Assertion checker does not yet implement type type(uint256[] memory[] memory[] memory) +// Warning 8364: (989-995): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (997-1003): Assertion checker does not yet implement type type(uint256[] memory) diff --git a/test/libsolidity/smtCheckerTests/abi/abi_decode_simple.sol b/test/libsolidity/smtCheckerTests/abi/abi_decode_simple.sol index 8c4b8d678..2020ce7ae 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_decode_simple.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_decode_simple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiDecodeSimple(bytes memory b1, bytes memory b2) public pure { (uint x, uint y) = abi.decode(b1, (uint, uint)); @@ -19,12 +18,13 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (241-255): CHC: Assertion violation happens here. -// Warning 6328: (292-306): CHC: Assertion violation happens here. -// Warning 6328: (391-405): CHC: Assertion violation happens here. -// Warning 6328: (424-438): CHC: Assertion violation happens here. -// Warning 6328: (457-466): CHC: Assertion violation happens here. -// Warning 6328: (537-551): CHC: Assertion violation happens here. -// Warning 6328: (570-584): CHC: Assertion violation happens here. +// Warning 6328: (209-223): CHC: Assertion violation happens here. +// Warning 6328: (260-274): CHC: Assertion violation happens here. +// Warning 6328: (359-373): CHC: Assertion violation happens here. +// Warning 6328: (392-406): CHC: Assertion violation happens here. +// Warning 6328: (425-434): CHC: Assertion violation happens here. +// Warning 6328: (505-519): CHC: Assertion violation happens here. +// Warning 6328: (538-552): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice.sol index b8b0a78ae..9b1440f89 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSlice(bytes calldata data) external pure { bytes memory b1 = abi.encode(data); @@ -24,6 +23,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (311-341): CHC: Assertion violation happens here. +// Warning 6328: (279-309): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice_2.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice_2.sol index e1261521c..4c8e32697 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice_2.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_array_slice_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSlice(uint[] calldata data) external pure { bytes memory b1 = abi.encode(data); @@ -24,9 +23,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (364-379): Unused local variable. -// Warning 2072: (650-665): Unused local variable. -// Warning 2072: (823-838): Unused local variable. -// Warning 6328: (312-342): CHC: Assertion violation happens here. +// Warning 2072: (332-347): Unused local variable. +// Warning 2072: (618-633): Unused local variable. +// Warning 2072: (791-806): Unused local variable. +// Warning 6328: (280-310): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_function.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_function.sol index 6f8f7b5a3..fd082d9c5 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_function.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_function.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f() public view { abi.encode(this.f); } } +// ==== +// SMTEngine: all // ---- -// Warning 6031: (86-92): Internal error: Expression undefined for SMT solver. -// Warning 6031: (86-92): Internal error: Expression undefined for SMT solver. +// Warning 6031: (54-60): Internal error: Expression undefined for SMT solver. +// Warning 6031: (54-60): Internal error: Expression undefined for SMT solver. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_hash.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_hash.sol index dd4762fe2..fae9039d8 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_hash.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_hash.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeHash(uint a, uint b) public pure { require(a == b); @@ -7,3 +6,5 @@ contract C { assert(keccak256(b1) == keccak256(b2)); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_no_arguments.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_no_arguments.sol index b30842302..336696d39 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_no_arguments.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_no_arguments.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() pure public { bytes memory res = abi.encode(); @@ -14,9 +13,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (152-174): CHC: Assertion violation happens here. -// Warning 6328: (263-285): CHC: Assertion violation happens here. -// Warning 6328: (339-362): CHC: Assertion violation happens here. -// Warning 6328: (455-478): CHC: Assertion violation happens here. +// Warning 6328: (120-142): CHC: Assertion violation happens here. +// Warning 6328: (231-253): CHC: Assertion violation happens here. +// Warning 6328: (307-330): CHC: Assertion violation happens here. +// Warning 6328: (423-446): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice.sol index 3538f9130..91bcfe5ea 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiencodePackedSlice(bytes calldata data) external pure { bytes memory b1 = abi.encodePacked(data); @@ -28,9 +27,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (159-174): Unused local variable. -// Warning 2072: (723-738): Unused local variable. -// Warning 2072: (1131-1146): Unused local variable. -// Warning 6328: (1079-1109): CHC: Assertion violation happens here. +// Warning 2072: (127-142): Unused local variable. +// Warning 2072: (691-706): Unused local variable. +// Warning 2072: (1099-1114): Unused local variable. +// Warning 6328: (1047-1077): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice_2.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice_2.sol index 460c86072..7f8b98806 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice_2.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_array_slice_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiencodePackedSlice(uint[] calldata data) external pure { bytes memory b1 = abi.encodePacked(data); @@ -27,6 +26,8 @@ contract C { //assert(b4.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (675-690): Unused local variable. -// Warning 6328: (330-360): CHC: Assertion violation happens here. +// Warning 2072: (643-658): Unused local variable. +// Warning 6328: (298-328): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_hash.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_hash.sol index 5682e4a04..a9608a828 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_hash.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_hash.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiencodePackedHash(uint a, uint b) public pure { require(a == b); @@ -10,7 +9,9 @@ contract C { assert(keccak256(b1) == keccak256(b3)); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (313-351): CHC: Error trying to invoke SMT solver. -// Warning 6328: (313-351): CHC: Assertion violation might happen here. -// Warning 4661: (313-351): BMC: Assertion violation happens here. +// Warning 1218: (281-319): CHC: Error trying to invoke SMT solver. +// Warning 6328: (281-319): CHC: Assertion violation might happen here. +// Warning 4661: (281-319): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_simple.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_simple.sol index 43e1f2b56..75fd7e989 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_simple.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_simple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiencodePackedSimple(bool t, uint x, uint y, uint z, uint[] memory a, uint[] memory b) public pure { require(x == y); @@ -21,8 +20,10 @@ contract C { //assert(b1.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (354-384): CHC: Assertion violation happens here. -// Warning 6328: (451-481): CHC: Assertion violation happens here. -// Warning 6328: (560-590): CHC: Assertion violation happens here. -// Warning 6328: (609-639): CHC: Assertion violation happens here. +// Warning 6328: (322-352): CHC: Assertion violation happens here. +// Warning 6328: (419-449): CHC: Assertion violation happens here. +// Warning 6328: (528-558): CHC: Assertion violation happens here. +// Warning 6328: (577-607): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_string_literal.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_string_literal.sol index e19177e30..0598311ad 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_string_literal.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_packed_string_literal.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiencodePackedStringLiteral() public pure { bytes memory b1 = abi.encodePacked(""); @@ -20,17 +19,19 @@ contract C { assert(b1.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (258-288): CHC: Assertion violation happens here. -// Warning 1218: (342-372): CHC: Error trying to invoke SMT solver. -// Warning 6328: (342-372): CHC: Assertion violation might happen here. -// Warning 1218: (515-545): CHC: Error trying to invoke SMT solver. -// Warning 6328: (515-545): CHC: Assertion violation might happen here. -// Warning 1218: (600-630): CHC: Error trying to invoke SMT solver. -// Warning 6328: (600-630): CHC: Assertion violation might happen here. -// Warning 1218: (686-716): CHC: Error trying to invoke SMT solver. -// Warning 6328: (686-716): CHC: Assertion violation might happen here. -// Warning 4661: (342-372): BMC: Assertion violation happens here. -// Warning 4661: (515-545): BMC: Assertion violation happens here. -// Warning 4661: (600-630): BMC: Assertion violation happens here. -// Warning 4661: (686-716): BMC: Assertion violation happens here. +// Warning 6328: (226-256): CHC: Assertion violation happens here. +// Warning 1218: (310-340): CHC: Error trying to invoke SMT solver. +// Warning 6328: (310-340): CHC: Assertion violation might happen here. +// Warning 1218: (483-513): CHC: Error trying to invoke SMT solver. +// Warning 6328: (483-513): CHC: Assertion violation might happen here. +// Warning 1218: (568-598): CHC: Error trying to invoke SMT solver. +// Warning 6328: (568-598): CHC: Assertion violation might happen here. +// Warning 1218: (654-684): CHC: Error trying to invoke SMT solver. +// Warning 6328: (654-684): CHC: Assertion violation might happen here. +// Warning 4661: (310-340): BMC: Assertion violation happens here. +// Warning 4661: (483-513): BMC: Assertion violation happens here. +// Warning 4661: (568-598): BMC: Assertion violation happens here. +// Warning 4661: (654-684): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_simple.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_simple.sol index f6115b749..9164f5e3b 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_simple.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_simple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSimple(bool t, uint x, uint y, uint z, uint[] memory a, uint[] memory b) public pure { require(x == y); @@ -18,7 +17,9 @@ contract C { //assert(b1.length == b5.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (330-360): CHC: Assertion violation happens here. -// Warning 6328: (421-451): CHC: Assertion violation happens here. -// Warning 6328: (524-554): CHC: Assertion violation happens here. +// Warning 6328: (298-328): CHC: Assertion violation happens here. +// Warning 6328: (389-419): CHC: Assertion violation happens here. +// Warning 6328: (492-522): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_string_literal.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_string_literal.sol index fadc9f48d..3b2006215 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_string_literal.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_string_literal.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeStringLiteral() public pure { bytes memory b1 = abi.encode(""); @@ -17,16 +16,18 @@ contract C { assert(b1.length == b5.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (240-270): CHC: Error trying to invoke SMT solver. -// Warning 6328: (240-270): CHC: Assertion violation might happen here. -// Warning 1218: (318-348): CHC: Error trying to invoke SMT solver. -// Warning 6328: (318-348): CHC: Assertion violation might happen here. -// Warning 1218: (485-515): CHC: Error trying to invoke SMT solver. -// Warning 6328: (485-515): CHC: Assertion violation might happen here. -// Warning 1218: (564-594): CHC: Error trying to invoke SMT solver. -// Warning 6328: (564-594): CHC: Assertion violation might happen here. -// Warning 4661: (240-270): BMC: Assertion violation happens here. -// Warning 4661: (318-348): BMC: Assertion violation happens here. -// Warning 4661: (485-515): BMC: Assertion violation happens here. -// Warning 4661: (564-594): BMC: Assertion violation happens here. +// Warning 1218: (208-238): CHC: Error trying to invoke SMT solver. +// Warning 6328: (208-238): CHC: Assertion violation might happen here. +// Warning 1218: (286-316): CHC: Error trying to invoke SMT solver. +// Warning 6328: (286-316): CHC: Assertion violation might happen here. +// Warning 1218: (453-483): CHC: Error trying to invoke SMT solver. +// Warning 6328: (453-483): CHC: Assertion violation might happen here. +// Warning 1218: (532-562): CHC: Error trying to invoke SMT solver. +// Warning 6328: (532-562): CHC: Assertion violation might happen here. +// Warning 4661: (208-238): BMC: Assertion violation happens here. +// Warning 4661: (286-316): BMC: Assertion violation happens here. +// Warning 4661: (453-483): BMC: Assertion violation happens here. +// Warning 4661: (532-562): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice.sol index fd713f1c6..0365b9655 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSlice(bytes4 sel, bytes calldata data) external pure { bytes memory b1 = abi.encodeWithSelector(sel, data); @@ -23,15 +22,17 @@ contract C { assert(b4.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (357-387): CHC: Assertion violation happens here. -// Warning 6328: (610-640): CHC: Assertion violation happens here. -// Warning 1218: (723-753): CHC: Error trying to invoke SMT solver. -// Warning 6328: (723-753): CHC: Assertion violation might happen here. -// Warning 1218: (991-1021): CHC: Error trying to invoke SMT solver. -// Warning 6328: (991-1021): CHC: Assertion violation might happen here. -// Warning 1218: (1111-1141): CHC: Error trying to invoke SMT solver. -// Warning 6328: (1111-1141): CHC: Assertion violation might happen here. -// Warning 4661: (723-753): BMC: Assertion violation happens here. -// Warning 4661: (991-1021): BMC: Assertion violation happens here. -// Warning 4661: (1111-1141): BMC: Assertion violation happens here. +// Warning 6328: (325-355): CHC: Assertion violation happens here. +// Warning 6328: (578-608): CHC: Assertion violation happens here. +// Warning 1218: (691-721): CHC: Error trying to invoke SMT solver. +// Warning 6328: (691-721): CHC: Assertion violation might happen here. +// Warning 1218: (959-989): CHC: Error trying to invoke SMT solver. +// Warning 6328: (959-989): CHC: Assertion violation might happen here. +// Warning 1218: (1079-1109): CHC: Error trying to invoke SMT solver. +// Warning 6328: (1079-1109): CHC: Assertion violation might happen here. +// Warning 4661: (691-721): BMC: Assertion violation happens here. +// Warning 4661: (959-989): BMC: Assertion violation happens here. +// Warning 4661: (1079-1109): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice_2.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice_2.sol index 3418df5a4..b94977030 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice_2.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_array_slice_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSlice(bytes4 sel, uint[] calldata data) external pure { bytes memory b1 = abi.encodeWithSelector(sel, data); @@ -23,15 +22,17 @@ contract C { assert(b4.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (358-388): CHC: Assertion violation happens here. -// Warning 6328: (611-641): CHC: Assertion violation happens here. -// Warning 1218: (724-754): CHC: Error trying to invoke SMT solver. -// Warning 6328: (724-754): CHC: Assertion violation might happen here. -// Warning 1218: (992-1022): CHC: Error trying to invoke SMT solver. -// Warning 6328: (992-1022): CHC: Assertion violation might happen here. -// Warning 1218: (1112-1142): CHC: Error trying to invoke SMT solver. -// Warning 6328: (1112-1142): CHC: Assertion violation might happen here. -// Warning 4661: (724-754): BMC: Assertion violation happens here. -// Warning 4661: (992-1022): BMC: Assertion violation happens here. -// Warning 4661: (1112-1142): BMC: Assertion violation happens here. +// Warning 6328: (326-356): CHC: Assertion violation happens here. +// Warning 6328: (579-609): CHC: Assertion violation happens here. +// Warning 1218: (692-722): CHC: Error trying to invoke SMT solver. +// Warning 6328: (692-722): CHC: Assertion violation might happen here. +// Warning 1218: (960-990): CHC: Error trying to invoke SMT solver. +// Warning 6328: (960-990): CHC: Assertion violation might happen here. +// Warning 1218: (1080-1110): CHC: Error trying to invoke SMT solver. +// Warning 6328: (1080-1110): CHC: Assertion violation might happen here. +// Warning 4661: (692-722): BMC: Assertion violation happens here. +// Warning 4661: (960-990): BMC: Assertion violation happens here. +// Warning 4661: (1080-1110): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_hash.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_hash.sol index c3d311fbc..3360feb02 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_hash.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_hash.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeHash(bytes4 sel, uint a, uint b) public pure { require(a == b); @@ -11,10 +10,12 @@ contract C { assert(keccak256(b1) != keccak256(b3)); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (365-403): CHC: Error trying to invoke SMT solver. -// Warning 6328: (365-403): CHC: Assertion violation might happen here. -// Warning 1218: (422-460): CHC: Error trying to invoke SMT solver. -// Warning 6328: (422-460): CHC: Assertion violation might happen here. -// Warning 4661: (365-403): BMC: Assertion violation happens here. -// Warning 4661: (422-460): BMC: Assertion violation happens here. +// Warning 1218: (333-371): CHC: Error trying to invoke SMT solver. +// Warning 6328: (333-371): CHC: Assertion violation might happen here. +// Warning 1218: (390-428): CHC: Error trying to invoke SMT solver. +// Warning 6328: (390-428): CHC: Assertion violation might happen here. +// Warning 4661: (333-371): BMC: Assertion violation happens here. +// Warning 4661: (390-428): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_simple.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_simple.sol index 3ff5af194..f776c3dc4 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_simple.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_simple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSimple(bytes4 sel, bool t, uint x, uint y, uint z, uint[] memory a, uint[] memory b) public pure { require(x == y); @@ -22,9 +21,11 @@ contract C { assert(b1.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (132-147): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (603-633): CHC: Assertion violation happens here. -// Warning 6328: (723-753): CHC: Assertion violation happens here. -// Warning 6328: (772-802): CHC: Assertion violation happens here. -// Warning 6328: (887-917): CHC: Assertion violation happens here. +// Warning 5667: (100-115): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (571-601): CHC: Assertion violation happens here. +// Warning 6328: (691-721): CHC: Assertion violation happens here. +// Warning 6328: (740-770): CHC: Assertion violation happens here. +// Warning 6328: (855-885): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal.sol index 79c875bc1..e824c57d1 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeStringLiteral(bytes4 sel) public pure { bytes memory b1 = abi.encodeWithSelector(sel, ""); @@ -20,17 +19,19 @@ contract C { assert(b4.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (284-314): CHC: Assertion violation happens here. -// Warning 1218: (379-409): CHC: Error trying to invoke SMT solver. -// Warning 6328: (379-409): CHC: Assertion violation might happen here. -// Warning 1218: (563-593): CHC: Error trying to invoke SMT solver. -// Warning 6328: (563-593): CHC: Assertion violation might happen here. -// Warning 1218: (659-689): CHC: Error trying to invoke SMT solver. -// Warning 6328: (659-689): CHC: Assertion violation might happen here. -// Warning 1218: (778-808): CHC: Error trying to invoke SMT solver. -// Warning 6328: (778-808): CHC: Assertion violation might happen here. -// Warning 4661: (379-409): BMC: Assertion violation happens here. -// Warning 4661: (563-593): BMC: Assertion violation happens here. -// Warning 4661: (659-689): BMC: Assertion violation happens here. -// Warning 4661: (778-808): BMC: Assertion violation happens here. +// Warning 6328: (252-282): CHC: Assertion violation happens here. +// Warning 1218: (347-377): CHC: Error trying to invoke SMT solver. +// Warning 6328: (347-377): CHC: Assertion violation might happen here. +// Warning 1218: (531-561): CHC: Error trying to invoke SMT solver. +// Warning 6328: (531-561): CHC: Assertion violation might happen here. +// Warning 1218: (627-657): CHC: Error trying to invoke SMT solver. +// Warning 6328: (627-657): CHC: Assertion violation might happen here. +// Warning 1218: (746-776): CHC: Error trying to invoke SMT solver. +// Warning 6328: (746-776): CHC: Assertion violation might happen here. +// Warning 4661: (347-377): BMC: Assertion violation happens here. +// Warning 4661: (531-561): BMC: Assertion violation happens here. +// Warning 4661: (627-657): BMC: Assertion violation happens here. +// Warning 4661: (746-776): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal_2.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal_2.sol index ffa39e4c7..352a620e6 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal_2.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_string_literal_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeStringLiteral(bytes4 sel) public pure { bytes memory b1 = abi.encodeWithSelector(""); @@ -7,3 +6,5 @@ contract C { assert(b1.length == b2.length); // should hold } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_vs_sig.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_vs_sig.sol index 598b35273..b97f28955 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_vs_sig.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_selector_vs_sig.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(string memory sig, uint x, uint[] memory a) public pure { bytes memory b1 = abi.encodeWithSignature(sig, x, a); @@ -7,5 +6,7 @@ contract C { assert(b1.length == b2.length); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (326-356): CHC: Assertion violation happens here. +// Warning 6328: (294-324): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice.sol index a108d6f69..7530ea6c5 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSlice(string memory sig, bytes calldata data) external pure { bytes memory b1 = abi.encodeWithSignature(sig, data); @@ -23,15 +22,17 @@ contract C { assert(b4.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (366-396): CHC: Assertion violation happens here. -// Warning 6328: (620-650): CHC: Assertion violation happens here. -// Warning 1218: (734-764): CHC: Error trying to invoke SMT solver. -// Warning 6328: (734-764): CHC: Assertion violation might happen here. -// Warning 1218: (1003-1033): CHC: Error trying to invoke SMT solver. -// Warning 6328: (1003-1033): CHC: Assertion violation might happen here. -// Warning 1218: (1118-1148): CHC: Error trying to invoke SMT solver. -// Warning 6328: (1118-1148): CHC: Assertion violation might happen here. -// Warning 4661: (734-764): BMC: Assertion violation happens here. -// Warning 4661: (1003-1033): BMC: Assertion violation happens here. -// Warning 4661: (1118-1148): BMC: Assertion violation happens here. +// Warning 6328: (334-364): CHC: Assertion violation happens here. +// Warning 6328: (588-618): CHC: Assertion violation happens here. +// Warning 1218: (702-732): CHC: Error trying to invoke SMT solver. +// Warning 6328: (702-732): CHC: Assertion violation might happen here. +// Warning 1218: (971-1001): CHC: Error trying to invoke SMT solver. +// Warning 6328: (971-1001): CHC: Assertion violation might happen here. +// Warning 1218: (1086-1116): CHC: Error trying to invoke SMT solver. +// Warning 6328: (1086-1116): CHC: Assertion violation might happen here. +// Warning 4661: (702-732): BMC: Assertion violation happens here. +// Warning 4661: (971-1001): BMC: Assertion violation happens here. +// Warning 4661: (1086-1116): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice_2.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice_2.sol index 053d08d6d..f9da7be6b 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice_2.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_array_slice_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSlice(string memory sig, uint[] calldata data) external pure { bytes memory b1 = abi.encodeWithSignature(sig, data); @@ -23,15 +22,17 @@ contract C { assert(b4.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (367-397): CHC: Assertion violation happens here. -// Warning 6328: (621-651): CHC: Assertion violation happens here. -// Warning 1218: (735-765): CHC: Error trying to invoke SMT solver. -// Warning 6328: (735-765): CHC: Assertion violation might happen here. -// Warning 1218: (1004-1034): CHC: Error trying to invoke SMT solver. -// Warning 6328: (1004-1034): CHC: Assertion violation might happen here. -// Warning 1218: (1119-1149): CHC: Error trying to invoke SMT solver. -// Warning 6328: (1119-1149): CHC: Assertion violation might happen here. -// Warning 4661: (735-765): BMC: Assertion violation happens here. -// Warning 4661: (1004-1034): BMC: Assertion violation happens here. -// Warning 4661: (1119-1149): BMC: Assertion violation happens here. +// Warning 6328: (335-365): CHC: Assertion violation happens here. +// Warning 6328: (589-619): CHC: Assertion violation happens here. +// Warning 1218: (703-733): CHC: Error trying to invoke SMT solver. +// Warning 6328: (703-733): CHC: Assertion violation might happen here. +// Warning 1218: (972-1002): CHC: Error trying to invoke SMT solver. +// Warning 6328: (972-1002): CHC: Assertion violation might happen here. +// Warning 1218: (1087-1117): CHC: Error trying to invoke SMT solver. +// Warning 6328: (1087-1117): CHC: Assertion violation might happen here. +// Warning 4661: (703-733): BMC: Assertion violation happens here. +// Warning 4661: (972-1002): BMC: Assertion violation happens here. +// Warning 4661: (1087-1117): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_hash.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_hash.sol index fc499921b..a76f91f81 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_hash.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_hash.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeHash(string memory sig, uint a, uint b) public pure { require(a == b); @@ -11,10 +10,12 @@ contract C { assert(keccak256(b1) != keccak256(b3)); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (369-407): CHC: Error trying to invoke SMT solver. -// Warning 6328: (369-407): CHC: Assertion violation might happen here. -// Warning 1218: (426-464): CHC: Error trying to invoke SMT solver. -// Warning 6328: (426-464): CHC: Assertion violation might happen here. -// Warning 4661: (369-407): BMC: Assertion violation happens here. -// Warning 4661: (426-464): BMC: Assertion violation happens here. +// Warning 1218: (337-375): CHC: Error trying to invoke SMT solver. +// Warning 6328: (337-375): CHC: Assertion violation might happen here. +// Warning 1218: (394-432): CHC: Error trying to invoke SMT solver. +// Warning 6328: (394-432): CHC: Assertion violation might happen here. +// Warning 4661: (337-375): BMC: Assertion violation happens here. +// Warning 4661: (394-432): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_simple.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_simple.sol index 069dbd1a4..7c640a560 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_simple.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_simple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeSimple(string memory sig, bool t, uint x, uint y, uint z, uint[] memory a, uint[] memory b) public pure { require(x == y); @@ -21,9 +20,11 @@ contract C { assert(b1.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (139-154): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (575-605): CHC: Assertion violation happens here. -// Warning 6328: (696-726): CHC: Assertion violation happens here. -// Warning 6328: (745-775): CHC: Assertion violation happens here. -// Warning 6328: (856-886): CHC: Assertion violation happens here. +// Warning 5667: (107-122): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (543-573): CHC: Assertion violation happens here. +// Warning 6328: (664-694): CHC: Assertion violation happens here. +// Warning 6328: (713-743): CHC: Assertion violation happens here. +// Warning 6328: (824-854): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_string_literal.sol b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_string_literal.sol index e586e6fba..666fa23ba 100644 --- a/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_string_literal.sol +++ b/test/libsolidity/smtCheckerTests/abi/abi_encode_with_sig_string_literal.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function abiEncodeStringLiteral(string memory sig) public pure { bytes memory b1 = abi.encodeWithSignature(sig, ""); @@ -20,17 +19,19 @@ contract C { assert(b4.length == b6.length); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (293-323): CHC: Assertion violation happens here. -// Warning 1218: (389-419): CHC: Error trying to invoke SMT solver. -// Warning 6328: (389-419): CHC: Assertion violation might happen here. -// Warning 1218: (574-604): CHC: Error trying to invoke SMT solver. -// Warning 6328: (574-604): CHC: Assertion violation might happen here. -// Warning 1218: (671-701): CHC: Error trying to invoke SMT solver. -// Warning 6328: (671-701): CHC: Assertion violation might happen here. -// Warning 1218: (785-815): CHC: Error trying to invoke SMT solver. -// Warning 6328: (785-815): CHC: Assertion violation might happen here. -// Warning 4661: (389-419): BMC: Assertion violation happens here. -// Warning 4661: (574-604): BMC: Assertion violation happens here. -// Warning 4661: (671-701): BMC: Assertion violation happens here. -// Warning 4661: (785-815): BMC: Assertion violation happens here. +// Warning 6328: (261-291): CHC: Assertion violation happens here. +// Warning 1218: (357-387): CHC: Error trying to invoke SMT solver. +// Warning 6328: (357-387): CHC: Assertion violation might happen here. +// Warning 1218: (542-572): CHC: Error trying to invoke SMT solver. +// Warning 6328: (542-572): CHC: Assertion violation might happen here. +// Warning 1218: (639-669): CHC: Error trying to invoke SMT solver. +// Warning 6328: (639-669): CHC: Assertion violation might happen here. +// Warning 1218: (753-783): CHC: Error trying to invoke SMT solver. +// Warning 6328: (753-783): CHC: Assertion violation might happen here. +// Warning 4661: (357-387): BMC: Assertion violation happens here. +// Warning 4661: (542-572): BMC: Assertion violation happens here. +// Warning 4661: (639-669): BMC: Assertion violation happens here. +// Warning 4661: (753-783): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_1.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_1.sol index 764cf9df0..43aa6c31f 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,5 +5,7 @@ contract C { a.push(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (49-56): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_2.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_2.sol index a25e9bf6a..011d7b321 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_2.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,5 +5,7 @@ contract C { a.length; } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (49-56): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_3.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_3.sol index d114983e3..b74321006 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_3.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,6 +5,8 @@ contract C { a.pop(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() -// Warning 2529: (93-100): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (49-56): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (60-67): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_4.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_4.sol index 8a6dae0b6..206ada96e 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_4.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,5 +5,7 @@ contract C { a.pop(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (94-101): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (61-68): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_5.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_5.sol index 98a07bd5a..8811944c8 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_5.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function g() internal { @@ -10,5 +8,7 @@ contract C { g(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (122-129): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (89-96): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_6.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_6.sol index 66d59019b..f47a89375 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_6.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function g() internal view { @@ -10,5 +8,7 @@ contract C { g(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (127-134): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (94-101): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_7.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_7.sol index 34663d931..d91ee235f 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_7.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_7.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,3 +5,5 @@ contract C { a.pop(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_8.sol b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_8.sol index 15e29249b..6de94c8ec 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_pop_length_8.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_pop_length_8.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -12,5 +10,7 @@ contract C { a.pop(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (49-56): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/array_push_string_literal.sol b/test/libsolidity/smtCheckerTests/array_members/array_push_string_literal.sol index 066c73845..aa3256397 100644 --- a/test/libsolidity/smtCheckerTests/array_members/array_push_string_literal.sol +++ b/test/libsolidity/smtCheckerTests/array_members/array_push_string_literal.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { bytes data; function g() public { @@ -12,6 +11,8 @@ contract C { assert(uint8(data[0]) == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (171-193): CHC: Assertion violation happens here.\nCounterexample:\ndata = [98]\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.g() -// Warning 6328: (295-322): CHC: Assertion violation happens here.\nCounterexample:\ndata = [1]\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.g() +// Warning 6328: (139-161): CHC: Assertion violation happens here.\nCounterexample:\ndata = [98]\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.g() +// Warning 6328: (263-290): CHC: Assertion violation happens here.\nCounterexample:\ndata = [1]\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.g() diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_memory_to_memory.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_memory_to_memory.sol index 970b0c1e7..7a402bbe0 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_memory_to_memory.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_memory_to_memory.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -9,3 +8,5 @@ contract C { assert(arr.length == arr2.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_storage_to_storage.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_storage_to_storage.sol index 019677fd7..5733a5d56 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_storage_to_storage.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_assignment_2d_storage_to_storage.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -15,3 +14,5 @@ contract C { assert(arr2.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_memory_to_storage.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_memory_to_storage.sol index d452900e4..a73ec7b91 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_memory_to_storage.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_memory_to_storage.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -10,3 +9,5 @@ contract C { assert(arr2.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_storage_to_memory.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_storage_to_memory.sol index 77ecd50a6..a4fdc211f 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_storage_to_memory.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_copy_2d_storage_to_memory.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -15,3 +14,5 @@ contract C { assert(arr2.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_1.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_1.sol index dbce0665c..091c304a2 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_1.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[]) map; function f() public view { assert(map[0].length == map[1].length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2.sol index dc2305f79..6aff8e365 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[]) map; function f(uint x, uint y) public view { @@ -7,3 +5,5 @@ contract C { assert(map[x].length == map[y].length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2d_1.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2d_1.sol index 543c309e0..f98f0d3e6 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2d_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_mapping_array_2d_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[][]) map; function f(uint x, uint y) public { @@ -8,3 +6,5 @@ contract C { assert(map[x][0].length == map[y][0].length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_1.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_1.sol index 8857b91db..3ab218741 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint[] arr; @@ -10,4 +8,6 @@ contract C { assert(s1.arr.length == s2.arr.length); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_2d_1.sol b/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_2d_1.sol index 64812492b..6b904a8ae 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_2d_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_1d_struct_array_2d_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint[][] arr; @@ -20,3 +18,5 @@ contract C { assert(s1.arr[0].length == s2.arr[0].length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_assignment_2d_memory_to_memory.sol b/test/libsolidity/smtCheckerTests/array_members/length_assignment_2d_memory_to_memory.sol index cfac3d721..0bc93f945 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_assignment_2d_memory_to_memory.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_assignment_2d_memory_to_memory.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -7,3 +6,5 @@ contract C { assert(arr2.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_assignment_memory_to_memory.sol b/test/libsolidity/smtCheckerTests/array_members/length_assignment_memory_to_memory.sol index 66f6d1067..79c8799ab 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_assignment_memory_to_memory.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_assignment_memory_to_memory.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { function f(uint[] memory arr) public pure { uint[] memory arr2 = arr; assert(arr2.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_assignment_storage_to_storage.sol b/test/libsolidity/smtCheckerTests/array_members/length_assignment_storage_to_storage.sol index c379f3381..607de1014 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_assignment_storage_to_storage.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_assignment_storage_to_storage.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] arr; uint[] arr2; @@ -8,3 +6,5 @@ contract C { assert(arr2.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_basic.sol b/test/libsolidity/smtCheckerTests/array_members/length_basic.sol index 9cbf1023b..205c7746d 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_basic.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_basic.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] arr; function f() public view { @@ -9,5 +7,7 @@ contract C { assert(arr.length != y); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (153-176): CHC: Assertion violation happens here.\nCounterexample:\narr = []\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: arr = []\nC.f() +// Warning 6328: (120-143): CHC: Assertion violation happens here.\nCounterexample:\narr = []\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: arr = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/length_copy_memory_to_storage.sol b/test/libsolidity/smtCheckerTests/array_members/length_copy_memory_to_storage.sol index ec6c2a2f2..d60dced50 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_copy_memory_to_storage.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_copy_memory_to_storage.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] arr; function f(uint[] memory marr) public { @@ -7,3 +5,5 @@ contract C { assert(marr.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_copy_storage_to_memory.sol b/test/libsolidity/smtCheckerTests/array_members/length_copy_storage_to_memory.sol index 20e83c908..893649a49 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_copy_storage_to_memory.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_copy_storage_to_memory.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] arr; function f() public view { @@ -7,3 +5,5 @@ contract C { assert(marr.length == arr.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_function_call.sol b/test/libsolidity/smtCheckerTests/array_members/length_function_call.sol index 250c88666..2a8179acb 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_function_call.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_function_call.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] arr; function f() public view { @@ -8,3 +6,5 @@ contract C { function g() internal pure returns (uint[] memory) { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment.sol b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment.sol index 5d26afd87..2be0b54e0 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] arr; constructor() { @@ -14,3 +12,5 @@ contract C { assert(arr.length == arr2.length); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2.sol b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2.sol index 5b41200da..eef8f01c7 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] arr; constructor() { @@ -22,3 +20,5 @@ contract C { assert(arr.length == z); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2_fail.sol b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2_fail.sol index cb427a0a5..086224a11 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_2_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] arr; constructor() { @@ -23,8 +21,9 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (324-350): CHC: Assertion violation happens here. -// Warning 6328: (354-380): CHC: Assertion violation happens here. -// Warning 6328: (384-407): CHC: Assertion violation happens here. +// Warning 6328: (291-317): CHC: Assertion violation happens here. +// Warning 6328: (321-347): CHC: Assertion violation happens here. +// Warning 6328: (351-374): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3.sol b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3.sol index f030876d3..a274452b4 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] arr; @@ -27,3 +25,5 @@ contract C { assert(arr[5].length == t); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3_fail.sol b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3_fail.sol index 6e40c3b07..f4d5c889c 100644 --- a/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3_fail.sol +++ b/test/libsolidity/smtCheckerTests/array_members/length_same_after_assignment_3_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] arr; constructor() { @@ -25,8 +23,10 @@ contract C { assert(arr[5].length != t); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (352-378): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() -// Warning 6328: (382-408): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() -// Warning 6328: (412-435): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() -// Warning 6328: (439-465): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() +// Warning 6328: (319-345): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() +// Warning 6328: (349-375): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() +// Warning 6328: (379-402): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() +// Warning 6328: (406-432): CHC: Assertion violation happens here.\nCounterexample:\narr = [[], [], [], [], [], [], [], [], []]\nx = 0\ny = 0\nz = 9\nt = 0\n\nTransaction trace:\nC.constructor()\nState: arr = [[], [], [], [], [], [], [], [], []]\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_1_safe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_1_safe.sol index 34663d931..d91ee235f 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_1_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_1_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,3 +5,5 @@ contract C { a.pop(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_1_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_1_unsafe.sol index 9ebdde1f2..270fa28fb 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_1_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_1_unsafe.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { a.pop(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (82-89): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (49-56): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_2d_safe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_2d_safe.sol index c67e91959..0d11770f8 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_2d_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_2d_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f() public { @@ -8,3 +6,5 @@ contract C { a[0].pop(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_2d_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_2d_unsafe.sol index d66114f62..f74381ce9 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_2d_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_2d_unsafe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f() public { @@ -9,5 +7,7 @@ contract C { a[1].pop(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (123-133): CHC: Empty array "pop" happens here.\nCounterexample:\na = [[0], []]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (90-100): CHC: Empty array "pop" happens here.\nCounterexample:\na = [[0], []]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_constructor_safe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_constructor_safe.sol index c462713df..7817f4eec 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_constructor_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_constructor_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; constructor() { @@ -7,3 +5,5 @@ contract C { a.pop(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_constructor_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_constructor_unsafe.sol index 1bbd1fbfd..1cb1ed013 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_constructor_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_constructor_unsafe.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { uint[] a; constructor() { a.pop(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (76-83): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor() +// Warning 2529: (43-50): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_loop_safe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_loop_safe.sol index aee7aeb52..2bf382e5d 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_loop_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_loop_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f(uint l) public { @@ -9,4 +7,6 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/array_members/pop_loop_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/pop_loop_unsafe.sol index e4020f8c6..0b0ba37e3 100644 --- a/test/libsolidity/smtCheckerTests/array_members/pop_loop_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/pop_loop_unsafe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f(uint l) public { @@ -10,5 +8,7 @@ contract C { a.pop(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (150-157): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\nl = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f(0) +// Warning 2529: (117-124): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\nl = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_safe.sol b/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_safe.sol index 34a1ae680..e306cc722 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f(uint[] memory x, uint y) public { @@ -8,3 +6,5 @@ contract C { assert(a[0][a[0].length - 1] == y); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_unsafe.sol index 8e54d1166..235c585bd 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_2d_arg_1_unsafe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f(uint[] memory x, uint y) public { @@ -10,7 +8,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 3944: (162-177): CHC: Underflow (resulting value less than 0) happens here. -// Warning 6328: (150-184): CHC: Assertion violation happens here. +// Warning 3944: (129-144): CHC: Underflow (resulting value less than 0) happens here. +// Warning 6328: (117-151): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/array_members/push_arg_1.sol b/test/libsolidity/smtCheckerTests/array_members/push_arg_1.sol index e36895554..8d31f78bc 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_arg_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_arg_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f(uint x) public { @@ -7,3 +5,5 @@ contract C { assert(a[a.length - 1] == x); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_1d.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_1d.sol index 6d0c00a0e..5920a4e74 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_1d.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_1d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] b; @@ -17,5 +15,7 @@ contract C { } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (232-262): CHC: Assertion violation happens here.\nCounterexample:\nb = [1]\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.g() +// Warning 6328: (199-229): CHC: Assertion violation happens here.\nCounterexample:\nb = [1]\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.g() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d.sol index 86367689c..862798b17 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] c; @@ -20,5 +18,7 @@ contract C { assert(c[c.length - 1][c[c.length - 1].length - 1] == 200); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (395-453): CHC: Assertion violation happens here.\nCounterexample:\nc = [[2]]\n\nTransaction trace:\nC.constructor()\nState: c = []\nC.g() +// Warning 6328: (362-420): CHC: Assertion violation happens here.\nCounterexample:\nc = [[2]]\n\nTransaction trace:\nC.constructor()\nState: c = []\nC.g() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d_2.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d_2.sol index a6a57233d..b64032291 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d_2.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_2d_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][] array2d; function s() public returns (int[] memory) { @@ -7,3 +6,5 @@ contract C { return array2d[1]; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_3d.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_3d.sol index d09ebcbff..dcb8c3aac 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_3d.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_3d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][][] c; @@ -26,6 +24,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (570-625): CHC: Assertion violation happens here. +// Warning 6328: (537-592): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_1d.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_1d.sol index 9214b530b..c634fbaa3 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_1d.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_1d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] b; function f() public { @@ -12,5 +10,7 @@ contract C { assert(b[length - 1] == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (237-263): CHC: Assertion violation happens here.\nCounterexample:\nb = [0, 0]\nlength = 2\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f() +// Warning 6328: (204-230): CHC: Assertion violation happens here.\nCounterexample:\nb = [0, 0]\nlength = 2\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_1.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_1.sol index bf9cd63fc..b79bc3e3b 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] b; function f() public { @@ -15,5 +13,7 @@ contract C { assert(b[0][0] != b[1][0]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (317-343): CHC: Assertion violation happens here.\nCounterexample:\nb = [[0], [0]]\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f() +// Warning 6328: (284-310): CHC: Assertion violation happens here.\nCounterexample:\nb = [[0], [0]]\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_2.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_2.sol index 69b62803a..988fdcfca 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_2.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_2d_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] b; function f() public { @@ -13,3 +11,5 @@ contract C { assert(b[length - 1][length1 - 1] == 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_bytes.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_bytes.sol index 486470669..6f3cfa214 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_bytes.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_and_rhs_bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes b; function f() public { @@ -12,5 +10,7 @@ contract C { assert(b[length - 1] == bytes1(uint8(1))); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (236-277): CHC: Assertion violation happens here.\nCounterexample:\nb = [0, 0]\nlength = 2\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f() +// Warning 6328: (203-244): CHC: Assertion violation happens here.\nCounterexample:\nb = [0, 0]\nlength = 2\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes.sol index 68b51d0c0..79a1f394c 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes b; @@ -18,5 +16,7 @@ contract C { } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (298-343): CHC: Assertion violation happens here.\nCounterexample:\nb = [1]\none = 1\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.g() +// Warning 6328: (265-310): CHC: Assertion violation happens here.\nCounterexample:\nb = [1]\none = 1\n\nTransaction trace:\nC.constructor()\nState: b = []\nC.g() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes_2d.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes_2d.sol index cde51ab91..a58647e61 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes_2d.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_bytes_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes[] c; @@ -22,5 +20,7 @@ contract C { assert(c[c.length - 1][c[c.length - 1].length - 1] == bytes1(uint8(100))); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (468-541): CHC: Assertion violation happens here.\nCounterexample:\nc = [[2]]\nval = 2\n\nTransaction trace:\nC.constructor()\nState: c = []\nC.g() +// Warning 6328: (435-508): CHC: Assertion violation happens here.\nCounterexample:\nc = [[2]]\nval = 2\n\nTransaction trace:\nC.constructor()\nState: c = []\nC.g() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_compound_assignment.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_compound_assignment.sol index 031bee0a5..f13c4f452 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_compound_assignment.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_compound_assignment.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { int[] u; @@ -11,5 +9,7 @@ contract C { assert(u[0] >= 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (161-178): CHC: Assertion violation happens here.\nCounterexample:\nu = [(- 1)]\n\nTransaction trace:\nC.constructor()\nState: u = []\nC.t() +// Warning 6328: (128-145): CHC: Assertion violation happens here.\nCounterexample:\nu = [(- 1)]\n\nTransaction trace:\nC.constructor()\nState: u = []\nC.t() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_struct.sol b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_struct.sol index 87773a7ea..23743dd7f 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_struct.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_as_lhs_struct.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { int[] b; @@ -13,3 +12,5 @@ contract C { assert(s.b[s.b.length -1] == t.s.b[t.s.b.length - 1]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe.sol b/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe.sol index dac9b10a0..87ead6a10 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint256[] x; constructor() { x.push(42); } @@ -8,3 +6,5 @@ contract C { assert(x[0] == 42 || x[0] == 23); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe_no_overflow_assumption.sol b/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe_no_overflow_assumption.sol index 6b4642bfd..1e4089886 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe_no_overflow_assumption.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_overflow_1_safe_no_overflow_assumption.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint256[] x; constructor() { x.push(42); } @@ -8,3 +6,5 @@ contract C { assert(x[0] == 42); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe.sol b/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe.sol index 340f670d0..4b10daaec 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe.sol @@ -10,3 +10,5 @@ contract C { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe_no_overflow_assumption.sol b/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe_no_overflow_assumption.sol index 433df09d5..1b241745a 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe_no_overflow_assumption.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_overflow_2_safe_no_overflow_assumption.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint256[] x; function f(uint256 l) public { @@ -11,4 +9,6 @@ contract C { assert(x[0] == 42); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1.sol b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1.sol index 8acd7998a..6290875a0 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][] array2d; function l() public { @@ -7,3 +6,5 @@ contract C { assert(array2d[array2d.length - 1].length > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1_fail.sol b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1_fail.sol index 8407d2869..9e998a1f0 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_1_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][] array2d; function l() public { @@ -7,6 +6,8 @@ contract C { assert(array2d[array2d.length - 1].length > 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (113-139): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[0]]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() -// Warning 6328: (143-189): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[0]]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() +// Warning 6328: (81-107): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[0]]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() +// Warning 6328: (111-157): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[0]]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2.sol b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2.sol index b6fd8e8c9..fc147e3d8 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][][] array2d; function l() public { @@ -9,3 +8,5 @@ contract C { assert(array2d[array2d.length - 1][last - 1].length > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2_fail.sol b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2_fail.sol index 7020350ef..db0a88f7b 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_push_no_args_2_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][][] array2d; function l() public { @@ -9,7 +8,9 @@ contract C { assert(array2d[array2d.length - 1][last - 1].length > 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (122-148): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 0\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() -// Warning 6328: (202-218): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() -// Warning 6328: (222-278): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() +// Warning 6328: (90-116): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 0\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() +// Warning 6328: (170-186): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() +// Warning 6328: (190-246): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[[0]]]\nlast = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_safe_aliasing.sol b/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_safe_aliasing.sol index 4c9aef2ac..7a120f428 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_safe_aliasing.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_safe_aliasing.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f() public { @@ -12,9 +10,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (212-216): CHC: Out of bounds access happens here. -// Warning 6368: (217-221): CHC: Out of bounds access happens here. -// Warning 3944: (217-232): CHC: Underflow (resulting value less than 0) happens here. -// Warning 6328: (205-239): CHC: Assertion violation happens here. +// Warning 6368: (179-183): CHC: Out of bounds access happens here. +// Warning 6368: (184-188): CHC: Out of bounds access happens here. +// Warning 3944: (184-199): CHC: Underflow (resulting value less than 0) happens here. +// Warning 6328: (172-206): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_aliasing.sol b/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_aliasing.sol index a7ea93073..d51a5f9e2 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_aliasing.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_aliasing.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f() public { @@ -12,7 +10,9 @@ contract C { assert(a[0][0] == 16); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (221-225): CHC: Out of bounds access happens here.\nCounterexample:\na = []\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() -// Warning 6368: (221-228): CHC: Out of bounds access happens here.\nCounterexample:\na = [[], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]]\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() -// Warning 6328: (214-235): CHC: Assertion violation happens here.\nCounterexample:\n\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 6368: (188-192): CHC: Out of bounds access happens here.\nCounterexample:\na = []\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 6368: (188-195): CHC: Out of bounds access happens here.\nCounterexample:\na = [[], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15], [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15]]\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 6328: (181-202): CHC: Assertion violation happens here.\nCounterexample:\n\nb = [32]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_length.sol b/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_length.sol index 06635c232..ea55e3055 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_length.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_storage_ref_unsafe_length.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; uint[][][] c; @@ -25,14 +23,16 @@ contract C { //assert(d[1] == 7); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (271-275): CHC: Out of bounds access happens here. -// Warning 6368: (271-278): CHC: Out of bounds access might happen here. -// Warning 6368: (271-281): CHC: Out of bounds access might happen here. -// Warning 6368: (344-348): CHC: Out of bounds access happens here. -// Warning 6368: (376-380): CHC: Out of bounds access happens here. -// Warning 6328: (369-393): CHC: Assertion violation happens here. -// Warning 6368: (546-550): CHC: Out of bounds access happens here. -// Warning 6368: (546-553): CHC: Out of bounds access happens here. -// Warning 6368: (546-556): CHC: Out of bounds access happens here. -// Warning 6328: (539-563): CHC: Assertion violation happens here. +// Warning 6368: (238-242): CHC: Out of bounds access happens here. +// Warning 6368: (238-245): CHC: Out of bounds access might happen here. +// Warning 6368: (238-248): CHC: Out of bounds access might happen here. +// Warning 6368: (311-315): CHC: Out of bounds access happens here. +// Warning 6368: (343-347): CHC: Out of bounds access happens here. +// Warning 6328: (336-360): CHC: Assertion violation happens here. +// Warning 6368: (513-517): CHC: Out of bounds access happens here. +// Warning 6368: (513-520): CHC: Out of bounds access happens here. +// Warning 6368: (513-523): CHC: Out of bounds access happens here. +// Warning 6328: (506-530): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/array_members/push_struct_member_1.sol b/test/libsolidity/smtCheckerTests/array_members/push_struct_member_1.sol index b2e500c74..15330f39b 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_struct_member_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_struct_member_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { int[] b; @@ -14,4 +13,6 @@ contract C { } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/array_members/push_struct_member_2.sol b/test/libsolidity/smtCheckerTests/array_members/push_struct_member_2.sol index ba9a84713..f763dd55c 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_struct_member_2.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_struct_member_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { int[] b; @@ -15,4 +14,6 @@ contract C { } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_safe.sol b/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_safe.sol index 33d9d1063..f92a929e0 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f() public { @@ -8,3 +6,5 @@ contract C { assert(a[a.length - 1][0] == 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_unsafe.sol index a7f9c51d9..ec33dc041 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_zero_2d_unsafe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function f() public { @@ -8,5 +6,7 @@ contract C { assert(a[a.length - 1][0] == 100); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (122-155): CHC: Assertion violation happens here.\nCounterexample:\na = [[0]]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 6328: (89-122): CHC: Assertion violation happens here.\nCounterexample:\na = [[0]]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/push_zero_safe.sol b/test/libsolidity/smtCheckerTests/array_members/push_zero_safe.sol index e8054e361..d677c9710 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_zero_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_zero_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,3 +5,5 @@ contract C { assert(a[a.length - 1] == 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/array_members/push_zero_unsafe.sol b/test/libsolidity/smtCheckerTests/array_members/push_zero_unsafe.sol index 16e019753..6647e8d41 100644 --- a/test/libsolidity/smtCheckerTests/array_members/push_zero_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/push_zero_unsafe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function f() public { @@ -7,5 +5,7 @@ contract C { assert(a[a.length - 1] == 100); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (94-124): CHC: Assertion violation happens here.\nCounterexample:\na = [0]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 6328: (61-91): CHC: Assertion violation happens here.\nCounterexample:\na = [0]\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1.sol b/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1.sol index 618aaff99..8b1791190 100644 --- a/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1.sol +++ b/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][] array2d; function l() public { @@ -14,5 +13,7 @@ contract C { return array2d[2]; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (184-213): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[], [], []]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()\n C.s() -- internal call +// Warning 6328: (152-181): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[], [], []]\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.l()\n C.s() -- internal call diff --git a/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1_safe.sol b/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1_safe.sol index 843b46b16..0f95b057a 100644 --- a/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1_safe.sol +++ b/test/libsolidity/smtCheckerTests/array_members/storage_pointer_push_1_safe.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][] array2d; function l() public { @@ -13,3 +12,5 @@ contract C { return array2d[2]; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/decreasing_balance.sol b/test/libsolidity/smtCheckerTests/blockchain_state/decreasing_balance.sol index 45bb781ba..7bbbf9ddb 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/decreasing_balance.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/decreasing_balance.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint t; constructor() { @@ -17,4 +15,6 @@ contract C { //assert(address(this).balance == t); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change.sol b/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change.sol index 816b9af32..7e233950c 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address t; constructor() { @@ -9,4 +7,6 @@ contract C { assert(address(this) == t); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_external_call.sol b/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_external_call.sol index c0adb1fe9..1af2dfb58 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_external_call.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_external_call.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -16,3 +14,5 @@ contract C { assert(a == t); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_internal_call.sol b/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_internal_call.sol index 70feedc3e..db82c55fe 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_internal_call.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/this_does_not_change_internal_call.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address t; constructor() { @@ -13,3 +11,5 @@ contract C { assert(a == address(this)); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/transfer.sol b/test/libsolidity/smtCheckerTests/blockchain_state/transfer.sol index 2ca716b21..4192d8aba 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/transfer.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/transfer.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(address payable a) public { require(address(this).balance > 1000); @@ -10,6 +8,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (199-234): CHC: Assertion violation happens here. +// Warning 6328: (166-201): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/assert.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/assert.sol index 9043689f5..819839f7e 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/assert.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/assert.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { assert(x > 0); @@ -20,7 +19,7 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (81-94): BMC: Assertion violation happens here. -// Warning 6838: (143-149): BMC: Condition is always true. -// Warning 6838: (218-224): BMC: Condition is always false. -// Warning 2512: (286-292): BMC: Condition unreachable. +// Warning 4661: (49-62): BMC: Assertion violation happens here. +// Warning 6838: (111-117): BMC: Condition is always true. +// Warning 6838: (186-192): BMC: Condition is always false. +// Warning 2512: (254-260): BMC: Condition unreachable. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/assert_in_constructor.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/assert_in_constructor.sol index 2ceae7304..f6f2f3a5b 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/assert_in_constructor.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/assert_in_constructor.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = initX(); diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers.sol index fb87df2b5..297d732ee 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -25,4 +23,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (103-117): BMC: Assertion violation happens here. +// Warning 4661: (70-84): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers_2.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers_2.sol index 47e3a27ef..f37f05684 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers_2.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/branches_in_modifiers_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -40,6 +38,6 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (384-398): BMC: Assertion violation happens here. -// Warning 4661: (635-652): BMC: Assertion violation happens here. -// Warning 4661: (781-795): BMC: Assertion violation happens here. +// Warning 4661: (351-365): BMC: Assertion violation happens here. +// Warning 4661: (602-619): BMC: Assertion violation happens here. +// Warning 4661: (748-762): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init.sol index 6d960112a..eb2f58105 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { int x; constructor (int a) { x = a;} @@ -37,7 +35,7 @@ contract C is B { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (330-344): BMC: Assertion violation happens here. -// Warning 4661: (422-445): BMC: Assertion violation happens here. -// Warning 4661: (522-546): BMC: Assertion violation happens here. -// Warning 4661: (566-579): BMC: Assertion violation happens here. +// Warning 4661: (297-311): BMC: Assertion violation happens here. +// Warning 4661: (389-412): BMC: Assertion violation happens here. +// Warning 4661: (489-513): BMC: Assertion violation happens here. +// Warning 4661: (533-546): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_chain_alternate.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_chain_alternate.sol index 511cfbb60..6364eb167 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_chain_alternate.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_chain_alternate.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x = 1; } @@ -27,4 +25,4 @@ contract D is C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (319-333): BMC: Assertion violation happens here. +// Warning 4661: (286-300): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_diamond.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_diamond.sol index c962d1003..b72555b69 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_diamond.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructor_state_variable_init_diamond.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { int x; } @@ -62,11 +60,11 @@ contract D4 is B, C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (370-384): BMC: Assertion violation happens here. -// Warning 4661: (403-418): BMC: Assertion violation happens here. +// Warning 4661: (337-351): BMC: Assertion violation happens here. +// Warning 4661: (370-385): BMC: Assertion violation happens here. +// Warning 4661: (460-474): BMC: Assertion violation happens here. // Warning 4661: (493-507): BMC: Assertion violation happens here. -// Warning 4661: (526-540): BMC: Assertion violation happens here. -// Warning 4661: (703-717): BMC: Assertion violation happens here. -// Warning 4661: (769-784): BMC: Assertion violation happens here. +// Warning 4661: (670-684): BMC: Assertion violation happens here. +// Warning 4661: (736-751): BMC: Assertion violation happens here. +// Warning 4661: (827-841): BMC: Assertion violation happens here. // Warning 4661: (860-874): BMC: Assertion violation happens here. -// Warning 4661: (893-907): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructors.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructors.sol index 9ed5ddcbf..afc48b4fe 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructors.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/constructors.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract B { int x; constructor(int b) { @@ -27,7 +25,7 @@ contract C is B { // ==== // SMTEngine: bmc // ---- -// Warning 5740: (152-157): Unreachable code. +// Warning 5740: (119-124): Unreachable code. +// Warning 4661: (277-291): BMC: Assertion violation happens here. // Warning 4661: (310-324): BMC: Assertion violation happens here. // Warning 4661: (343-357): BMC: Assertion violation happens here. -// Warning 4661: (376-390): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/nested_if.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/nested_if.sol index c941c6421..378c9dc92 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/nested_if.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/nested_if.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test(uint256 a, uint256 b) public pure { @@ -24,5 +22,5 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (147-174): BMC: Assertion violation happens here. -// Warning 6838: (332-348): BMC: Condition is always false. +// Warning 4661: (114-141): BMC: Assertion violation happens here. +// Warning 6838: (299-315): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/return_in_both_branches.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/return_in_both_branches.sol index 0ad554c31..992d0ee1d 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/return_in_both_branches.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/return_in_both_branches.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test() public pure { @@ -20,4 +18,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 5740: (265-273): Unreachable code. +// Warning 5740: (232-240): Unreachable code. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if.sol index 783a28543..aed7b0bb3 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test(uint256 a, uint256 b) public pure returns (uint256) { if (a == 0) { diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if2.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if2.sol index d614edb55..4860bd885 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if2.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test(uint256 a) public pure { @@ -16,4 +14,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (89-114): BMC: Assertion violation happens here. +// Warning 4661: (56-81): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_array.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_array.sol index 70cc1ed38..76e416905 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_array.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; @@ -27,4 +25,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (205-222): BMC: Assertion violation happens here. +// Warning 4661: (172-189): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_state_var.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_state_var.sol index 5acc7fcbe..20dd68eaa 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_state_var.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_state_var.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -21,4 +19,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (132-146): BMC: Assertion violation happens here. +// Warning 4661: (99-113): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct.sol index de3cfda1b..3976333cd 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -24,4 +22,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (156-172): BMC: Assertion violation happens here. +// Warning 4661: (123-139): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct_2.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct_2.sol index d709be0c7..aad44b7ea 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct_2.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_struct_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -24,4 +22,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (156-172): BMC: Assertion violation happens here. +// Warning 4661: (123-139): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_tuple.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_tuple.sol index e1e6b323c..5c5bb1297 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_tuple.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/simple_if_tuple.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -25,5 +23,5 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (160-174): BMC: Assertion violation happens here. -// Warning 4661: (194-208): BMC: Assertion violation happens here. +// Warning 4661: (127-141): BMC: Assertion violation happens here. +// Warning 4661: (161-175): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/triple_nested_if.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/triple_nested_if.sol index 38a5c852b..d3d7cb50c 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/triple_nested_if.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/branches_with_return/triple_nested_if.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint a; diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/funds.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/funds.sol index 129361224..737443e64 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/funds.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/funds.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(address payable a) public { a.transfer(200); @@ -7,4 +6,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 1236: (87-102): BMC: Insufficient funds happens here. +// Warning 1236: (55-70): BMC: Insufficient funds happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/implicit_constructor_with_function_calls.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/implicit_constructor_with_function_calls.sol index 2f09c6a9b..56c7eca75 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/implicit_constructor_with_function_calls.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/implicit_constructor_with_function_calls.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = initX(); uint y = initY(); @@ -16,4 +14,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (205-220): BMC: Assertion violation happens here. +// Warning 4661: (172-187): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/math.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/math.sol index 75a85172d..92dad6bd4 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/math.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/math.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function a(uint x, uint y) public pure returns (uint) { return x + y; @@ -16,7 +15,7 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 2661: (111-116): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 4144: (187-192): BMC: Underflow (resulting value less than 0) happens here. -// Warning 2661: (263-268): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 3046: (339-344): BMC: Division by zero happens here. +// Warning 2661: (79-84): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4144: (155-160): BMC: Underflow (resulting value less than 0) happens here. +// Warning 2661: (231-236): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 3046: (307-312): BMC: Division by zero happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/math_constructor.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/math_constructor.sol index 79fca378e..6d027c58e 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/math_constructor.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/math_constructor.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint z = 1; uint w = z - 3; @@ -6,4 +5,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4144: (68-73): BMC: Underflow (resulting value less than 0) happens here. +// Warning 4144: (36-41): BMC: Underflow (resulting value less than 0) happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/msg_value_4.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/msg_value_4.sol index 185a76eda..8ac34fad5 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/msg_value_4.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/msg_value_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { uint x = msg.value; constructor() { @@ -14,4 +13,4 @@ contract B { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (186-208): BMC: Assertion violation happens here. +// Warning 4661: (154-176): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/range_check.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/range_check.sol index 10906198c..faf713e2a 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/range_check.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/range_check.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { constructor() payable { assert(tx.origin >= address(0)); diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/timestamp.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/timestamp.sol index 65933f6d1..850c999ae 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/timestamp.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/timestamp.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public view returns (uint) { uint b = block.timestamp; diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_catch_clauses_2.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_catch_clauses_2.sol index eb6fe4756..ce81f2666 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_catch_clauses_2.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_catch_clauses_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public pure {} @@ -21,4 +20,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (338-352): BMC: Assertion violation happens here. +// Warning 4661: (306-320): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_returned_values_with_tuple.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_returned_values_with_tuple.sol index 136d96542..f79d82c12 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_returned_values_with_tuple.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/try_multiple_returned_values_with_tuple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { @@ -25,4 +24,4 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (368-383): BMC: Assertion violation happens here. +// Warning 4661: (336-351): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/unary_add_minus_overflow_detected.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/unary_add_minus_overflow_detected.sol index 9d375fd58..085be4618 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/unary_add_minus_overflow_detected.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/unary_add_minus_overflow_detected.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint8 x; @@ -24,5 +23,5 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 2661: (87-90): BMC: Overflow (resulting value larger than 255) happens here. -// Warning 4144: (127-130): BMC: Underflow (resulting value less than 0) happens here. +// Warning 2661: (55-58): BMC: Overflow (resulting value larger than 255) happens here. +// Warning 4144: (95-98): BMC: Underflow (resulting value less than 0) happens here. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/unchecked_function_call_with_unchecked_block.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/unchecked_function_call_with_unchecked_block.sol index 03e7f50aa..e5eb9b631 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/unchecked_function_call_with_unchecked_block.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/unchecked_function_call_with_unchecked_block.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) internal pure { unchecked { @@ -13,5 +12,5 @@ contract C { // ==== // SMTEngine: bmc // ---- -// Warning 4661: (117-130): BMC: Assertion violation happens here. -// Warning 4661: (117-130): BMC: Assertion violation happens here. +// Warning 4661: (85-98): BMC: Assertion violation happens here. +// Warning 4661: (85-98): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/complex/MerkleProof.sol b/test/libsolidity/smtCheckerTests/complex/MerkleProof.sol index 0e18796a1..606625d3f 100644 --- a/test/libsolidity/smtCheckerTests/complex/MerkleProof.sol +++ b/test/libsolidity/smtCheckerTests/complex/MerkleProof.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - /** * @title MerkleProof * @dev Merkle proof verification based on @@ -33,4 +31,6 @@ library MerkleProof { } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/complex/slither/const_state_variables.sol b/test/libsolidity/smtCheckerTests/complex/slither/const_state_variables.sol index 92a45e5ac..2415ac5eb 100644 --- a/test/libsolidity/smtCheckerTests/complex/slither/const_state_variables.sol +++ b/test/libsolidity/smtCheckerTests/complex/slither/const_state_variables.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { @@ -51,8 +49,9 @@ contract MyConc{ } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2519: (773-792): This declaration shadows an existing declaration. -// Warning 2018: (1009-1086): Function state mutability can be restricted to view -// Warning 4984: (985-1002): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 2519: (740-759): This declaration shadows an existing declaration. +// Warning 2018: (976-1053): Function state mutability can be restricted to view +// Warning 4984: (952-969): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/complex/slither/data_dependency.sol b/test/libsolidity/smtCheckerTests/complex/slither/data_dependency.sol index 074bc5b10..87edde95c 100644 --- a/test/libsolidity/smtCheckerTests/complex/slither/data_dependency.sol +++ b/test/libsolidity/smtCheckerTests/complex/slither/data_dependency.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract Simple{ address destination; @@ -116,5 +115,7 @@ contract PropagateThroughReturnValue { return (var_state); } } +// ==== +// SMTEngine: all // ---- -// Warning 2018: (1879-1947): Function state mutability can be restricted to view +// Warning 2018: (1847-1915): Function state mutability can be restricted to view diff --git a/test/libsolidity/smtCheckerTests/complex/slither/external_function.sol b/test/libsolidity/smtCheckerTests/complex/slither/external_function.sol index bf7345c75..9c235a28a 100644 --- a/test/libsolidity/smtCheckerTests/complex/slither/external_function.sol +++ b/test/libsolidity/smtCheckerTests/complex/slither/external_function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract ContractWithFunctionCalled { function funcCalled() external { uint256 i = 0; @@ -72,21 +70,23 @@ contract InternalCall { } } +// ==== +// SMTEngine: all // ---- -// Warning 9302: (760-815): Return value of low-level calls not used. -// Warning 2072: (117-126): Unused local variable. -// Warning 2072: (260-269): Unused local variable. -// Warning 2072: (667-676): Unused local variable. -// Warning 2018: (75-137): Function state mutability can be restricted to pure -// Warning 2018: (218-280): Function state mutability can be restricted to pure -// Warning 2018: (470-539): Function state mutability can be restricted to pure -// Warning 2018: (1144-1206): Function state mutability can be restricted to pure -// Warning 2018: (1212-1274): Function state mutability can be restricted to pure -// Warning 2018: (1280-1342): Function state mutability can be restricted to pure -// Warning 4588: (714-749): Assertion checker does not yet implement this type of function call. -// Warning 4588: (760-815): Assertion checker does not yet implement this type of function call. -// Warning 4588: (887-919): Assertion checker does not yet implement this type of function call. -// Warning 4588: (714-749): Assertion checker does not yet implement this type of function call. -// Warning 4588: (760-815): Assertion checker does not yet implement this type of function call. -// Warning 4588: (887-919): Assertion checker does not yet implement this type of function call. -// Warning 5729: (1403-1408): BMC does not yet implement this type of function call. +// Warning 9302: (727-782): Return value of low-level calls not used. +// Warning 2072: (84-93): Unused local variable. +// Warning 2072: (227-236): Unused local variable. +// Warning 2072: (634-643): Unused local variable. +// Warning 2018: (42-104): Function state mutability can be restricted to pure +// Warning 2018: (185-247): Function state mutability can be restricted to pure +// Warning 2018: (437-506): Function state mutability can be restricted to pure +// Warning 2018: (1111-1173): Function state mutability can be restricted to pure +// Warning 2018: (1179-1241): Function state mutability can be restricted to pure +// Warning 2018: (1247-1309): Function state mutability can be restricted to pure +// Warning 4588: (681-716): Assertion checker does not yet implement this type of function call. +// Warning 4588: (727-782): Assertion checker does not yet implement this type of function call. +// Warning 4588: (854-886): Assertion checker does not yet implement this type of function call. +// Warning 4588: (681-716): Assertion checker does not yet implement this type of function call. +// Warning 4588: (727-782): Assertion checker does not yet implement this type of function call. +// Warning 4588: (854-886): Assertion checker does not yet implement this type of function call. +// Warning 5729: (1370-1375): BMC does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/complex/warn_on_typecast.sol b/test/libsolidity/smtCheckerTests/complex/warn_on_typecast.sol index b37bd1a19..28b2a30d9 100644 --- a/test/libsolidity/smtCheckerTests/complex/warn_on_typecast.sol +++ b/test/libsolidity/smtCheckerTests/complex/warn_on_typecast.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { function f() public pure returns (uint) { return uint8(1); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/assignment_in_declaration.sol b/test/libsolidity/smtCheckerTests/control_flow/assignment_in_declaration.sol index 0c701672d..9a17438fe 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/assignment_in_declaration.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/assignment_in_declaration.sol @@ -1,4 +1,5 @@ -pragma experimental SMTChecker; contract C { function f() public pure { uint a = 2; assert(a == 2); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_1.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_1.sol index 64f6e0121..054098bd5 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_1.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { if (x > 10) { @@ -10,3 +9,5 @@ contract C { } } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_2.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_2.sol index e39ab844a..b1af861dd 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_assert_condition_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { if (x > 10) { @@ -14,3 +13,5 @@ contract C { } } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_1.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_1.sol index 4bf0bbe8b..097637168 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_1.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint x; modifier m(uint z) { @@ -20,5 +19,7 @@ contract C { assert(x == 6); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (359-373): CHC: Assertion violation happens here.\nCounterexample:\nx = 7\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call +// Warning 6328: (327-341): CHC: Assertion violation happens here.\nCounterexample:\nx = 7\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_2.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_2.sol index bf8173cbc..458c78081 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint x; modifier m(uint z) { @@ -20,5 +19,7 @@ contract C { assert(x == 6); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (365-379): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call +// Warning 6328: (333-347): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_3.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_3.sol index a7774f53b..b8323501c 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_3.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint x; modifier m(uint z) { @@ -20,5 +19,7 @@ contract C { assert(x == 6); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (358-372): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call +// Warning 6328: (326-340): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_4.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_4.sol index cb2bc8703..81f8b3d7c 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_4.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_inside_modifiers_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint x; modifier m(uint z) { @@ -21,6 +20,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (365-379): CHC: Assertion violation happens here. +// Warning 6328: (333-347): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_1.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_1.sol index f93e32e41..fa55db9f7 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_1.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Branch does not touch variable a contract C { function f(uint x) public pure { @@ -8,3 +7,5 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_2.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_2.sol index c00ef787a..30524b403 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Positive branch touches variable a, but assertion should still hold. contract C { function f(uint x) public pure { @@ -9,3 +8,5 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_3.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_3.sol index 4e18aa881..48833bb84 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_3.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Negative branch touches variable a, but assertion should still hold. contract C { function f(uint x) public pure { @@ -10,3 +9,5 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_4.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_4.sol index e3a027044..8fd6ca7b0 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_4.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Variable is not merged, if it is only read. contract C { function f(uint x) public pure { @@ -11,3 +10,5 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_5.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_5.sol index 0bd1cf3a0..b7c937700 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_5.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_5.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Variable is reset in both branches contract C { function f(uint x) public pure { @@ -11,3 +10,5 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_6.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_6.sol index 8e4771792..cd70a82c1 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_6.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_merge_variables_6.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Variable is reset in both branches contract C { function f(uint x) public pure { @@ -11,3 +10,5 @@ contract C { assert(a >= 3); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers.sol index 3651374c8..aa8199cd0 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -22,5 +20,7 @@ contract C { function test() check inc public { } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.test() +// Warning 6328: (70-84): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.test() diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers_2.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers_2.sol index f41bf2860..4241fa9e2 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/branches_in_modifiers_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -42,7 +40,9 @@ contract C { x = _x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (288-302): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.test()\n C.reset_if_overflow() -- internal call -// Warning 6328: (535-552): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\noldx = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.set(1)\nState: x = 1\nC.test()\n C.reset_if_overflow() -- internal call -// Warning 6328: (648-662): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.set(10)\nState: x = 10\nC.test()\n C.reset_if_overflow() -- internal call +// Warning 6328: (255-269): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.test()\n C.reset_if_overflow() -- internal call +// Warning 6328: (502-519): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\noldx = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.set(1)\nState: x = 1\nC.test()\n C.reset_if_overflow() -- internal call +// Warning 6328: (615-629): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.set(10)\nState: x = 10\nC.test()\n C.reset_if_overflow() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init.sol index c79da79b2..3f660be66 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { int x; constructor (int a) { x = a;} @@ -34,8 +32,10 @@ contract C is B { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (330-344): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) -// Warning 6328: (422-445): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) -// Warning 6328: (522-546): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) -// Warning 6328: (566-579): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 6328: (297-311): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) +// Warning 6328: (389-412): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) +// Warning 6328: (489-513): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 6328: (533-546): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_chain_alternate.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_chain_alternate.sol index b9dc9f051..f0b5d48e1 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_chain_alternate.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_chain_alternate.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x = 1; } @@ -24,5 +22,7 @@ contract D is C { assert(x == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (319-333): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\na = 1\n\nTransaction trace:\nD.constructor(1) +// Warning 6328: (286-300): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\na = 1\n\nTransaction trace:\nD.constructor(1) diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_diamond.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_diamond.sol index f149dff8d..7eb23a120 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_diamond.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructor_state_variable_init_diamond.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { int x; } @@ -59,12 +57,14 @@ contract D4 is B, C { assert(x == -1); // should hold (constructor of C is executed AFTER constructor of B) } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (370-384): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 1, x = 0\n\nTransaction trace:\nD1.constructor() -// Warning 6328: (403-418): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 1, x = 0\n\nTransaction trace:\nD1.constructor() +// Warning 6328: (337-351): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 1, x = 0\n\nTransaction trace:\nD1.constructor() +// Warning 6328: (370-385): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 1, x = 0\n\nTransaction trace:\nD1.constructor() +// Warning 6328: (460-474): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 1, x = (- 1)\n\nTransaction trace:\nD2.constructor() // Warning 6328: (493-507): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 1, x = (- 1)\n\nTransaction trace:\nD2.constructor() -// Warning 6328: (526-540): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 1, x = (- 1)\n\nTransaction trace:\nD2.constructor() -// Warning 6328: (703-717): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 2, x = 1\n\nTransaction trace:\nD3.constructor() -// Warning 6328: (769-784): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 2, x = 1\n\nTransaction trace:\nD3.constructor() +// Warning 6328: (670-684): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 2, x = 1\n\nTransaction trace:\nD3.constructor() +// Warning 6328: (736-751): CHC: Assertion violation happens here.\nCounterexample:\nz = 1, y = 2, x = 1\n\nTransaction trace:\nD3.constructor() +// Warning 6328: (827-841): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 2, x = (- 1)\n\nTransaction trace:\nD4.constructor() // Warning 6328: (860-874): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 2, x = (- 1)\n\nTransaction trace:\nD4.constructor() -// Warning 6328: (893-907): CHC: Assertion violation happens here.\nCounterexample:\nz = 2, y = 2, x = (- 1)\n\nTransaction trace:\nD4.constructor() diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructors.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructors.sol index e0b9242a5..d17a3f421 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructors.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/constructors.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract B { int x; constructor(int b) { @@ -24,8 +22,10 @@ contract C is B { assert(x == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 5740: (152-157): Unreachable code. +// Warning 5740: (119-124): Unreachable code. +// Warning 6328: (277-291): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\na = 1\n\nTransaction trace:\nC.constructor(1) // Warning 6328: (310-324): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\na = 1\n\nTransaction trace:\nC.constructor(1) -// Warning 6328: (343-357): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\na = 1\n\nTransaction trace:\nC.constructor(1) -// Warning 6328: (376-390): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\na = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 6328: (343-357): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\na = 0\n\nTransaction trace:\nC.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/nested_if.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/nested_if.sol index df6fc1ba7..43a4aea30 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/nested_if.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/nested_if.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test(uint256 a, uint256 b) public pure { @@ -21,6 +19,8 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (147-174): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\nb = 2\n\nTransaction trace:\nC.constructor()\nC.test(0, 2)\n C.nested_if(0, 2) -- internal call\n C.nested_if(0, 2) -- internal call -// Warning 6838: (332-348): BMC: Condition is always false. +// Warning 6328: (114-141): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\nb = 2\n\nTransaction trace:\nC.constructor()\nC.test(0, 2)\n C.nested_if(0, 2) -- internal call\n C.nested_if(0, 2) -- internal call +// Warning 6838: (299-315): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/return_in_both_branches.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/return_in_both_branches.sol index 07bb637e9..803b01857 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/return_in_both_branches.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/return_in_both_branches.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test() public pure { @@ -17,5 +15,7 @@ contract C { return 1; // dead code } } +// ==== +// SMTEngine: all // ---- -// Warning 5740: (265-273): Unreachable code. +// Warning 5740: (232-240): Unreachable code. diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if.sol index b77bc2b2b..c4def2562 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test(uint256 a, uint256 b) public pure returns (uint256) { if (a == 0) { @@ -8,3 +6,5 @@ contract C { return b / a; // This division is safe because of the early return in if-block. } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if2.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if2.sol index 1156b3fdf..ea4459597 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test(uint256 a) public pure { @@ -13,5 +11,7 @@ contract C { return 1; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (89-114): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\n\nTransaction trace:\nC.constructor()\nC.test(0)\n C.simple_if(0) -- internal call +// Warning 6328: (56-81): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\n\nTransaction trace:\nC.constructor()\nC.test(0)\n C.simple_if(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_array.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_array.sol index 4f50c49b7..bf48eb32e 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_array.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; @@ -24,5 +22,7 @@ contract C { a[1] = 1; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (205-222): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0]\n\nTransaction trace:\nC.constructor()\nState: a = [0, 0]\nC.check()\n C.conditional_store() -- internal call +// Warning 6328: (172-189): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0]\n\nTransaction trace:\nC.constructor()\nState: a = [0, 0]\nC.check()\n C.conditional_store() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_state_var.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_state_var.sol index e01ef1bcd..d3e74c01a 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_state_var.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_state_var.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -18,5 +16,7 @@ contract C { x = 1; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (132-146): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()\n C.conditional_increment() -- internal call +// Warning 6328: (99-113): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()\n C.conditional_increment() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct.sol index e7385eb05..e04cd91d7 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -21,5 +19,7 @@ contract C { s.x = 1; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (156-172): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0}\nC.check()\n C.conditional_increment() -- internal call +// Warning 6328: (123-139): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0}\nC.check()\n C.conditional_increment() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct_2.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct_2.sol index e07f9a731..d9fcb93bd 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_struct_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -21,5 +19,7 @@ contract C { s = S(1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (156-172): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0}\nC.check()\n C.conditional_increment() -- internal call +// Warning 6328: (123-139): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0}\nC.check()\n C.conditional_increment() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_tuple.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_tuple.sol index f88a90bfb..a9008ae25 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_tuple.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/simple_if_tuple.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -22,6 +20,8 @@ contract C { (x,y) = (1,1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (160-174): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.check()\n C.conditional_increment() -- internal call -// Warning 6328: (194-208): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.check()\n C.conditional_increment() -- internal call +// Warning 6328: (127-141): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.check()\n C.conditional_increment() -- internal call +// Warning 6328: (161-175): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.check()\n C.conditional_increment() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/triple_nested_if.sol b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/triple_nested_if.sol index 06caf8a2a..883469681 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/triple_nested_if.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/branches_with_return/triple_nested_if.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint a; @@ -17,3 +15,5 @@ contract C { assert(a != 0 || b != 0 || c != 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch.sol b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch.sol index c32bdd983..e71daa8a5 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -14,4 +12,6 @@ contract C return a; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_2.sol b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_2.sol index 1bff12f86..da8239492 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -19,4 +17,6 @@ contract C return a; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_3.sol b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_3.sol index d14a2e6bc..f526c958e 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_3.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -19,4 +17,6 @@ contract C return a; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_4.sol b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_4.sol index bdb7b9fd8..db3550a52 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_4.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_branch_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -24,4 +22,6 @@ contract C } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_else_branch.sol b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_else_branch.sol index 8c3099bf1..b13e976a2 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_else_branch.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_else_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -15,4 +13,6 @@ contract C return x; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_modifier_branch.sol b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_modifier_branch.sol index f79be2298..0eff935e0 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_modifier_branch.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_modifier_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m(address a) { @@ -18,4 +16,6 @@ contract C return a; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_placeholder_inside_modifier_branch.sol b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_placeholder_inside_modifier_branch.sol index 5366b22d4..d1a67b475 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_placeholder_inside_modifier_branch.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/function_call_inside_placeholder_inside_modifier_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m { @@ -19,4 +17,6 @@ contract C return a; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/require.sol b/test/libsolidity/smtCheckerTests/control_flow/require.sol index ecbbdb283..c59777d7c 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/require.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/require.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() pure public { require(false); @@ -29,6 +27,8 @@ contract C { require(false, m()); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (429-442): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (448-465): CHC: Assertion violation happens here.\nCounterexample:\nx = true\n\nTransaction trace:\nC.constructor()\nState: x = false\nC.i()\n C.m() -- internal call +// Warning 6321: (396-409): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (415-432): CHC: Assertion violation happens here.\nCounterexample:\nx = true\n\nTransaction trace:\nC.constructor()\nState: x = false\nC.i()\n C.m() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/return_1.sol b/test/libsolidity/smtCheckerTests/control_flow/return_1.sol index 3dabd2fef..95f9b2e56 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/return_1.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/return_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function add(uint x, uint y) internal pure returns (uint) { if (y == 0) @@ -18,4 +16,6 @@ contract C { assert(add(100, 100) == 200); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/return_1_fail.sol b/test/libsolidity/smtCheckerTests/control_flow/return_1_fail.sol index d7e00e2f9..59de4bc0f 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/return_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/return_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function add(uint x, uint y) internal pure returns (uint) { if (y == 0) @@ -19,9 +17,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (244-270): CHC: Assertion violation happens here. -// Warning 6328: (274-300): CHC: Assertion violation happens here. -// Warning 6328: (304-330): CHC: Assertion violation happens here. -// Warning 6328: (334-362): CHC: Assertion violation happens here. +// Warning 6328: (211-237): CHC: Assertion violation happens here. +// Warning 6328: (241-267): CHC: Assertion violation happens here. +// Warning 6328: (271-297): CHC: Assertion violation happens here. +// Warning 6328: (301-329): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/control_flow/return_2.sol b/test/libsolidity/smtCheckerTests/control_flow/return_2.sol index c6005bb08..54f265eee 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/return_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/return_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint c; function add(uint x, uint y) internal returns (uint) { @@ -27,4 +25,6 @@ contract C { assert(c == 0xffffffff); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/return_2_fail.sol b/test/libsolidity/smtCheckerTests/control_flow/return_2_fail.sol index 34c798a2a..7fcce53a1 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/return_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/return_2_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint c; function add(uint x, uint y) internal returns (uint) { @@ -28,13 +26,14 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (303-329): CHC: Assertion violation happens here. -// Warning 6328: (333-350): CHC: Assertion violation happens here. -// Warning 6328: (354-380): CHC: Assertion violation happens here. -// Warning 6328: (384-403): CHC: Assertion violation happens here. -// Warning 6328: (407-433): CHC: Assertion violation happens here. -// Warning 6328: (437-458): CHC: Assertion violation happens here. -// Warning 6328: (462-490): CHC: Assertion violation happens here. -// Warning 6328: (494-517): CHC: Assertion violation happens here. +// Warning 6328: (270-296): CHC: Assertion violation happens here. +// Warning 6328: (300-317): CHC: Assertion violation happens here. +// Warning 6328: (321-347): CHC: Assertion violation happens here. +// Warning 6328: (351-370): CHC: Assertion violation happens here. +// Warning 6328: (374-400): CHC: Assertion violation happens here. +// Warning 6328: (404-425): CHC: Assertion violation happens here. +// Warning 6328: (429-457): CHC: Assertion violation happens here. +// Warning 6328: (461-484): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/control_flow/revert.sol b/test/libsolidity/smtCheckerTests/control_flow/revert.sol index f47259025..14f6e988d 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/revert.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/revert.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() pure public { revert(); @@ -29,8 +27,10 @@ contract C { revert(m()); } } +// ==== +// SMTEngine: all // ---- -// Warning 5740: (116-129): Unreachable code. -// Warning 5740: (221-234): Unreachable code. -// Warning 6321: (408-421): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (427-444): CHC: Assertion violation happens here.\nCounterexample:\nx = true\n\nTransaction trace:\nC.constructor()\nState: x = false\nC.i()\n C.m() -- internal call +// Warning 5740: (83-96): Unreachable code. +// Warning 5740: (188-201): Unreachable code. +// Warning 6321: (375-388): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (394-411): CHC: Assertion violation happens here.\nCounterexample:\nx = true\n\nTransaction trace:\nC.constructor()\nState: x = false\nC.i()\n C.m() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/revert_complex_flow.sol b/test/libsolidity/smtCheckerTests/control_flow/revert_complex_flow.sol index 0d619fed4..5af670bda 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/revert_complex_flow.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/revert_complex_flow.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool b, uint a) pure public { require(a <= 256); @@ -13,6 +11,8 @@ contract C { assert(c == a); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (183-197): CHC: Assertion violation happens here.\nCounterexample:\n\nb = false\na = 0\nc = 2\n\nTransaction trace:\nC.constructor()\nC.f(false, 0) -// Warning 6838: (155-156): BMC: Condition is always false. +// Warning 6328: (150-164): CHC: Assertion violation happens here.\nCounterexample:\n\nb = false\na = 0\nc = 2\n\nTransaction trace:\nC.constructor()\nC.f(false, 0) +// Warning 6838: (122-123): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and.sol index 66f262787..6c4cfdc42 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,4 +12,6 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_fail.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_fail.sol index cbb43330f..198d4dc3e 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,5 +12,7 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (227-236): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n = false\nb = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call +// Warning 6328: (194-203): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n = false\nb = false\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_inside_branch.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_inside_branch.sol index 17339f4df..25ab73a19 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_inside_branch.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_inside_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -16,6 +14,8 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (202-218): CHC: Assertion violation happens here.\nCounterexample:\nx = 101\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call -// Warning 6328: (242-252): CHC: Assertion violation happens here.\nCounterexample:\nx = 101\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call +// Warning 6328: (169-185): CHC: Assertion violation happens here.\nCounterexample:\nx = 101\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call +// Warning 6328: (209-219): CHC: Assertion violation happens here.\nCounterexample:\nx = 101\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both.sol index 905964ed5..74f1ebb4e 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,4 +12,6 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both_fail.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both_fail.sol index d15467246..29bb06147 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_need_both_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,5 +12,7 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (225-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call +// Warning 6328: (192-202): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched.sol index d4b50a29e..9ded64131 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bool b; @@ -11,9 +9,11 @@ contract C if ((b = true) && b) {} } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (84-110): BMC: Condition is always false. -// Warning 6838: (121-147): BMC: Condition is always true. -// Warning 6838: (158-183): BMC: Condition is always false. -// Warning 6838: (194-221): BMC: Condition is always false. -// Warning 6838: (232-247): BMC: Condition is always true. +// Warning 6838: (51-77): BMC: Condition is always false. +// Warning 6838: (88-114): BMC: Condition is always true. +// Warning 6838: (125-150): BMC: Condition is always false. +// Warning 6838: (161-188): BMC: Condition is always false. +// Warning 6838: (199-214): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched_function.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched_function.sol index cf4424d5a..548ac4775 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched_function.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_and_touched_function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bool b; @@ -15,9 +13,11 @@ contract C if (g(true) && b) {} } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (156-179): BMC: Condition is always false. -// Warning 6838: (190-213): BMC: Condition is always true. -// Warning 6838: (224-243): BMC: Condition is always false. -// Warning 6838: (254-277): BMC: Condition is always false. -// Warning 6838: (288-300): BMC: Condition is always true. +// Warning 6838: (123-146): BMC: Condition is always false. +// Warning 6838: (157-180): BMC: Condition is always true. +// Warning 6838: (191-210): BMC: Condition is always false. +// Warning 6838: (221-244): BMC: Condition is always false. +// Warning 6838: (255-267): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or.sol index 1a6cb909a..c8926fbaa 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,4 +12,6 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_fail.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_fail.sol index 149b1ae21..8b0766e0a 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,5 +12,7 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (225-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call +// Warning 6328: (192-202): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_inside_branch.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_inside_branch.sol index 5d3fc7d4a..9bec38227 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_inside_branch.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_inside_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -23,5 +21,7 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (360-370): CHC: Assertion violation happens here.\nCounterexample:\nx = 102\na = false\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g(false)\n c.f() -- internal call\n c.f() -- internal call +// Warning 6328: (327-337): CHC: Assertion violation happens here.\nCounterexample:\nx = 102\na = false\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g(false)\n c.f() -- internal call\n c.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both.sol index c4a823dbc..4581a29fa 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,4 +12,6 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both_fail.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both_fail.sol index 7a5c8f2bf..8b623c9aa 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both_fail.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_need_both_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { uint x; function f() internal returns (uint) { @@ -14,5 +12,7 @@ contract c { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (225-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call +// Warning 6328: (192-202): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n = false\nb = true\n\nTransaction trace:\nc.constructor()\nState: x = 0\nc.g()\n c.f() -- internal call\n c.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched.sol index c5d9bb08d..50c6aeabb 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bool b; @@ -11,9 +9,11 @@ contract C if ((b = false) || b) {} } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (84-110): BMC: Condition is always true. -// Warning 6838: (121-147): BMC: Condition is always true. -// Warning 6838: (158-183): BMC: Condition is always true. -// Warning 6838: (194-221): BMC: Condition is always true. -// Warning 6838: (232-248): BMC: Condition is always false. +// Warning 6838: (51-77): BMC: Condition is always true. +// Warning 6838: (88-114): BMC: Condition is always true. +// Warning 6838: (125-150): BMC: Condition is always true. +// Warning 6838: (161-188): BMC: Condition is always true. +// Warning 6838: (199-215): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched_function.sol b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched_function.sol index c97365981..b541b284d 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched_function.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/short_circuit_or_touched_function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bool b; @@ -15,9 +13,11 @@ contract C if (g(false) || b) {} } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (156-179): BMC: Condition is always true. -// Warning 6838: (190-213): BMC: Condition is always true. -// Warning 6838: (224-243): BMC: Condition is always true. -// Warning 6838: (254-277): BMC: Condition is always true. -// Warning 6838: (288-301): BMC: Condition is always false. +// Warning 6838: (123-146): BMC: Condition is always true. +// Warning 6838: (157-180): BMC: Condition is always true. +// Warning 6838: (191-210): BMC: Condition is always true. +// Warning 6838: (221-244): BMC: Condition is always true. +// Warning 6838: (255-268): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/control_flow/try_catch_1.sol b/test/libsolidity/smtCheckerTests/control_flow/try_catch_1.sol index 9f15677dc..72f52d6d4 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/try_catch_1.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/try_catch_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public returns (uint) { try this.g() returns (uint x) { x; } @@ -7,5 +6,6 @@ contract C { } // ==== // EVMVersion: >=byzantium +// SMTEngine: all // ---- -// Warning 6321: (75-79): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (43-47): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/control_flow/try_catch_2.sol b/test/libsolidity/smtCheckerTests/control_flow/try_catch_2.sol index b0b9706fd..669a25d11 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/try_catch_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/try_catch_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public { try this.f() {} @@ -8,5 +7,6 @@ contract C { } } // ==== +// SMTEngine: all // EVMVersion: >=byzantium // ---- diff --git a/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_1.sol b/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_1.sol index 1732f1b13..34c155c7e 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_1.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Context {} contract ERC20 is Context { @@ -14,3 +12,5 @@ contract __unstable__ERC20Owned is ERC20 { } } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_2.sol b/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_2.sol index c11521a15..219980be6 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/virtual_function_call_inside_branch_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { function f() internal virtual { v(); @@ -19,5 +18,7 @@ contract C is B { f(); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (303-307): BMC: Condition is always false. +// Warning 6838: (271-275): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_1.sol b/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_1.sol index ec3dadeb0..5166afabb 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_1.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { uint a = 3; @@ -8,5 +7,7 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (159-173): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 11\na = 4\n\nTransaction trace:\nC.constructor()\nC.f(11) +// Warning 6328: (127-141): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 11\na = 4\n\nTransaction trace:\nC.constructor()\nC.f(11) diff --git a/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_2.sol b/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_2.sol index d1ba5b7f2..92be3c3ee 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_2.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { uint a = 3; @@ -8,5 +7,7 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (159-173): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 11\na = 4\n\nTransaction trace:\nC.constructor()\nC.f(11) +// Warning 6328: (127-141): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 11\na = 4\n\nTransaction trace:\nC.constructor()\nC.f(11) diff --git a/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_3.sol b/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_3.sol index 660181057..93d926769 100644 --- a/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_3.sol +++ b/test/libsolidity/smtCheckerTests/control_flow/ways_to_merge_variables_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { uint a = 3; @@ -8,5 +7,7 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (161-175): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 11\na = 5\n\nTransaction trace:\nC.constructor()\nC.f(11) +// Warning 6328: (129-143): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 11\na = 5\n\nTransaction trace:\nC.constructor()\nC.f(11) diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_compare_hashes.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_compare_hashes.sol index 86570e811..a49aeac09 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_compare_hashes.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_compare_hashes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes memory data) public pure { bytes32 k = keccak256(data); @@ -11,8 +9,9 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (183-197): CHC: Assertion violation happens here. -// Warning 6328: (201-215): CHC: Assertion violation happens here. -// Warning 6328: (219-233): CHC: Assertion violation happens here. +// Warning 6328: (150-164): CHC: Assertion violation happens here. +// Warning 6328: (168-182): CHC: Assertion violation happens here. +// Warning 6328: (186-200): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_fail.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_fail.sol index 17e5d297c..76868fa2b 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_fail.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function k(bytes memory b0, bytes memory b1) public pure { bytes32 k0 = keccak256(b0); @@ -24,12 +22,15 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (589-599): Unused local variable. -// Warning 2072: (631-641): Unused local variable. -// Warning 1218: (168-184): CHC: Error trying to invoke SMT solver. -// Warning 6328: (168-184): CHC: Assertion violation might happen here. -// Warning 6328: (305-321): CHC: Assertion violation happens here. -// Warning 6328: (448-464): CHC: Assertion violation happens here. -// Warning 4661: (168-184): BMC: Assertion violation happens here. +// Warning 2072: (556-566): Unused local variable. +// Warning 2072: (598-608): Unused local variable. +// Warning 1218: (135-151): CHC: Error trying to invoke SMT solver. +// Warning 6328: (135-151): CHC: Assertion violation might happen here. +// Warning 6328: (272-288): CHC: Assertion violation happens here. +// Warning 1218: (415-431): CHC: Error trying to invoke SMT solver. +// Warning 6328: (415-431): CHC: Assertion violation might happen here. +// Warning 4661: (135-151): BMC: Assertion violation happens here. +// Warning 4661: (415-431): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_not_same.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_not_same.sol index edbbce3c4..a8c6199d0 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_not_same.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_not_same.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes memory data) public pure { bytes32 k = keccak256(data); @@ -11,6 +9,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (229-243): CHC: Assertion violation happens here. +// Warning 6328: (196-210): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_over_blocks.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_over_blocks.sol index b277d88c9..45ac6319a 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_over_blocks.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_over_blocks.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes memory data) public pure { bytes32 k = keccak256(data); @@ -10,3 +8,5 @@ contract C { assert(h == k); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output.sol index ea2fd162b..fc03b3242 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes data; bytes32 h; @@ -36,3 +34,5 @@ contract C { assert(_erc == erc); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output_fail.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output_fail.sol index f11fb295d..865ec694b 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output_fail.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_over_state_same_output_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes data; bytes32 h; @@ -44,16 +42,18 @@ contract C { assert(_erc == erc); } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (726-745): CHC: Error trying to invoke SMT solver. -// Warning 6328: (726-745): CHC: Assertion violation might happen here. -// Warning 1218: (749-768): CHC: Error trying to invoke SMT solver. -// Warning 6328: (749-768): CHC: Assertion violation might happen here. -// Warning 1218: (772-791): CHC: Error trying to invoke SMT solver. -// Warning 6328: (772-791): CHC: Assertion violation might happen here. -// Warning 1218: (795-814): CHC: Error trying to invoke SMT solver. -// Warning 6328: (795-814): CHC: Assertion violation might happen here. -// Warning 4661: (726-745): BMC: Assertion violation happens here. -// Warning 4661: (749-768): BMC: Assertion violation happens here. -// Warning 4661: (772-791): BMC: Assertion violation happens here. -// Warning 4661: (795-814): BMC: Assertion violation happens here. +// Warning 1218: (693-712): CHC: Error trying to invoke SMT solver. +// Warning 6328: (693-712): CHC: Assertion violation might happen here. +// Warning 1218: (716-735): CHC: Error trying to invoke SMT solver. +// Warning 6328: (716-735): CHC: Assertion violation might happen here. +// Warning 1218: (739-758): CHC: Error trying to invoke SMT solver. +// Warning 6328: (739-758): CHC: Assertion violation might happen here. +// Warning 1218: (762-781): CHC: Error trying to invoke SMT solver. +// Warning 6328: (762-781): CHC: Assertion violation might happen here. +// Warning 4661: (693-712): BMC: Assertion violation happens here. +// Warning 4661: (716-735): BMC: Assertion violation happens here. +// Warning 4661: (739-758): BMC: Assertion violation happens here. +// Warning 4661: (762-781): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_same_output.sol b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_same_output.sol index f9e17f259..3ba3506e5 100644 --- a/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_same_output.sol +++ b/test/libsolidity/smtCheckerTests/crypto/crypto_functions_same_input_same_output.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function k(bytes memory b0) public pure { bytes memory b1 = b0; @@ -26,3 +24,5 @@ contract C { assert(a0 == a1); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/external_calls/external.sol b/test/libsolidity/smtCheckerTests/external_calls/external.sol index b34eeae96..8dd0f404a 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -16,5 +14,7 @@ contract C { assert(x < 10); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (200-214): CHC: Assertion violation happens here. +// Warning 6328: (167-181): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash.sol index be0a13abc..3464874c8 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract Crypto { function hash(bytes32) external pure virtual returns (bytes32); } @@ -26,6 +24,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (423-445): CHC: Assertion violation happens here. +// Warning 6328: (390-412): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_pure.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_pure.sol index 0f488aa99..e1273a299 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_pure.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_pure.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Crypto { function hash(bytes32) external pure returns (bytes32) { return bytes32(0); @@ -28,6 +26,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (431-453): CHC: Assertion violation happens here. +// Warning 6328: (398-420): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state.sol index 0ca7102cc..ecf7ff5ad 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract State { uint x; function f() public returns (uint) { @@ -34,6 +32,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (528-565): CHC: Assertion violation happens here. +// Warning 6328: (495-532): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy.sol index 62afe07bf..f546bc921 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract State { uint x; C c; @@ -29,6 +27,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (299-313): CHC: Assertion violation happens here. +// Warning 6328: (266-280): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_2.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_2.sol index cab2a0801..d20257692 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_2.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract State { uint x; C c; @@ -38,6 +36,8 @@ contract C { return y; } } +// ==== +// SMTEngine: all // ---- -// Warning 2018: (66-121): Function state mutability can be restricted to view -// Warning 6328: (400-414): CHC: Assertion violation happens here.\nCounterexample:\nowner = 0, y = 0, z = 3, s = 0, insidef = true\nprevOwner = 0\n\nTransaction trace:\nC.constructor()\nState: owner = 0, y = 0, z = 0, s = 0, insidef = false\nC.f()\n s.f() -- untrusted external call, synthesized as:\n C.zz() -- reentrant call +// Warning 2018: (33-88): Function state mutability can be restricted to view +// Warning 6328: (367-381): CHC: Assertion violation happens here.\nCounterexample:\nowner = 0, y = 0, z = 3, s = 0, insidef = true\nprevOwner = 0\n\nTransaction trace:\nC.constructor()\nState: owner = 0, y = 0, z = 0, s = 0, insidef = false\nC.f()\n s.f() -- untrusted external call, synthesized as:\n C.zz() -- reentrant call diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_3.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_3.sol index 70e276ce1..54b9efc44 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_3.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract State { uint x; C c; @@ -40,3 +38,5 @@ contract C { return y; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_indirect.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_indirect.sol index f07a45302..4ab3f21e6 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_indirect.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_indirect.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Other { C c; function h() public { @@ -42,7 +40,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (452-466): CHC: Assertion violation happens here. -// Warning 6328: (470-496): CHC: Assertion violation happens here. +// Warning 6328: (419-433): CHC: Assertion violation happens here. +// Warning 6328: (437-463): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_unsafe.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_unsafe.sol index ea70f99c5..d871d6e13 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_reentrancy_unsafe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract State { uint x; C c; @@ -34,7 +32,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (381-395): CHC: Assertion violation happens here. -// Warning 6328: (399-425): CHC: Assertion violation happens here. +// Warning 6328: (348-362): CHC: Assertion violation happens here. +// Warning 6328: (366-392): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_unsafe.sol b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_unsafe.sol index b75510a58..68990bebc 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_hash_known_code_state_unsafe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract State { uint x; function f() public returns (uint) { @@ -38,7 +36,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (435-461): CHC: Assertion violation happens here. -// Warning 6328: (594-631): CHC: Assertion violation happens here. +// Warning 6328: (402-428): CHC: Assertion violation happens here. +// Warning 6328: (561-598): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_inc.sol b/test/libsolidity/smtCheckerTests/external_calls/external_inc.sol index 2e8592329..3c1777d85 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_inc.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_inc.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -18,9 +16,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (146-149): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 4984: (146-149): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 6328: (189-203): CHC: Assertion violation happens here. -// Warning 2661: (146-149): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (113-116): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 4984: (113-116): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 6328: (156-170): CHC: Assertion violation happens here. +// Warning 2661: (113-116): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_inc1_inc2.sol b/test/libsolidity/smtCheckerTests/external_calls/external_inc1_inc2.sol index 30c61b2cf..25a93b233 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_inc1_inc2.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_inc1_inc2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -25,5 +23,7 @@ contract C { assert(oldX == x); } } +// ==== +// SMTEngine: all // ---- -// Warning 2018: (236-355): Function state mutability can be restricted to view +// Warning 2018: (203-322): Function state mutability can be restricted to view diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_1.sol b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_1.sol index 3023632b6..d92de6f04 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_1.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - interface D { function e() external; } contract C { @@ -15,5 +13,7 @@ contract C { assert(locked); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (239-253): CHC: Assertion violation happens here.\nCounterexample:\nlocked = false\ntarget = 0\n\nTransaction trace:\nC.constructor()\nState: locked = true\nC.call(0)\n D(target).e() -- untrusted external call, synthesized as:\n C.broken() -- reentrant call +// Warning 6328: (206-220): CHC: Assertion violation happens here.\nCounterexample:\nlocked = false\ntarget = 0\n\nTransaction trace:\nC.constructor()\nState: locked = true\nC.call(0)\n D(target).e() -- untrusted external call, synthesized as:\n C.broken() -- reentrant call diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_2.sol b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_2.sol index a67f15ce0..92c53a5e8 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_2.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - interface D { function e() external; } contract C { @@ -12,5 +10,7 @@ contract C { locked = true; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (150-164): CHC: Assertion violation happens here.\nCounterexample:\nlocked = false\ntarget = 0\n\nTransaction trace:\nC.constructor()\nState: locked = true\nC.call(0)\n D(target).e() -- untrusted external call, synthesized as:\n C.call(0) -- reentrant call +// Warning 6328: (117-131): CHC: Assertion violation happens here.\nCounterexample:\nlocked = false\ntarget = 0\n\nTransaction trace:\nC.constructor()\nState: locked = true\nC.call(0)\n D(target).e() -- untrusted external call, synthesized as:\n C.call(0) -- reentrant call diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_3.sol b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_3.sol index dd570f854..bfb88988f 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_3.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() virtual public {} } @@ -26,6 +24,8 @@ contract C is A { assert(x == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (187-201): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() -// Warning 6328: (385-399): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nd = 0\n\nTransaction trace:\nC.constructor()\nState: x = 1\nC.call(0)\n d.d() -- untrusted external call, synthesized as:\n C.f() -- reentrant call +// Warning 6328: (154-168): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() +// Warning 6328: (352-366): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nd = 0\n\nTransaction trace:\nC.constructor()\nState: x = 1\nC.call(0)\n d.d() -- untrusted external call, synthesized as:\n C.f() -- reentrant call diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_crypto.sol b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_crypto.sol index 71c31b02b..7c9ba2d5c 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_crypto.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_reentrancy_crypto.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() virtual public; } @@ -25,9 +23,11 @@ contract C { d.d(); } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (335-366): CHC: Error trying to invoke SMT solver. -// Warning 6328: (335-366): CHC: Assertion violation might happen here. -// Warning 1218: (335-366): CHC: Error trying to invoke SMT solver. -// Warning 6328: (335-366): CHC: Assertion violation might happen here. -// Warning 4661: (335-366): BMC: Assertion violation happens here. +// Warning 1218: (302-333): CHC: Error trying to invoke SMT solver. +// Warning 6328: (302-333): CHC: Assertion violation might happen here. +// Warning 1218: (302-333): CHC: Error trying to invoke SMT solver. +// Warning 6328: (302-333): CHC: Assertion violation might happen here. +// Warning 4661: (302-333): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_safe.sol b/test/libsolidity/smtCheckerTests/external_calls/external_safe.sol index c424b75de..a2b0f1363 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_safe.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -16,4 +14,6 @@ contract C { assert(x < 11); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/external_calls/external_single_inc.sol b/test/libsolidity/smtCheckerTests/external_calls/external_single_inc.sol index e4473c567..0b944acb2 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/external_single_inc.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/external_single_inc.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -22,5 +20,7 @@ contract C { assert(oldX == x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (256-273): CHC: Assertion violation happens here. +// Warning 6328: (223-240): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/external_calls/mutex.sol b/test/libsolidity/smtCheckerTests/external_calls/mutex.sol index 1173da3f8..bf95027bb 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/mutex.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/mutex.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -26,3 +24,5 @@ contract C { assert(y == x); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/external_calls/mutex_f_no_guard.sol b/test/libsolidity/smtCheckerTests/external_calls/mutex_f_no_guard.sol index 0aef6b3c9..f3b99f540 100644 --- a/test/libsolidity/smtCheckerTests/external_calls/mutex_f_no_guard.sol +++ b/test/libsolidity/smtCheckerTests/external_calls/mutex_f_no_guard.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -27,6 +25,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (307-321): CHC: Assertion violation happens here. +// Warning 6328: (274-288): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_constant_1.sol b/test/libsolidity/smtCheckerTests/file_level/free_constant_1.sol index afb79abaa..243d112da 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_constant_1.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_constant_1.sol @@ -1,10 +1,11 @@ -pragma experimental SMTChecker; uint constant A = 42; contract C { function f(uint x) public pure returns (uint) { return x + A; } } +// ==== +// SMTEngine: all // ---- -// Warning 8195: (32-52): Model checker analysis was not possible because file level constants are not supported. -// Warning 8195: (32-52): Model checker analysis was not possible because file level constants are not supported. +// Warning 8195: (0-20): Model checker analysis was not possible because file level constants are not supported. +// Warning 8195: (0-20): Model checker analysis was not possible because file level constants are not supported. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_constant_2.sol b/test/libsolidity/smtCheckerTests/file_level/free_constant_2.sol index 8a628541b..9f60fb374 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_constant_2.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_constant_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; uint256 constant x = 56; enum ActionChoices {GoLeft, GoRight, GoStraight, Sit} ActionChoices constant choices = ActionChoices.GoRight; @@ -8,11 +7,13 @@ contract C { return (x, choices, st); } } +// ==== +// SMTEngine: all // ---- -// Warning 2018: (220-310): Function state mutability can be restricted to pure -// Warning 8195: (32-55): Model checker analysis was not possible because file level constants are not supported. -// Warning 8195: (111-165): Model checker analysis was not possible because file level constants are not supported. -// Warning 8195: (167-204): Model checker analysis was not possible because file level constants are not supported. -// Warning 8195: (32-55): Model checker analysis was not possible because file level constants are not supported. -// Warning 8195: (111-165): Model checker analysis was not possible because file level constants are not supported. -// Warning 8195: (167-204): Model checker analysis was not possible because file level constants are not supported. +// Warning 2018: (188-278): Function state mutability can be restricted to pure +// Warning 8195: (0-23): Model checker analysis was not possible because file level constants are not supported. +// Warning 8195: (79-133): Model checker analysis was not possible because file level constants are not supported. +// Warning 8195: (135-172): Model checker analysis was not possible because file level constants are not supported. +// Warning 8195: (0-23): Model checker analysis was not possible because file level constants are not supported. +// Warning 8195: (79-133): Model checker analysis was not possible because file level constants are not supported. +// Warning 8195: (135-172): Model checker analysis was not possible because file level constants are not supported. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_1.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_1.sol index 0295f070a..ab214484b 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_function_1.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint[] data; function f(uint x, uint[] calldata input) public view returns (uint, uint) { @@ -9,6 +8,8 @@ contract C { function fun(uint[] calldata _x, uint[] storage _y) view returns (uint, uint[] calldata) { return (_y[0], _x); } +// ==== +// SMTEngine: all // ---- -// Warning 6660: (220-334): Model checker analysis was not possible because file level functions are not supported. -// Warning 6660: (220-334): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (188-302): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (188-302): Model checker analysis was not possible because file level functions are not supported. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_2.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_2.sol index e480f1219..b07c32fc6 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_function_2.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_2.sol @@ -1,10 +1,11 @@ -pragma experimental SMTChecker; contract C { function g() external { f(); } } function f() {} +// ==== +// SMTEngine: all // ---- -// Warning 6660: (82-97): Model checker analysis was not possible because file level functions are not supported. -// Warning 6660: (82-97): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (50-65): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (50-65): Model checker analysis was not possible because file level functions are not supported. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_3.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_3.sol index 6b04e3550..7fd7d8419 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_function_3.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_3.sol @@ -1,5 +1,6 @@ -pragma experimental SMTChecker; function f() view {} +// ==== +// SMTEngine: all // ---- -// Warning 6660: (32-52): Model checker analysis was not possible because file level functions are not supported. -// Warning 6660: (32-52): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (0-20): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (0-20): Model checker analysis was not possible because file level functions are not supported. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_4.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_4.sol index c2f284fda..0033da96d 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_function_4.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_4.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; function f()pure { ufixed a = uint64(1) + ufixed(2); } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (52-60): Unused local variable. -// Warning 6660: (32-87): Model checker analysis was not possible because file level functions are not supported. -// Warning 6660: (32-87): Model checker analysis was not possible because file level functions are not supported. +// Warning 2072: (20-28): Unused local variable. +// Warning 6660: (0-55): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (0-55): Model checker analysis was not possible because file level functions are not supported. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_5.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_5.sol index 28e10360f..093167676 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_function_5.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_5.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract K {} function f() pure { (abi.encode, ""); } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (67-83): Statement has no effect. -// Warning 6660: (46-86): Model checker analysis was not possible because file level functions are not supported. -// Warning 6660: (46-86): Model checker analysis was not possible because file level functions are not supported. +// Warning 6133: (35-51): Statement has no effect. +// Warning 6660: (14-54): Model checker analysis was not possible because file level functions are not supported. +// Warning 6660: (14-54): Model checker analysis was not possible because file level functions are not supported. diff --git a/test/libsolidity/smtCheckerTests/file_level/free_function_and_constant_1.sol b/test/libsolidity/smtCheckerTests/file_level/free_function_and_constant_1.sol index c19514c22..db4d38008 100644 --- a/test/libsolidity/smtCheckerTests/file_level/free_function_and_constant_1.sol +++ b/test/libsolidity/smtCheckerTests/file_level/free_function_and_constant_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; uint constant A = 42; contract C { uint[] data; @@ -10,8 +9,10 @@ contract C { function fun(uint[] calldata _x, uint[] storage _y) view returns (uint, uint[] calldata) { return (_y[0], _x); } +// ==== +// SMTEngine: all // ---- -// Warning 8195: (32-52): Model checker analysis was not possible because file level constants are not supported. -// Warning 6660: (246-360): Model checker analysis was not possible because file level functions are not supported. -// Warning 8195: (32-52): Model checker analysis was not possible because file level constants are not supported. -// Warning 6660: (246-360): Model checker analysis was not possible because file level functions are not supported. +// Warning 8195: (0-20): Model checker analysis was not possible because file level constants are not supported. +// Warning 6660: (214-328): Model checker analysis was not possible because file level functions are not supported. +// Warning 8195: (0-20): Model checker analysis was not possible because file level constants are not supported. +// Warning 6660: (214-328): Model checker analysis was not possible because file level functions are not supported. diff --git a/test/libsolidity/smtCheckerTests/function_selector/function_selector_via_contract_name.sol b/test/libsolidity/smtCheckerTests/function_selector/function_selector_via_contract_name.sol index a1690519d..e76403441 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/function_selector_via_contract_name.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/function_selector_via_contract_name.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { function f() external {} function g(uint256) external {} @@ -18,3 +16,4 @@ contract C { } } // ==== +// SMTEngine: all diff --git a/test/libsolidity/smtCheckerTests/function_selector/function_types_sig.sol b/test/libsolidity/smtCheckerTests/function_selector/function_types_sig.sol index 3eb56bf72..41bd77361 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/function_types_sig.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/function_types_sig.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint256 public x; @@ -23,9 +21,11 @@ contract C { assert(i() == 0x26121ff0); } } +// ==== +// SMTEngine: all // ---- -// Warning 7650: (284-296): Assertion checker does not yet support this expression. -// Warning 6328: (470-495): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()\n C.f() -- internal call\n C.g() -- internal call -// Warning 6328: (540-565): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()\n C.f() -- internal call\n C.g() -- internal call\n C.i() -- internal call\n C.i() -- internal call -// Warning 7650: (284-296): Assertion checker does not yet support this expression. -// Warning 7650: (284-296): Assertion checker does not yet support this expression. +// Warning 7650: (251-263): Assertion checker does not yet support this expression. +// Warning 6328: (437-462): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()\n C.f() -- internal call\n C.g() -- internal call +// Warning 6328: (507-532): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.check()\n C.f() -- internal call\n C.g() -- internal call\n C.i() -- internal call\n C.i() -- internal call +// Warning 7650: (251-263): Assertion checker does not yet support this expression. +// Warning 7650: (251-263): Assertion checker does not yet support this expression. diff --git a/test/libsolidity/smtCheckerTests/function_selector/homer.sol b/test/libsolidity/smtCheckerTests/function_selector/homer.sol index 1ad2ebd53..4fec30995 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/homer.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/homer.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - interface ERC165 { /// @notice Query if a contract implements an interface /// @param interfaceID The interface identifier, as specified in ERC-165 @@ -42,5 +40,7 @@ contract Homer is ERC165, Simpson { } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (1373-1428): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nHomer.constructor()\nHomer.check()\n Homer.supportsInterface(1941353618) -- internal call\n Homer.supportsInterface(33540519) -- internal call\n Homer.supportsInterface(2342435274) -- internal call +// Warning 6328: (1340-1395): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nHomer.constructor()\nHomer.check()\n Homer.supportsInterface(1941353618) -- internal call\n Homer.supportsInterface(33540519) -- internal call\n Homer.supportsInterface(2342435274) -- internal call diff --git a/test/libsolidity/smtCheckerTests/function_selector/selector.sol b/test/libsolidity/smtCheckerTests/function_selector/selector.sol index b1339ed54..fdcd3f85e 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/selector.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/selector.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { assert(msg.sig == this.f.selector); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/function_selector/selector_2.sol b/test/libsolidity/smtCheckerTests/function_selector/selector_2.sol index 7d87cdd3b..7cabb7ade 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/selector_2.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/selector_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() external pure { } @@ -8,5 +6,7 @@ contract C { assert(msg.sig == this.g.selector); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (125-159): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (92-126): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/function_selector/selector_3.sol b/test/libsolidity/smtCheckerTests/function_selector/selector_3.sol index 204b4b48f..7d2da3c57 100644 --- a/test/libsolidity/smtCheckerTests/function_selector/selector_3.sol +++ b/test/libsolidity/smtCheckerTests/function_selector/selector_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { int public x; @@ -10,5 +8,7 @@ contract C { assert(this.x.selector == this.y.selector); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (175-217): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() +// Warning 6328: (142-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/abi_encode_functions.sol b/test/libsolidity/smtCheckerTests/functions/abi_encode_functions.sol index 1f4eb6d6f..903b330d8 100644 --- a/test/libsolidity/smtCheckerTests/functions/abi_encode_functions.sol +++ b/test/libsolidity/smtCheckerTests/functions/abi_encode_functions.sol @@ -1,7 +1,9 @@ -pragma experimental SMTChecker;pragma abicoder v2; +pragma abicoder v2; contract C { function f() public pure returns (bytes memory, bytes memory) { return (abi.encode(""), abi.encodePacked( "7?8r")); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_base_basic.sol b/test/libsolidity/smtCheckerTests/functions/constructor_base_basic.sol index 155290dcc..3f858a6c3 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_base_basic.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_base_basic.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; constructor() { @@ -12,4 +10,6 @@ contract B is A { x = 3; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy.sol index 7c07804aa..5e1917761 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -12,5 +11,7 @@ contract A is C { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (152-166): CHC: Assertion violation happens here.\nCounterexample:\na = 2\n\nTransaction trace:\nA.constructor() +// Warning 6328: (120-134): CHC: Assertion violation happens here.\nCounterexample:\na = 2\n\nTransaction trace:\nA.constructor() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_2.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_2.sol index f1726e20d..c10ec05bf 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_2.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { a = x; } } contract A is C { constructor() C(2) { assert(a == 2); } } contract B is C { constructor() C(3) { assert(a == 3); } } contract J is C { constructor() C(3) { assert(a == 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (243-257): CHC: Assertion violation happens here.\nCounterexample:\na = 3\n\nTransaction trace:\nJ.constructor() +// Warning 6328: (211-225): CHC: Assertion violation happens here.\nCounterexample:\na = 3\n\nTransaction trace:\nJ.constructor() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_3.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_3.sol index 904667c52..067ac0218 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -19,7 +18,8 @@ contract A is B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (232-250): CHC: Assertion violation happens here. -// Warning 4984: (203-208): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (200-218): CHC: Assertion violation happens here. +// Warning 4984: (171-176): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_4.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_4.sol index 5202353c5..165740218 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_4.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -17,6 +16,8 @@ contract A is B { assert(a == x + 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (207-212): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\na = 0\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nA.constructor(115792089237316195423570985008687907853269984665640564039457584007913129639935) -// Warning 4984: (198-203): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\na = 0\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639934\n\nTransaction trace:\nA.constructor(115792089237316195423570985008687907853269984665640564039457584007913129639934) +// Warning 4984: (175-180): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\na = 0\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nA.constructor(115792089237316195423570985008687907853269984665640564039457584007913129639935) +// Warning 4984: (166-171): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\na = 0\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639934\n\nTransaction trace:\nA.constructor(115792089237316195423570985008687907853269984665640564039457584007913129639934) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond.sol index 32994a6f0..55b17509e 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -25,7 +24,8 @@ contract A is B2, B1 { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (200-205): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (302-320): CHC: Assertion violation happens here. +// Warning 4984: (168-173): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (270-288): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_2.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_2.sol index 76c83faa7..878612d04 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -25,7 +24,8 @@ contract A is B2, B1 { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (200-205): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (302-320): CHC: Assertion violation happens here. +// Warning 4984: (168-173): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (270-288): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_3.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_3.sol index 6a9999272..98da0a2a6 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -27,8 +26,9 @@ contract A is B2, B1 { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (241-246): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 4984: (225-230): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (334-350): CHC: Assertion violation happens here. +// Warning 4984: (209-214): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (193-198): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (302-318): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle.sol index be87705e1..ef24859ee 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor() { @@ -18,6 +17,8 @@ contract A is B, B2 { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (164-170): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (194-208): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) +// Warning 5667: (132-138): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (162-176): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle_empty_base.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle_empty_base.sol index 2a196b23f..5c55b262d 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle_empty_base.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_diamond_empty_middle_empty_base.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor() { @@ -17,3 +16,5 @@ contract B2 is C { contract A is B, B2 { } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_chain.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_chain.sol index 43c5fbb20..cd5308ded 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_chain.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_chain.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract F { uint a; constructor() { @@ -17,6 +16,8 @@ contract A is B { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (194-200): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (224-238): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) +// Warning 5667: (162-168): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (192-206): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle.sol index 3a2b97b80..00a74d505 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor() { @@ -15,6 +14,8 @@ contract A is B { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (138-144): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (172-186): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) +// Warning 5667: (106-112): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (140-154): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle_no_invocation.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle_no_invocation.sol index f415631c9..f2f6297b2 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle_no_invocation.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_empty_middle_no_invocation.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor() { @@ -14,6 +13,8 @@ contract A is B { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (138-144): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (150-164): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) +// Warning 5667: (106-112): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (118-132): CHC: Assertion violation happens here.\nCounterexample:\na = 2\nx = 0\n\nTransaction trace:\nA.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain.sol index 025599239..c2b6c1a27 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract F { uint a; constructor() { @@ -25,6 +24,8 @@ contract A is B { assert(a == 5); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (254-260): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (284-298): CHC: Assertion violation happens here.\nCounterexample:\na = 4\nx = 0\n\nTransaction trace:\nA.constructor(0) +// Warning 5667: (222-228): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (252-266): CHC: Assertion violation happens here.\nCounterexample:\na = 4\nx = 0\n\nTransaction trace:\nA.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_empty_base.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_empty_base.sol index 534c0eecb..da98452fe 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_empty_base.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_empty_base.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract F { uint a; constructor() { @@ -22,3 +21,5 @@ contract B is C { contract A is B { } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_local_vars.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_local_vars.sol index 8365757b7..50a91a7e0 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_local_vars.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_local_vars.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract F { uint a; constructor() { @@ -30,6 +29,8 @@ contract A is B { assert(a == a2); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (296-302): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (357-372): CHC: Assertion violation happens here.\nCounterexample:\na = 4\nx = 0\na1 = 4\na2 = 5\n\nTransaction trace:\nA.constructor(0) +// Warning 5667: (264-270): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (325-340): CHC: Assertion violation happens here.\nCounterexample:\na = 4\nx = 0\na1 = 4\na2 = 5\n\nTransaction trace:\nA.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params.sol index 61a77682a..15cc66a0d 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract F { uint a; constructor(uint x) { @@ -25,7 +24,8 @@ contract A is B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (247-252): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (328-342): CHC: Assertion violation happens here. +// Warning 4984: (215-220): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (296-310): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params_2.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params_2.sol index 6efddb691..933762ac8 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_mixed_chain_with_params_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract F { uint a; constructor(uint x) { @@ -22,5 +21,7 @@ contract B is C { contract A is B { } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (266-280): CHC: Assertion violation happens here.\nCounterexample:\na = 3\n\nTransaction trace:\nB.constructor() +// Warning 6328: (234-248): CHC: Assertion violation happens here.\nCounterexample:\na = 3\n\nTransaction trace:\nB.constructor() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_modifier.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_modifier.sol index 3104fda1f..951d006ec 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_modifier.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_modifier.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; modifier n { _; a = 7; } @@ -13,5 +12,7 @@ contract A is C { assert(a == 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (188-202): CHC: Assertion violation happens here.\nCounterexample:\na = 7\n\nTransaction trace:\nA.constructor() +// Warning 6328: (156-170): CHC: Assertion violation happens here.\nCounterexample:\na = 7\n\nTransaction trace:\nA.constructor() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_same_var.sol b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_same_var.sol index bc265e120..051b89252 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_same_var.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_hierarchy_same_var.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -12,6 +11,8 @@ contract A is C { assert(C.a == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (134-148): CHC: Assertion violation happens here.\nCounterexample:\na = 2\n\nTransaction trace:\nA.constructor() -// Warning 6328: (152-168): CHC: Assertion violation happens here.\nCounterexample:\na = 2\n\nTransaction trace:\nA.constructor() +// Warning 6328: (102-116): CHC: Assertion violation happens here.\nCounterexample:\na = 2\n\nTransaction trace:\nA.constructor() +// Warning 6328: (120-136): CHC: Assertion violation happens here.\nCounterexample:\na = 2\n\nTransaction trace:\nA.constructor() diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_simple.sol b/test/libsolidity/smtCheckerTests/functions/constructor_simple.sol index 0870ba496..2db9622ea 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_simple.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_simple.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -13,6 +11,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (141-155): CHC: Assertion violation happens here. +// Warning 6328: (108-122): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_state_value.sol b/test/libsolidity/smtCheckerTests/functions/constructor_state_value.sol index 3849d4ba2..5add9bf68 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_state_value.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_state_value.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = 5; @@ -12,5 +10,7 @@ contract C { assert(y == x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (145-159): CHC: Assertion violation happens here.\nCounterexample:\nx = 10\ny = 11\n\nTransaction trace:\nC.constructor()\nState: x = 10\nC.f(11) +// Warning 6328: (112-126): CHC: Assertion violation happens here.\nCounterexample:\nx = 10\ny = 11\n\nTransaction trace:\nC.constructor()\nState: x = 10\nC.f(11) diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_state_value_inherited.sol b/test/libsolidity/smtCheckerTests/functions/constructor_state_value_inherited.sol index 905685b06..165dc6ae6 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_state_value_inherited.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_state_value_inherited.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract B { uint x = 5; } @@ -15,6 +13,7 @@ contract C is B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (165-179): CHC: Assertion violation happens here. +// Warning 6328: (132-146): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_state_value_parameter.sol b/test/libsolidity/smtCheckerTests/functions/constructor_state_value_parameter.sol index fe831f5de..414809209 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_state_value_parameter.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_state_value_parameter.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = 5; @@ -13,7 +11,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (162-176): CHC: Assertion violation happens here. -// Warning 4984: (115-120): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (129-143): CHC: Assertion violation happens here. +// Warning 4984: (82-87): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/constructor_this.sol b/test/libsolidity/smtCheckerTests/functions/constructor_this.sol index a72dc095b..28a343b0d 100644 --- a/test/libsolidity/smtCheckerTests/functions/constructor_this.sol +++ b/test/libsolidity/smtCheckerTests/functions/constructor_this.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure {} constructor() { @@ -8,6 +7,8 @@ contract C { (this).f(); } } +// ==== +// SMTEngine: all // ---- -// Warning 5805: (197-201): "this" used in constructor. Note that external functions of a contract cannot be called while it is being constructed. -// Warning 5805: (216-220): "this" used in constructor. Note that external functions of a contract cannot be called while it is being constructed. +// Warning 5805: (165-169): "this" used in constructor. Note that external functions of a contract cannot be called while it is being constructed. +// Warning 5805: (184-188): "this" used in constructor. Note that external functions of a contract cannot be called while it is being constructed. diff --git a/test/libsolidity/smtCheckerTests/functions/function_call_does_not_clear_local_vars.sol b/test/libsolidity/smtCheckerTests/functions/function_call_does_not_clear_local_vars.sol index 1f002796f..8d21f58fa 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_call_does_not_clear_local_vars.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_call_does_not_clear_local_vars.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public { uint a = 3; @@ -8,4 +7,6 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/function_call_state_var_init.sol b/test/libsolidity/smtCheckerTests/functions/function_call_state_var_init.sol index f2527d1b0..6ca122aef 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_call_state_var_init.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_call_state_var_init.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = f(2); @@ -8,5 +6,7 @@ contract C { return y; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (116-132): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() +// Warning 6328: (83-99): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_1.sol b/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_1.sol index 2bacad7e2..4bb98c7a3 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract State { C c; function f() public returns (uint) { @@ -12,5 +11,7 @@ contract C { owner = address(0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (85-89): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (53-57): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_2.sol b/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_2.sol index 897367d48..937f9b2a6 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_external_call_should_not_inline_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract Other { C c; function h(bool b) public { @@ -12,4 +11,6 @@ contract C { owner = _owner; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/function_inline_chain.sol b/test/libsolidity/smtCheckerTests/functions/function_inline_chain.sol index dd3924e29..252ac146e 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_inline_chain.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_inline_chain.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint y; @@ -20,4 +18,6 @@ contract C assert(y == 1); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var.sol b/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var.sol index 915259b3d..55d908467 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -15,5 +13,7 @@ contract C assert(x == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = true\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(true)\n C.f() -- internal call +// Warning 6328: (176-190): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = true\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(true)\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_2.sol b/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_2.sol index 63e4c6d06..295cc0c21 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -16,3 +14,5 @@ contract C assert(x == 1); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_3.sol b/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_3.sol index d1ada0fd0..7b7118b93 100644 --- a/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/function_inside_branch_modify_state_var_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -23,6 +21,8 @@ contract C } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = true\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(true)\n C.f() -- internal call -// Warning 6328: (321-335): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = false\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(false)\n C.f() -- internal call +// Warning 6328: (176-190): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = true\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(true)\n C.f() -- internal call +// Warning 6328: (288-302): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nb = false\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(false)\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_bound_1.sol b/test/libsolidity/smtCheckerTests/functions/functions_bound_1.sol index 5e9722de7..c76e7d85d 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_bound_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_bound_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library L { function add(uint x, uint y) internal pure returns (uint) { @@ -17,3 +15,5 @@ contract C assert(y < 10000); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_bound_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_bound_1_fail.sol index 474b04f00..8b6bb58f0 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_bound_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_bound_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library L { function add(uint x, uint y) internal pure returns (uint) { @@ -17,5 +15,7 @@ contract C assert(y < 1000); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (261-277): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 1000\n\nTransaction trace:\nC.constructor()\nC.f(1)\n L.add(1, 999) -- internal call +// Warning 6328: (228-244): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 1000\n\nTransaction trace:\nC.constructor()\nC.f(1)\n L.add(1, 999) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_external_1.sol b/test/libsolidity/smtCheckerTests/functions/functions_external_1.sol index beb95617f..6887c00db 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_external_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_external_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function g(uint x) public virtual; @@ -16,4 +14,6 @@ contract C assert(x == y); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/functions_external_2.sol b/test/libsolidity/smtCheckerTests/functions/functions_external_2.sol index 22d8e93d6..bc2fa2dc3 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_external_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_external_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function g(uint x) public virtual; @@ -22,6 +20,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (267-286): CHC: Assertion violation happens here. +// Warning 6328: (234-253): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/functions_external_3.sol b/test/libsolidity/smtCheckerTests/functions/functions_external_3.sol index 589d17165..93273800e 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_external_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_external_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function g(uint x) public virtual; @@ -17,4 +15,6 @@ contract C assert(map[0] == map[1]); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/functions_external_4.sol b/test/libsolidity/smtCheckerTests/functions/functions_external_4.sol index 3f998b6f1..f5fd59c2f 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_external_4.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_external_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint _x) public pure returns (uint) { @@ -16,6 +14,7 @@ contract D } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (191-206): CHC: Assertion violation happens here. +// Warning 6328: (158-173): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_1.sol b/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_1.sol index a329120cc..ac7fd8845 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; function f() public { @@ -13,3 +11,5 @@ contract C { return ++x; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_2.sol b/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_2.sol index 5ea45e963..898dcecee 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library L { struct S { uint256[] data; @@ -18,4 +16,6 @@ contract C { assert(y == 42); // should hold } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_3.sol b/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_3.sol index 3ebf8804d..20f0ddcfe 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identifier_nested_tuple_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[]data; @@ -6,5 +5,7 @@ contract C { (data.pop)(); } } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (95-107): CHC: Empty array "pop" happens here.\nCounterexample:\ndata = []\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.f() +// Warning 2529: (63-75): CHC: Empty array "pop" happens here.\nCounterexample:\ndata = []\n\nTransaction trace:\nC.constructor()\nState: data = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identity_1.sol b/test/libsolidity/smtCheckerTests/functions/functions_identity_1.sol index 25a42db60..c223a6007 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identity_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identity_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function h(uint x) public pure returns (uint) { @@ -11,3 +10,5 @@ contract C } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identity_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_identity_1_fail.sol index a3ee609e6..c77359fd4 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identity_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identity_1_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function h(uint x) public pure returns (uint) { @@ -11,5 +10,7 @@ contract C } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (161-174): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.h(0) -- internal call +// Warning 6328: (129-142): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.h(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identity_2.sol b/test/libsolidity/smtCheckerTests/functions/functions_identity_2.sol index aff24b032..71e6abcd0 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identity_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identity_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function h(uint x) public pure returns (uint) { @@ -15,3 +14,5 @@ contract C } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identity_2_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_identity_2_fail.sol index 248ef85eb..33f37ffcc 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identity_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identity_2_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function h(uint x) public pure returns (uint) { @@ -15,5 +14,7 @@ contract C } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (229-242): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.h(0) -- internal call\n C.k(0) -- internal call +// Warning 6328: (197-210): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.h(0) -- internal call\n C.k(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple.sol b/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple.sol index 3793f4116..c139a2a66 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function h(uint x) public pure returns (uint) { @@ -11,4 +10,6 @@ contract C } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple_fail.sol index 6e20f8be9..9da6fd551 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_identity_as_tuple_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function h(uint x) public pure returns (uint) { @@ -11,5 +10,7 @@ contract C } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (163-176): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.h(0) -- internal call +// Warning 6328: (131-144): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.h(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_library_1.sol b/test/libsolidity/smtCheckerTests/functions/functions_library_1.sol index ff33b2877..b35ec1d71 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_library_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_library_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library L { function add(uint x, uint y) internal pure returns (uint) { @@ -16,4 +14,6 @@ contract C assert(y < 10000); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/functions_library_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_library_1_fail.sol index 4efa80ca3..f69d47baf 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_library_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_library_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library L { function add(uint x, uint y) internal pure returns (uint) { @@ -16,5 +14,7 @@ contract C assert(y < 1000); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (245-261): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 1000\n\nTransaction trace:\nC.constructor()\nC.f(1)\n L.add(1, 999) -- internal call +// Warning 6328: (212-228): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 1000\n\nTransaction trace:\nC.constructor()\nC.f(1)\n L.add(1, 999) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_recursive.sol b/test/libsolidity/smtCheckerTests/functions/functions_recursive.sol index ee24f0ae5..e6cb394b5 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_recursive.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_recursive.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; @@ -13,4 +12,6 @@ contract C } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/functions_recursive_indirect.sol b/test/libsolidity/smtCheckerTests/functions/functions_recursive_indirect.sol index 7cb7b22b1..8b4218b45 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_recursive_indirect.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_recursive_indirect.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; @@ -21,4 +20,6 @@ contract C assert(a == 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1.sol b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1.sol index 2f7563ddd..7f166c93d 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; @@ -12,3 +11,5 @@ contract C } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1_fail.sol index 5d46fef23..a7f0c879f 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_1_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; @@ -12,5 +11,7 @@ contract C } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (144-157): CHC: Assertion violation happens here.\nCounterexample:\na = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.g()\n C.f(0) -- internal call +// Warning 6328: (112-125): CHC: Assertion violation happens here.\nCounterexample:\na = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.g()\n C.f(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2.sol b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2.sol index 2f95d8af5..b57fee8ad 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; @@ -13,3 +12,5 @@ contract C } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2_fail.sol b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2_fail.sol index 84acebabb..29fd5aefb 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_storage_var_2_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; @@ -13,5 +12,7 @@ contract C } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (152-165): CHC: Assertion violation happens here.\nCounterexample:\na = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.g()\n C.f(1) -- internal call\n C.f(0) -- internal call +// Warning 6328: (120-133): CHC: Assertion violation happens here.\nCounterexample:\na = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.g()\n C.f(1) -- internal call\n C.f(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for.sol b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for.sol index 23b6cf8b4..681d42aef 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { function f(bool x) public pure { require(x); for (;x;) {} } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (98-99): BMC: Condition is always true. +// Warning 6838: (65-66): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for_only_call.sol b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for_only_call.sol index ed1ad73a3..549d500a8 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for_only_call.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_for_only_call.sol @@ -1,7 +1,7 @@ -pragma experimental SMTChecker; - contract C { function f(bool x) public pure { for (;x;) {} } function g() public pure { f(true); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_if.sol b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_if.sol index ea2093fa4..da5240aad 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_if.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_if.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { function f(bool x) public pure { require(x); if (x) {} } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (95-96): BMC: Condition is always true. +// Warning 6838: (63-64): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require.sol b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require.sol index 460b7da79..84fd5c62b 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { function f(bool x) public pure { x = true; require(x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (98-99): BMC: Condition is always true. +// Warning 6838: (65-66): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require_only_call.sol b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require_only_call.sol index 5cae940b5..83967cf1b 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require_only_call.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_require_only_call.sol @@ -1,7 +1,7 @@ -pragma experimental SMTChecker; - contract C { function f(bool x) public pure { require(x); } function g() public pure { f(true); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while.sol b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while.sol index 3899d35d7..91bfd981c 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { function f(bool x) public pure { require(x); while (x) {} } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (99-100): BMC: Condition is always true. +// Warning 6838: (66-67): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while_only_call.sol b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while_only_call.sol index 5000eeb6b..0c5f7c094 100644 --- a/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while_only_call.sol +++ b/test/libsolidity/smtCheckerTests/functions/functions_trivial_condition_while_only_call.sol @@ -1,7 +1,7 @@ -pragma experimental SMTChecker; - contract C { function f(bool x) public pure { while (x) {} } function g() public pure { f(true); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/getters/address.sol b/test/libsolidity/smtCheckerTests/functions/getters/address.sol index c65e49943..ff4032a65 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/address.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/address.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address public x; address payable public y; @@ -13,6 +11,8 @@ contract C { assert(y == address(this)); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (204-230): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() -// Warning 6328: (282-308): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() +// Warning 6328: (171-197): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() +// Warning 6328: (249-275): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/array_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/array_1.sol index 552640367..b3f6cad02 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/array_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/array_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] public a; constructor() { @@ -14,5 +12,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (220-234): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0, 0, 0]\ny = 0\n\nTransaction trace:\nC.constructor()\nState: a = [0, 0, 0, 0]\nC.f() +// Warning 6328: (187-201): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0, 0, 0]\ny = 0\n\nTransaction trace:\nC.constructor()\nState: a = [0, 0, 0, 0]\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/array_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/array_2.sol index 070acb2cc..d4e1dc147 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/array_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/array_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] public a; constructor() { @@ -18,6 +16,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (275-289): CHC: Assertion violation happens here. +// Warning 6328: (242-256): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_1.sol index 688cf0783..17cee5ce6 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_1.sol @@ -1,6 +1,4 @@ pragma abicoder v1; -pragma experimental SMTChecker; - struct Item { uint x; uint y; @@ -14,3 +12,5 @@ contract D { return a + b; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_2.sol index b17afda3a..6c7b0a1b3 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_2.sol @@ -1,6 +1,4 @@ pragma abicoder v1; -pragma experimental SMTChecker; - struct Item { uint x; uint y; @@ -18,5 +16,7 @@ contract D { assert(b == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (300-314): CHC: Assertion violation happens here.\nCounterexample:\nitems = [{x: 42, y: 43}]\na = 42\nb = 43\n\nTransaction trace:\nD.constructor()\nState: items = []\nD.test() +// Warning 6328: (267-281): CHC: Assertion violation happens here.\nCounterexample:\nitems = [{x: 42, y: 43}]\na = 42\nb = 43\n\nTransaction trace:\nD.constructor()\nState: items = []\nD.test() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_3.sol b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_3.sol index f2be2c4a6..d089d2eda 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_3.sol @@ -1,6 +1,4 @@ pragma abicoder v1; -pragma experimental SMTChecker; - struct Item { uint x; uint y; @@ -20,5 +18,7 @@ contract D { assert(b == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (355-369): CHC: Assertion violation happens here.\nCounterexample:\nitems = [{x: 42, y: 43, arr: [0]}]\ntmp = [0]\na = 42\nb = 43\n\nTransaction trace:\nD.constructor()\nState: items = []\nD.test() +// Warning 6328: (322-336): CHC: Assertion violation happens here.\nCounterexample:\nitems = [{x: 42, y: 43, arr: [0]}]\ntmp = [0]\na = 42\nb = 43\n\nTransaction trace:\nD.constructor()\nState: items = []\nD.test() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/bytes.sol b/test/libsolidity/smtCheckerTests/functions/getters/bytes.sol index 3ffca6223..01dec8bc1 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/bytes.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes public str2 = 'c'; @@ -9,7 +7,9 @@ contract C { assert(keccak256(a2) == keccak256('a')); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (195-234): CHC: Error trying to invoke SMT solver. -// Warning 6328: (195-234): CHC: Assertion violation might happen here. -// Warning 4661: (195-234): BMC: Assertion violation happens here. +// Warning 1218: (162-201): CHC: Error trying to invoke SMT solver. +// Warning 6328: (162-201): CHC: Assertion violation might happen here. +// Warning 4661: (162-201): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/contract.sol b/test/libsolidity/smtCheckerTests/functions/getters/contract.sol index d050dfb1c..a9d6982ef 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/contract.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/contract.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract D {} contract C { @@ -11,5 +9,7 @@ contract C { assert(address(e) == address(this)); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (156-191): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: d = 0\nC.f() +// Warning 6328: (123-158): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: d = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/double_access.sol b/test/libsolidity/smtCheckerTests/functions/getters/double_access.sol index 4e7963cb5..e90cc2cfd 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/double_access.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/double_access.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint u; @@ -15,5 +13,7 @@ contract C { assert(u == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (226-240): CHC: Assertion violation happens here.\nCounterexample:\ns = {u: 0}\nu = 0\nv = 0\n\nTransaction trace:\nC.constructor()\nState: s = {u: 0}\nC.f() +// Warning 6328: (193-207): CHC: Assertion violation happens here.\nCounterexample:\ns = {u: 0}\nu = 0\nv = 0\n\nTransaction trace:\nC.constructor()\nState: s = {u: 0}\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/enum.sol b/test/libsolidity/smtCheckerTests/functions/getters/enum.sol index ab9896862..66df04474 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/enum.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/enum.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum ActionChoices { GoLeft, GoRight, GoStraight, SitStill } @@ -11,5 +9,7 @@ contract C { assert(e == ActionChoices.SitStill); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (243-278): CHC: Assertion violation happens here.\nCounterexample:\nchoice = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: choice = 0\nC.f() +// Warning 6328: (210-245): CHC: Assertion violation happens here.\nCounterexample:\nchoice = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: choice = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/fixed_bytes.sol b/test/libsolidity/smtCheckerTests/functions/getters/fixed_bytes.sol index df4c866d4..fa56e15c8 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/fixed_bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes1 public x; bytes3 public y; @@ -13,6 +11,8 @@ contract C { assert(y == "abc"); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (192-208): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() -// Warning 6328: (260-278): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() +// Warning 6328: (159-175): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() +// Warning 6328: (227-245): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, y = 0\na = 0\nb = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, y = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/function.sol b/test/libsolidity/smtCheckerTests/functions/getters/function.sol index d6253ab69..44120b189 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/function.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function () external returns (uint) public g; @@ -14,6 +12,8 @@ contract C { return 42; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (185-203): CHC: Assertion violation happens here.\nCounterexample:\ng = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: g = 0\nC.f() -// Warning 6328: (295-311): CHC: Assertion violation happens here.\nCounterexample:\ng = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: g = 0\nC.f() +// Warning 6328: (152-170): CHC: Assertion violation happens here.\nCounterexample:\ng = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: g = 0\nC.f() +// Warning 6328: (262-278): CHC: Assertion violation happens here.\nCounterexample:\ng = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: g = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_1.sol index 08fa25348..44aac8a3b 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { string a; @@ -10,6 +9,7 @@ contract C { } } // ==== +// SMTEngine: all // EVMVersion: <=spuriousDragon // ---- -// Warning 6321: (133-140): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (101-108): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_2.sol index e40107c2d..81a2fc6b4 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_2.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; contract C { function f() public returns(bool[]memory) { this.f(); } } // ==== +// SMTEngine: all // EVMVersion: <=spuriousDragon // ---- -// Warning 6321: (74-86): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (42-54): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_3.sol b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_3.sol index e6afaf3c1..ca790a614 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { string a; @@ -9,6 +8,7 @@ contract C { } } // ==== +// SMTEngine: all // EVMVersion: <=spuriousDragon // ---- -// Warning 6321: (120-127): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (88-95): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_4.sol b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_4.sol index 03d553798..3e5ba016e 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_4.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/inaccessible_dynamic_type_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { string public s; function g() public view returns (uint256) { @@ -6,6 +5,7 @@ contract C { } } // ==== +// SMTEngine: all // EVMVersion: <=spuriousDragon // ---- -// Warning 6321: (98-105): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (66-73): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/mapping_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/mapping_1.sol index 1d372d2cf..6e133feda 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/mapping_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/mapping_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) public map; @@ -9,5 +7,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (175-189): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (142-156): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/mapping_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/mapping_2.sol index 95b82181a..814a0a2ad 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/mapping_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/mapping_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => uint)) public map; @@ -9,5 +7,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (199-213): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (166-180): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/mapping_with_cast.sol b/test/libsolidity/smtCheckerTests/functions/getters/mapping_with_cast.sol index 11d6ee611..a64a52c34 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/mapping_with_cast.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/mapping_with_cast.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (bytes16 => uint) public m; @@ -9,5 +7,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (180-194): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (147-161): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_1.sol index a28db46af..b90bc412a 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[]) public m; @@ -15,5 +13,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (243-257): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (210-224): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_10.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_10.sol index ea6b2e16d..7fa0381b6 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_10.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_10.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[])[] public m; @@ -18,6 +16,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (289-303): CHC: Assertion violation happens here. +// Warning 6328: (256-270): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_2.sol index 5a05e9cee..f1afc6e80 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[][]) public m; @@ -19,6 +17,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (307-321): CHC: Assertion violation happens here. +// Warning 6328: (274-288): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_3.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_3.sol index 404c1ee9b..97cc03919 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[][][]) public m; @@ -23,4 +21,6 @@ contract C { //assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_4.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_4.sol index 0cec4785a..4aca89ef7 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_4.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => uint[])) public m; @@ -17,6 +15,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (293-307): CHC: Assertion violation happens here. +// Warning 6328: (260-274): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_5.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_5.sol index 5ff431452..ce22da600 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_5.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => uint[][])) public m; @@ -21,6 +19,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (387-401): CHC: Assertion violation happens here. +// Warning 6328: (354-368): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_6.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_6.sol index 336fad8d5..3ad4d94ae 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_6.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => mapping (uint => uint[]))) public m; @@ -18,4 +16,6 @@ contract C { //assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_7.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_7.sol index 4ca1894d1..5c5af070e 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_7.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_7.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint)[] public m; @@ -14,5 +12,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (225-239): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (192-206): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_8.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_8.sol index 7185956b0..1a0f9a799 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_8.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_8.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint)[][] public m; @@ -16,5 +14,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (265-279): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (232-246): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_9.sol b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_9.sol index 8002639e0..8df8edad4 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_9.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/nested_arrays_mappings_9.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => uint))[] public m; @@ -14,5 +12,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (251-265): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (218-232): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 42\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/static_array.sol b/test/libsolidity/smtCheckerTests/functions/getters/static_array.sol index 596b7e350..d77ab04e3 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/static_array.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/static_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { @@ -11,5 +9,7 @@ contract C { assert(this.x(0) == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (195-217): CHC: Assertion violation happens here.\nCounterexample:\nx = [42, 1]\n\nTransaction trace:\nC.constructor()\nState: x = [42, 1]\nC.f() +// Warning 6328: (162-184): CHC: Assertion violation happens here.\nCounterexample:\nx = [42, 1]\n\nTransaction trace:\nC.constructor()\nState: x = [42, 1]\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/string.sol b/test/libsolidity/smtCheckerTests/functions/getters/string.sol index 42b0f1db4..2f2319a16 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/string.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/string.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { string public str1 = 'b'; @@ -9,7 +7,9 @@ contract C { assert(keccak256(bytes(a1)) == keccak256('a')); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (211-257): CHC: Error trying to invoke SMT solver. -// Warning 6328: (211-257): CHC: Assertion violation might happen here. -// Warning 4661: (211-257): BMC: Assertion violation happens here. +// Warning 1218: (178-224): CHC: Error trying to invoke SMT solver. +// Warning 6328: (178-224): CHC: Assertion violation might happen here. +// Warning 4661: (178-224): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/struct_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/struct_1.sol index 910870cf0..73e6f3316 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/struct_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/struct_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -25,5 +24,7 @@ contract C { assert(c == true); // this should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (370-387): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0, t: {t: 0}, b: false, a: []}\ny = 0\nc = false\nt = {t: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0, t: {t: 0}, b: false, a: []}\nC.f() +// Warning 6328: (338-355): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 0, t: {t: 0}, b: false, a: []}\ny = 0\nc = false\nt = {t: 0}\n\nTransaction trace:\nC.constructor()\nState: s = {x: 0, t: {t: 0}, b: false, a: []}\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/struct_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/struct_2.sol index 239aa206f..4fa8b0e3f 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/struct_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/struct_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; //pragma abicoder v2; contract C { @@ -15,5 +14,7 @@ contract C { assert(u == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (207-221): CHC: Assertion violation happens here.\nCounterexample:\ns = {a: [0, 0], u: 0}\nu = 0\n\nTransaction trace:\nC.constructor()\nState: s = {a: [0, 0], u: 0}\nC.f() +// Warning 6328: (175-189): CHC: Assertion violation happens here.\nCounterexample:\ns = {a: [0, 0], u: 0}\nu = 0\n\nTransaction trace:\nC.constructor()\nState: s = {a: [0, 0], u: 0}\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/struct_3.sol b/test/libsolidity/smtCheckerTests/functions/getters/struct_3.sol index d2f78d333..ddeaa655b 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/struct_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/struct_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { string s; @@ -20,5 +18,7 @@ contract C { assert(b[0] == "t"); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (340-359): CHC: Assertion violation happens here. +// Warning 6328: (307-326): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol b/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol index ac79475b4..73c2fcc57 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract D { } @@ -17,6 +15,8 @@ contract C { assert(address(d) == address(this)); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (179-216): Unused local variable. -// Warning 6328: (267-302): CHC: Assertion violation happens here.\nCounterexample:\ns = {d: 0, f: 0}\nd = 0\nf = 0\n\nTransaction trace:\nC.constructor()\nState: s = {d: 0, f: 0}\nC.test() +// Warning 2072: (146-183): Unused local variable. +// Warning 6328: (234-269): CHC: Assertion violation happens here.\nCounterexample:\ns = {d: 0, f: 0}\nd = 0\nf = 0\n\nTransaction trace:\nC.constructor()\nState: s = {d: 0, f: 0}\nC.test() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/struct_with_reassignment.sol b/test/libsolidity/smtCheckerTests/functions/getters/struct_with_reassignment.sol index b14ec0212..c2d0d4426 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/struct_with_reassignment.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/struct_with_reassignment.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -27,6 +25,8 @@ contract C { } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (288-305): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 1, b: false}\nx = 1\nb = false\ny = 0\nc = false\n\nTransaction trace:\nC.constructor()\nState: s = {x: 1, b: false}\nC.f() -// Warning 6328: (410-424): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 42, b: false}\nx = 1\nb = false\ny = 42\nc = false\n\nTransaction trace:\nC.constructor()\nState: s = {x: 1, b: false}\nC.f() +// Warning 6328: (255-272): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 1, b: false}\nx = 1\nb = false\ny = 0\nc = false\n\nTransaction trace:\nC.constructor()\nState: s = {x: 1, b: false}\nC.f() +// Warning 6328: (377-391): CHC: Assertion violation happens here.\nCounterexample:\ns = {x: 42, b: false}\nx = 1\nb = false\ny = 42\nc = false\n\nTransaction trace:\nC.constructor()\nState: s = {x: 1, b: false}\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/uint.sol b/test/libsolidity/smtCheckerTests/functions/getters/uint.sol index 1643ab44d..b85d47284 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/uint.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint public x; @@ -9,5 +7,7 @@ contract C { assert(y == 1); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (147-161): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() +// Warning 6328: (114-128): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/internal_call_inheritance.sol b/test/libsolidity/smtCheckerTests/functions/internal_call_inheritance.sol index 96d7ecfbf..2907a7e22 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_call_inheritance.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_call_inheritance.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function c() public pure returns (uint) { return 42; } } @@ -16,5 +14,7 @@ contract A is B { assert(x < 40); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (254-268): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.a()\n B.b() -- internal call\n C.c() -- internal call +// Warning 6328: (221-235): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.a()\n B.b() -- internal call\n C.c() -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init.sol b/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init.sol index 8f6276e0e..71aacc37f 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init.sol @@ -1,5 +1,6 @@ -pragma experimental SMTChecker; contract c { bool b = (f() == 0) && (f() == 0); function f() internal returns (uint) {} } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init_2.sol b/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init_2.sol index 5c94cd9ed..8094870be 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_call_state_var_init_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract c { uint x; function f() internal returns (uint) { @@ -6,5 +5,7 @@ contract c { } bool b = (f() > 0) || (f() > 0); } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (86-90): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (54-58): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1.sol b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1.sol index 52dcfb1ff..308332700 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C{ uint x; constructor(uint y) { @@ -19,5 +17,7 @@ contract C{ assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (70-76): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 5667: (37-43): Unused function parameter. Remove or comment out the variable name to silence this warning. diff --git a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1_fail.sol index e5ac5b180..cf31fa9e5 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C{ uint x; constructor(uint y) { @@ -19,10 +17,12 @@ contract C{ assert(x == 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (70-76): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (138-152): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f() -// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call -// Warning 6328: (220-234): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call -// Warning 6328: (245-259): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call -// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 5667: (37-43): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (105-119): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f() +// Warning 6328: (137-151): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call +// Warning 6328: (187-201): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call +// Warning 6328: (212-226): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call +// Warning 6328: (49-63): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1.sol b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1.sol index 80f6d6304..7bceab1ad 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal { @@ -16,4 +14,6 @@ contract C is A { assert(x == 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1_fail.sol index 02dd7b891..6b997ada3 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_call_with_assertion_inheritance_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal { @@ -16,7 +14,9 @@ contract C is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() -// Warning 6328: (148-162): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() -// Warning 6328: (180-194): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() +// Warning 6328: (49-63): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() +// Warning 6328: (115-129): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() +// Warning 6328: (147-161): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1.sol b/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1.sol index f23217cde..3f17744fb 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C{ uint x; constructor(uint y) { @@ -19,5 +17,7 @@ contract C{ --x; } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (70-76): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 5667: (37-43): Unused function parameter. Remove or comment out the variable name to silence this warning. diff --git a/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1_fail.sol b/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1_fail.sol index 400f68cc2..2e934a0f2 100644 --- a/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/functions/internal_multiple_calls_with_assertion_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C{ uint x; constructor(uint y) { @@ -19,8 +17,10 @@ contract C{ --x; } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (70-76): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (138-152): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f() -// Warning 6328: (184-198): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call\n C.g() -- internal call -// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 5667: (37-43): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (105-119): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f() +// Warning 6328: (151-165): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(0)\nState: x = 1\nC.f()\n C.g() -- internal call\n C.g() -- internal call +// Warning 6328: (49-63): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/functions/library_after_contract.sol b/test/libsolidity/smtCheckerTests/functions/library_after_contract.sol index 0d3efa6f6..3801cf24a 100644 --- a/test/libsolidity/smtCheckerTests/functions/library_after_contract.sol +++ b/test/libsolidity/smtCheckerTests/functions/library_after_contract.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g(uint y) public { uint z = L.f(y); @@ -13,5 +11,7 @@ library L { } } +// ==== +// SMTEngine: all // ---- -// Warning 2018: (131-190): Function state mutability can be restricted to pure +// Warning 2018: (98-157): Function state mutability can be restricted to pure diff --git a/test/libsolidity/smtCheckerTests/functions/library_constant.sol b/test/libsolidity/smtCheckerTests/functions/library_constant.sol index ecf6939ec..ddb900851 100644 --- a/test/libsolidity/smtCheckerTests/functions/library_constant.sol +++ b/test/libsolidity/smtCheckerTests/functions/library_constant.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library l1 { uint private constant TON = 1000; @@ -18,6 +16,8 @@ contract C { assert(z == x + 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (136-155): CHC: Assertion violation happens here.\nCounterexample:\nTON = 1000\n\nTransaction trace:\nl1.constructor()\nState: TON = 1000\nl1.f1() -// Warning 4984: (229-234): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor()\nC.f(115792089237316195423570985008687907853269984665640564039457584007913129639935)\n l1.f2(115792089237316195423570985008687907853269984665640564039457584007913129639935, 1) -- internal call +// Warning 6328: (103-122): CHC: Assertion violation happens here.\nCounterexample:\nTON = 1000\n\nTransaction trace:\nl1.constructor()\nState: TON = 1000\nl1.f1() +// Warning 4984: (196-201): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor()\nC.f(115792089237316195423570985008687907853269984665640564039457584007913129639935)\n l1.f2(115792089237316195423570985008687907853269984665640564039457584007913129639935, 1) -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/library_constant_2.sol b/test/libsolidity/smtCheckerTests/functions/library_constant_2.sol index 9c04e6f9a..a6873e515 100644 --- a/test/libsolidity/smtCheckerTests/functions/library_constant_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/library_constant_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library l1 { uint private constant TON = 1000; @@ -7,3 +5,5 @@ library l1 { assert(TON == 1000); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/functions/recursive_multi_return.sol b/test/libsolidity/smtCheckerTests/functions/recursive_multi_return.sol index d0d52c937..2b8b51800 100644 --- a/test/libsolidity/smtCheckerTests/functions/recursive_multi_return.sol +++ b/test/libsolidity/smtCheckerTests/functions/recursive_multi_return.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() public pure returns (uint, uint) { uint a; @@ -8,6 +6,8 @@ contract C { } } // +// ==== +// SMTEngine: all // ---- -// Warning 6321: (81-85): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (87-91): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (48-52): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (54-58): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/functions/recursive_multi_return_2.sol b/test/libsolidity/smtCheckerTests/functions/recursive_multi_return_2.sol index b01d8cb05..e16e05d7f 100644 --- a/test/libsolidity/smtCheckerTests/functions/recursive_multi_return_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/recursive_multi_return_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { function f() public pure {22237625-86535-0+1; 555565-3*51; } @@ -22,19 +20,21 @@ a; (,,,,,,,a,b,,,,) = g(); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (163-167): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (171-175): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (179-183): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (187-191): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (195-199): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (203-207): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (211-215): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (219-223): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (227-231): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (235-239): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (241-244): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (246-250): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (252-259): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6133: (72-90): Statement has no effect. -// Warning 6133: (96-107): Statement has no effect. +// Warning 6321: (130-134): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (138-142): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (146-150): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (154-158): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (162-166): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (170-174): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (178-182): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (186-190): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (194-198): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (202-206): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (208-211): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (213-217): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (219-226): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6133: (39-57): Statement has no effect. +// Warning 6133: (63-74): Statement has no effect. diff --git a/test/libsolidity/smtCheckerTests/functions/super_function_assert.sol b/test/libsolidity/smtCheckerTests/functions/super_function_assert.sol index f33106deb..58d541a8a 100644 --- a/test/libsolidity/smtCheckerTests/functions/super_function_assert.sol +++ b/test/libsolidity/smtCheckerTests/functions/super_function_assert.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { int x = 0; @@ -27,6 +26,8 @@ contract D is C { assert(x == 3); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (237-251): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.proxy()\n C.f() -- internal call\n A.f() -- internal call -// Warning 6328: (360-374): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor()\nState: x = 0\nA.proxy()\n D.f() -- internal call\n C.f() -- internal call\n A.f() -- internal call +// Warning 6328: (205-219): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.proxy()\n C.f() -- internal call\n A.f() -- internal call +// Warning 6328: (328-342): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor()\nState: x = 0\nA.proxy()\n D.f() -- internal call\n C.f() -- internal call\n A.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/this_external_call.sol b/test/libsolidity/smtCheckerTests/functions/this_external_call.sol index de69baf53..10ace8999 100644 --- a/test/libsolidity/smtCheckerTests/functions/this_external_call.sol +++ b/test/libsolidity/smtCheckerTests/functions/this_external_call.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -12,4 +10,6 @@ contract C assert(x < 1000); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/this_external_call_2.sol b/test/libsolidity/smtCheckerTests/functions/this_external_call_2.sol index 34d56c66e..ed7110d53 100644 --- a/test/libsolidity/smtCheckerTests/functions/this_external_call_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/this_external_call_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint a; function f(uint x) public { @@ -12,5 +10,7 @@ contract C { a = x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (141-156): CHC: Assertion violation happens here.\nCounterexample:\na = 42\nx = 42\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.f(42)\n C.g(42) -- trusted external call +// Warning 6328: (108-123): CHC: Assertion violation happens here.\nCounterexample:\na = 42\nx = 42\n\nTransaction trace:\nC.constructor()\nState: a = 0\nC.f(42)\n C.g(42) -- trusted external call diff --git a/test/libsolidity/smtCheckerTests/functions/this_external_call_return.sol b/test/libsolidity/smtCheckerTests/functions/this_external_call_return.sol index cb94af867..9e2d5d8c1 100644 --- a/test/libsolidity/smtCheckerTests/functions/this_external_call_return.sol +++ b/test/libsolidity/smtCheckerTests/functions/this_external_call_return.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -13,4 +11,6 @@ contract C assert(z < 1000); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/this_external_call_sender.sol b/test/libsolidity/smtCheckerTests/functions/this_external_call_sender.sol index e8bfe663b..5a425ca78 100644 --- a/test/libsolidity/smtCheckerTests/functions/this_external_call_sender.sol +++ b/test/libsolidity/smtCheckerTests/functions/this_external_call_sender.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address lastCaller; @@ -24,7 +22,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (347-379): CHC: Assertion violation happens here. -// Warning 6328: (389-421): CHC: Assertion violation happens here. +// Warning 6328: (314-346): CHC: Assertion violation happens here. +// Warning 6328: (356-388): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/functions/this_external_call_tx_origin.sol b/test/libsolidity/smtCheckerTests/functions/this_external_call_tx_origin.sol index 04dd5599d..9b2699421 100644 --- a/test/libsolidity/smtCheckerTests/functions/this_external_call_tx_origin.sol +++ b/test/libsolidity/smtCheckerTests/functions/this_external_call_tx_origin.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test() view public { @@ -11,4 +9,6 @@ contract C { return msg.sender == tx.origin; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/this_state.sol b/test/libsolidity/smtCheckerTests/functions/this_state.sol index 9f417380e..4d69e4815 100644 --- a/test/libsolidity/smtCheckerTests/functions/this_state.sol +++ b/test/libsolidity/smtCheckerTests/functions/this_state.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint public x; @@ -12,4 +10,6 @@ contract C x = 2; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/functions/virtual_function_assert.sol b/test/libsolidity/smtCheckerTests/functions/virtual_function_assert.sol index 14ea90cc2..4c4a8b246 100644 --- a/test/libsolidity/smtCheckerTests/functions/virtual_function_assert.sol +++ b/test/libsolidity/smtCheckerTests/functions/virtual_function_assert.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { int x = 0; @@ -17,5 +16,7 @@ contract C is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (259-273): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.proxy()\n C.f() -- internal call +// Warning 6328: (227-241): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.proxy()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/functions/virtual_function_called_by_constructor.sol b/test/libsolidity/smtCheckerTests/functions/virtual_function_called_by_constructor.sol index 71abeedb3..17f3daa79 100644 --- a/test/libsolidity/smtCheckerTests/functions/virtual_function_called_by_constructor.sol +++ b/test/libsolidity/smtCheckerTests/functions/virtual_function_called_by_constructor.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { uint public x; function v() internal virtual { @@ -22,6 +21,8 @@ contract C is A { assert(x == 2); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (231-246): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nA.constructor()\nState: x = 2\nA.i() -// Warning 6328: (419-433): CHC: Assertion violation happens here.\nCounterexample:\nx = 10\n\nTransaction trace:\nC.constructor()\nState: x = 10\nC.i() +// Warning 6328: (199-214): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nA.constructor()\nState: x = 2\nA.i() +// Warning 6328: (387-401): CHC: Assertion violation happens here.\nCounterexample:\nx = 10\n\nTransaction trace:\nC.constructor()\nState: x = 10\nC.i() diff --git a/test/libsolidity/smtCheckerTests/imports/import_base.sol b/test/libsolidity/smtCheckerTests/imports/import_base.sol index 6868c078a..f0ca042be 100644 --- a/test/libsolidity/smtCheckerTests/imports/import_base.sol +++ b/test/libsolidity/smtCheckerTests/imports/import_base.sol @@ -9,7 +9,6 @@ contract Base { } } ==== Source: der ==== -pragma experimental SMTChecker; import "base"; contract Der is Base { function g(uint y) public { @@ -18,5 +17,7 @@ contract Der is Base { assert(y > x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (der:205-218): CHC: Assertion violation happens here.\nCounterexample:\nx = 3, a = 0\ny = 0\n\nTransaction trace:\nDer.constructor()\nState: x = 0, a = 0\nDer.g(0)\n Base.f() -- internal call +// Warning 6328: (der:173-186): CHC: Assertion violation happens here.\nCounterexample:\nx = 3, a = 0\ny = 0\n\nTransaction trace:\nDer.constructor()\nState: x = 0, a = 0\nDer.g(0)\n Base.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/imports/import_library.sol b/test/libsolidity/smtCheckerTests/imports/import_library.sol index 0649c02e1..7c3a32e10 100644 --- a/test/libsolidity/smtCheckerTests/imports/import_library.sol +++ b/test/libsolidity/smtCheckerTests/imports/import_library.sol @@ -1,5 +1,4 @@ ==== Source: c ==== -pragma experimental SMTChecker; import "lib"; contract C { function g(uint x) public pure { @@ -14,5 +13,7 @@ library L { return one; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (c:113-126): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nC.g(0)\n L.f() -- internal call +// Warning 6328: (c:81-94): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nC.g(0)\n L.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/imports/imported_fail_1.sol b/test/libsolidity/smtCheckerTests/imports/imported_fail_1.sol index aa5dc2c84..5688ddec0 100644 --- a/test/libsolidity/smtCheckerTests/imports/imported_fail_1.sol +++ b/test/libsolidity/smtCheckerTests/imports/imported_fail_1.sol @@ -14,12 +14,14 @@ contract B is A { } ==== Source: C.sol ==== import "B.sol"; -pragma experimental SMTChecker; contract C is B { function h(uint _x) public view { assert(_x < x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (B.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nB.g(0) -// Warning 6328: (C.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(0) +// Warning 6328: (B.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) +// Warning 6328: (B.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) +// Warning 6328: (C.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(0) diff --git a/test/libsolidity/smtCheckerTests/imports/imported_fail_2.sol b/test/libsolidity/smtCheckerTests/imports/imported_fail_2.sol index df9110111..5688ddec0 100644 --- a/test/libsolidity/smtCheckerTests/imports/imported_fail_2.sol +++ b/test/libsolidity/smtCheckerTests/imports/imported_fail_2.sol @@ -7,7 +7,6 @@ contract A { } ==== Source: B.sol ==== import "A.sol"; -pragma experimental SMTChecker; contract B is A { function g(uint _x) public view { assert(_x > x); @@ -15,13 +14,14 @@ contract B is A { } ==== Source: C.sol ==== import "B.sol"; -pragma experimental SMTChecker; contract C is B { function h(uint _x) public view { assert(_x < x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (B.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) -// Warning 6328: (B.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) -// Warning 6328: (C.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(0) +// Warning 6328: (B.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) +// Warning 6328: (B.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) +// Warning 6328: (C.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(0) diff --git a/test/libsolidity/smtCheckerTests/imports/imported_fail_3.sol b/test/libsolidity/smtCheckerTests/imports/imported_fail_3.sol index b823904d3..afe8b1bb3 100644 --- a/test/libsolidity/smtCheckerTests/imports/imported_fail_3.sol +++ b/test/libsolidity/smtCheckerTests/imports/imported_fail_3.sol @@ -7,7 +7,6 @@ contract A { } ==== Source: B.sol ==== import "A.sol"; -pragma experimental SMTChecker; contract B is A { function g(uint _x) public view { assert(_x > x); @@ -15,12 +14,13 @@ contract B is A { } ==== Source: C.sol ==== import "A.sol"; -pragma experimental SMTChecker; contract C is A { function h(uint _x) public view { assert(_x < x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (B.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) -// Warning 6328: (C.sol:103-117): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(0) +// Warning 6328: (B.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.g(0) +// Warning 6328: (C.sol:71-85): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n_x = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.h(0) diff --git a/test/libsolidity/smtCheckerTests/imports/private_vars.sol b/test/libsolidity/smtCheckerTests/imports/private_vars.sol index c17cdb46f..2d2bb6ca4 100644 --- a/test/libsolidity/smtCheckerTests/imports/private_vars.sol +++ b/test/libsolidity/smtCheckerTests/imports/private_vars.sol @@ -1,5 +1,4 @@ ==== Source: ERC20.sol ==== -pragma experimental SMTChecker; contract ERC20 { uint256 private a; function f() internal virtual { @@ -7,10 +6,11 @@ contract ERC20 { } } ==== Source: Token.sol ==== -pragma experimental SMTChecker; import "ERC20.sol"; contract Token is ERC20 { constructor() { f(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/imports/simple.sol b/test/libsolidity/smtCheckerTests/imports/simple.sol index eeaafdadf..3c08969b5 100644 --- a/test/libsolidity/smtCheckerTests/imports/simple.sol +++ b/test/libsolidity/smtCheckerTests/imports/simple.sol @@ -2,5 +2,6 @@ contract A { function f() public {} } ==== Source: B.sol ==== import "A.sol"; -pragma experimental SMTChecker; contract C is A {} +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_no_pragma.sol b/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_no_pragma.sol deleted file mode 100644 index 6efbd2c9f..000000000 --- a/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_no_pragma.sol +++ /dev/null @@ -1,12 +0,0 @@ -==== Source: A.sol ==== -contract A { - function f(uint x) public pure { - assert(x > 0); - } -} -==== Source: B.sol ==== -import "A.sol"; -pragma experimental SMTChecker; -contract C is A {} -// ---- -// Warning 6328: (A.sol:49-62): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nA.f(0) diff --git a/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_two_pragmas.sol b/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_two_pragmas.sol deleted file mode 100644 index 698cc6283..000000000 --- a/test/libsolidity/smtCheckerTests/imports/simple_imported_fail_two_pragmas.sol +++ /dev/null @@ -1,14 +0,0 @@ -==== Source: A.sol ==== -pragma experimental SMTChecker; -contract A { - function f(uint x) public pure { - assert(x > 0); - } -} -==== Source: B.sol ==== -import "A.sol"; -pragma experimental SMTChecker; -contract C is A {} -// ---- -// Warning 6328: (A.sol:81-94): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nA.constructor()\nA.f(0) -// Warning 6328: (A.sol:81-94): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nA.constructor()\nA.f(0) diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_1.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_1.sol index b68857c73..2f8c4a976 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_1.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract B { uint x; function f() public view { @@ -14,5 +12,7 @@ contract C is B { f(); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (85-99): CHC: Assertion violation happens here. +// Warning 6328: (52-66): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_2.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_2.sol index 3d509cc70..039388704 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_2.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal view { @@ -21,5 +19,7 @@ contract C is B { f(); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (87-101): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, z = 0, w = 0, a = 0, b = 0, x = 1\n\nTransaction trace:\nC.constructor()\nState: y = 0, z = 0, w = 0, a = 0, b = 0, x = 0\nC.g()\n A.f() -- internal call +// Warning 6328: (54-68): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, z = 0, w = 0, a = 0, b = 0, x = 1\n\nTransaction trace:\nC.constructor()\nState: y = 0, z = 0, w = 0, a = 0, b = 0, x = 0\nC.g()\n A.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_3.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_3.sol index ed7806ba0..4d9067e07 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_3.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal virtual { @@ -27,5 +25,7 @@ contract C is B { x = 2; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (97-111): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n B.f() -- internal call\n A.f() -- internal call\n C.v() -- internal call +// Warning 6328: (64-78): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n B.f() -- internal call\n A.f() -- internal call\n C.v() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_4.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_4.sol index 0e8721b94..4bf6520fb 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_4.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal virtual { @@ -34,5 +32,7 @@ contract C is B, A1 { x = 2; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (97-111): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call\n A1.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call\n C.v() -- internal call +// Warning 6328: (64-78): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n C.f() -- internal call\n A1.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call\n C.v() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_5.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_5.sol index af08912a2..507b10824 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_5.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal virtual { @@ -28,5 +26,7 @@ contract C is B { super.v(); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (130-144): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n B.f() -- internal call\n A.f() -- internal call\n C.v() -- internal call\n A.v() -- internal call +// Warning 6328: (97-111): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n B.f() -- internal call\n A.f() -- internal call\n C.v() -- internal call\n A.v() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_6.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_6.sol index bcdda3f3b..21d8a3dcc 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_6.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal virtual { @@ -30,5 +28,7 @@ contract C is B { x = 2; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (216-230): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g()\n A.v() -- internal call +// Warning 6328: (183-197): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g()\n A.v() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_7.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_7.sol index 6c92f7b5a..db63f27c7 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_7.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_7.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() internal { @@ -21,5 +19,7 @@ contract C is A { x = 2; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (89-103): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n A.f() -- internal call\n C.v() -- internal call +// Warning 6328: (56-70): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g()\n A.f() -- internal call\n C.v() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_8.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_8.sol index 426b97bba..a326ccf3b 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_8.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_8.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract A { uint x; function f() public view { @@ -14,5 +12,7 @@ contract C is A { x = 0; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (94-108): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.f() +// Warning 6328: (61-75): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.f() diff --git a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_9.sol b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_9.sol index 8be63b88d..83f8e609c 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_9.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/base_contract_assertion_fail_9.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function f() public virtual { @@ -27,6 +25,8 @@ contract C is B { x = 2; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (164-178): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f()\n A.v() -- internal call -// Warning 6328: (95-109): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nB.f()\n A.f() -- internal call\n C.v() -- internal call +// Warning 6328: (131-145): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f()\n A.v() -- internal call +// Warning 6328: (62-76): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nB.f()\n A.f() -- internal call\n C.v() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_1.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_1.sol index 213b36ad3..a67223b5a 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_1.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -31,6 +29,8 @@ contract C is Z(5) { assert(x > 9); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (325-332): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nx = 1\nz = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nZ.constructor(115792089237316195423570985008687907853269984665640564039457584007913129639935) -// Warning 6328: (400-413): CHC: Assertion violation happens here.\nCounterexample:\nx = 6\n\nTransaction trace:\nC.constructor() +// Warning 4984: (292-299): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nx = 1\nz = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nZ.constructor(115792089237316195423570985008687907853269984665640564039457584007913129639935) +// Warning 6328: (367-380): CHC: Assertion violation happens here.\nCounterexample:\nx = 6\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_2.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_2.sol index 6471eaa1b..497fa6076 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_2.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_inheritance_specifier_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -33,8 +31,9 @@ contract C is Z(5) { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (143-149): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 4984: (333-340): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (409-423): CHC: Assertion violation happens here. +// Warning 4984: (110-116): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (300-307): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (376-390): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_1.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_1.sol index 29e1d68b6..6ca597ed1 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_1.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -30,7 +28,8 @@ contract C is Z, B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (138-145): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (384-398): CHC: Assertion violation happens here. +// Warning 4984: (105-112): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (351-365): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_2.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_2.sol index 6118b8dd0..130da425e 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_2.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -29,5 +27,7 @@ contract C is Z, B { assert(x == k); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (382-396): CHC: Assertion violation happens here.\nCounterexample:\nk = 2, x = 1\n\nTransaction trace:\nC.constructor() +// Warning 6328: (349-363): CHC: Assertion violation happens here.\nCounterexample:\nk = 2, x = 1\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_3.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_3.sol index b14354948..a1a9b9b6e 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_3.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -30,7 +28,8 @@ contract C is Z, B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (138-145): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (394-408): CHC: Assertion violation happens here. +// Warning 4984: (105-112): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (361-375): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_4.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_4.sol index 1a5127e85..c670aff15 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_4.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -30,7 +28,8 @@ contract C is Z, B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (138-145): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (394-408): CHC: Assertion violation happens here. +// Warning 4984: (105-112): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (361-375): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_5.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_5.sol index df19a2b17..e97b990ee 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_5.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -35,7 +33,8 @@ contract C is Z, B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (138-145): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (456-470): CHC: Assertion violation happens here. +// Warning 4984: (105-112): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (423-437): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_6.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_6.sol index 5393033c6..3d92a3626 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_6.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -34,5 +32,7 @@ contract C is Z, B { assert(x == k); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (449-463): CHC: Assertion violation happens here.\nCounterexample:\nk = 42, x = 1\n\nTransaction trace:\nC.constructor() +// Warning 6328: (416-430): CHC: Assertion violation happens here.\nCounterexample:\nk = 42, x = 1\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_7.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_7.sol index 2df6cf267..b63c3c79d 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_7.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_7.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint a) { x = a; } @@ -31,5 +29,7 @@ contract C is Z { assert(x > 2); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (387-400): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() +// Warning 6328: (354-367): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_8.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_8.sol index e6275366a..0164cf437 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_8.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_8.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x; constructor(uint) {} @@ -17,6 +15,8 @@ contract C is A { assert(x > 2000); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (218-232): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() -// Warning 6328: (251-267): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() +// Warning 6328: (185-199): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() +// Warning 6328: (218-234): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_9.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_9.sol index 3d17d0e4c..fed5ebf34 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_9.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_base_calls_with_side_effects_9.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x = 42; constructor(uint) {} @@ -18,7 +16,9 @@ contract C is A { assert(x > 2000); // should fail } } +// ==== +// SMTEngine: all // ---- +// Warning 6328: (191-205): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nC.constructor() // Warning 6328: (224-238): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nC.constructor() -// Warning 6328: (257-271): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nC.constructor() -// Warning 6328: (290-306): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nC.constructor() +// Warning 6328: (257-273): CHC: Assertion violation happens here.\nCounterexample:\nx = 42\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_mixed_chain_with_params.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_mixed_chain_with_params.sol index 61a77682a..15cc66a0d 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_mixed_chain_with_params.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_hierarchy_mixed_chain_with_params.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract F { uint a; constructor(uint x) { @@ -25,7 +24,8 @@ contract A is B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (247-252): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6328: (328-342): CHC: Assertion violation happens here. +// Warning 4984: (215-220): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (296-310): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init.sol index 88caf233f..be9545837 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = 2; constructor () { @@ -7,5 +5,7 @@ contract C { assert(x == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (97-111): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor() +// Warning 6328: (64-78): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_asserts.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_asserts.sol index 8329b6718..e9bf3f65c 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_asserts.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_asserts.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { int x; constructor (int a) { x = a;} @@ -32,8 +30,10 @@ contract C is B { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (280-294): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) -// Warning 6328: (372-395): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) -// Warning 6328: (472-496): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) -// Warning 6328: (516-529): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 6328: (247-261): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) +// Warning 6328: (339-362): CHC: Assertion violation happens here.\nCounterexample:\ny = 2, x = (- 1)\na = 1\n\nTransaction trace:\nC.constructor(1) +// Warning 6328: (439-463): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 6328: (483-496): CHC: Assertion violation happens here.\nCounterexample:\ny = 4, x = 0\na = 0\n\nTransaction trace:\nC.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_base.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_base.sol index 82383eac7..7435a54f5 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_base.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_base.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = 2; } @@ -10,5 +8,7 @@ contract D is C { assert(x == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (117-131): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() +// Warning 6328: (84-98): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain.sol index e512b9f92..bba7b3e13 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x = 1; } @@ -18,5 +16,7 @@ contract D is C { assert(x == 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (211-225): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nD.constructor() +// Warning 6328: (178-192): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nD.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_alternate.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_alternate.sol index 99c52beba..c9a9f970f 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_alternate.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_alternate.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x = 1; } @@ -17,5 +15,7 @@ contract D is C { assert(x == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (185-199): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() +// Warning 6328: (152-166): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all.sol index d497e33da..f3a6393fa 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -21,8 +20,9 @@ contract A is B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (275-293): CHC: Assertion violation happens here. -// Warning 4984: (157-162): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 4984: (216-221): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (243-261): CHC: Assertion violation happens here. +// Warning 4984: (125-130): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (184-189): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all_2.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all_2.sol index 50a751e39..d20358525 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all_2.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_run_all_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint a; constructor(uint x) { @@ -21,8 +20,9 @@ contract A is B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (273-291): CHC: Assertion violation happens here. -// Warning 4984: (157-163): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 4984: (217-222): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6328: (241-259): CHC: Assertion violation happens here. +// Warning 4984: (125-131): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (185-190): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_tree.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_tree.sol index 7bf06b22f..71e9071f1 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_tree.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_chain_tree.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { int x; constructor (int a) { x = a; } @@ -38,6 +36,8 @@ contract C is B { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (436-450): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, x = 1\nc = (- 1)\n\nTransaction trace:\nC.constructor((- 1)) -// Warning 6328: (483-496): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, x = 0\nc = 0\n\nTransaction trace:\nC.constructor(0) +// Warning 6328: (403-417): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, x = 1\nc = (- 1)\n\nTransaction trace:\nC.constructor((- 1)) +// Warning 6328: (450-463): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, x = 0\nc = 0\n\nTransaction trace:\nC.constructor(0) diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond.sol index c5892b0f4..a31d5894c 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x = 2; } @@ -16,5 +14,7 @@ contract D is B, C { assert(x == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (162-176): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() +// Warning 6328: (129-143): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond_middle.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond_middle.sol index ee521fd58..940ff64b3 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond_middle.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_diamond_middle.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x = 1; } @@ -24,6 +22,8 @@ contract D is B, C { assert(x == 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (256-270): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nD.constructor() -// Warning 6328: (167-181): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() +// Warning 6328: (223-237): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nD.constructor() +// Warning 6328: (134-148): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nD.constructor() diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_function_call.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_function_call.sol index 451ef0c96..ca2f0b770 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_function_call.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_state_variable_init_function_call.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x = f(2); constructor () { @@ -12,4 +10,6 @@ contract C { return y; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/inheritance/constructor_uses_function_base.sol b/test/libsolidity/smtCheckerTests/inheritance/constructor_uses_function_base.sol index af505cc52..cae4221bb 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/constructor_uses_function_base.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/constructor_uses_function_base.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; constructor() { @@ -17,3 +15,5 @@ contract C is B { assert(y == 42); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/inheritance/diamond_super_1.sol b/test/libsolidity/smtCheckerTests/inheritance/diamond_super_1.sol index 3f4a2d470..580597f4f 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/diamond_super_1.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/diamond_super_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { function f() public virtual returns (uint256 r) { return 1; @@ -27,5 +26,7 @@ contract D is B, C { assert(r == 13); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (469-484): CHC: Assertion violation happens here.\nCounterexample:\n\nr = 15\n\nTransaction trace:\nD.constructor()\nD.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call +// Warning 6328: (437-452): CHC: Assertion violation happens here.\nCounterexample:\n\nr = 15\n\nTransaction trace:\nD.constructor()\nD.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/diamond_super_2.sol b/test/libsolidity/smtCheckerTests/inheritance/diamond_super_2.sol index b10b78069..c8d3c9c0e 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/diamond_super_2.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/diamond_super_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { function f() public virtual returns (uint256 r) { return 1; @@ -28,6 +27,8 @@ contract D is B, C { assert(r == 18); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (475-490): CHC: Assertion violation happens here.\nCounterexample:\n\nr = 22\n\nTransaction trace:\nD.constructor()\nD.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call -// Warning 6328: (509-524): CHC: Assertion violation happens here.\nCounterexample:\n\nr = 22\n\nTransaction trace:\nD.constructor()\nD.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call +// Warning 6328: (443-458): CHC: Assertion violation happens here.\nCounterexample:\n\nr = 22\n\nTransaction trace:\nD.constructor()\nD.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call +// Warning 6328: (477-492): CHC: Assertion violation happens here.\nCounterexample:\n\nr = 22\n\nTransaction trace:\nD.constructor()\nD.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/diamond_super_3.sol b/test/libsolidity/smtCheckerTests/inheritance/diamond_super_3.sol index 0b66e8bfc..959e53d45 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/diamond_super_3.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/diamond_super_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { int public x; function f() public virtual { @@ -31,5 +29,7 @@ contract E is C,D { assert(x == 13); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (412-427): CHC: Assertion violation happens here.\nCounterexample:\nx = 111\n\nTransaction trace:\nE.constructor()\nState: x = 0\nE.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call +// Warning 6328: (379-394): CHC: Assertion violation happens here.\nCounterexample:\nx = 111\n\nTransaction trace:\nE.constructor()\nState: x = 0\nE.f()\n C.f() -- internal call\n B.f() -- internal call\n A.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/inheritance/fallback.sol b/test/libsolidity/smtCheckerTests/inheritance/fallback.sol index fc190d6f7..e1ae216c4 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/fallback.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/fallback.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // 2 warnings, fallback and A.g contract A { uint x; @@ -20,7 +18,9 @@ contract B is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (122-136): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.fallback() -// Warning 6328: (171-185): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() -// Warning 6328: (288-302): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.fallback() +// Warning 6328: (89-103): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.fallback() +// Warning 6328: (138-152): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() +// Warning 6328: (255-269): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.fallback() diff --git a/test/libsolidity/smtCheckerTests/inheritance/fallback_receive.sol b/test/libsolidity/smtCheckerTests/inheritance/fallback_receive.sol index 8daf3ad69..81b3d9a48 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/fallback_receive.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/fallback_receive.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // 2 warnings, fallback and A.g contract A { uint x; @@ -20,7 +18,9 @@ contract B is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (114-128): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.fallback() -// Warning 6328: (163-177): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() -// Warning 6328: (289-303): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.receive(){ value: 10450 } +// Warning 6328: (81-95): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.fallback() +// Warning 6328: (130-144): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() +// Warning 6328: (256-270): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.receive(){ value: 10450 } diff --git a/test/libsolidity/smtCheckerTests/inheritance/functions_1.sol b/test/libsolidity/smtCheckerTests/inheritance/functions_1.sol index b7075f2b9..bcdcc389a 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/functions_1.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/functions_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // 2 warnings, A.f and A.g contract A { uint x; @@ -18,7 +16,9 @@ contract B is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() -// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() -// Warning 6328: (276-290): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.f() +// Warning 6328: (88-102): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() +// Warning 6328: (137-151): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() +// Warning 6328: (243-257): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nB.constructor()\nState: x = 0\nB.f() diff --git a/test/libsolidity/smtCheckerTests/inheritance/functions_2.sol b/test/libsolidity/smtCheckerTests/inheritance/functions_2.sol index a88141dc5..ca1a874b8 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/functions_2.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/functions_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // 2 warnings, A.f and A.g contract A { uint x; @@ -20,7 +18,9 @@ contract B is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() -// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() -// Warning 6328: (286-300): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.f() +// Warning 6328: (88-102): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() +// Warning 6328: (137-151): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() +// Warning 6328: (253-267): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.f() diff --git a/test/libsolidity/smtCheckerTests/inheritance/functions_3.sol b/test/libsolidity/smtCheckerTests/inheritance/functions_3.sol index 7ead9b104..d262b2abc 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/functions_3.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/functions_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // 2 warnings, A.f and A.g contract A { uint x; @@ -35,10 +33,12 @@ contract C is B { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() -// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() -// Warning 6328: (296-310): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.f() -// Warning 6328: (345-359): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.h() -// Warning 6328: (468-482): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, y = 0, x = 0\n\nTransaction trace:\nC.constructor()\nState: z = 0, y = 0, x = 0\nC.f() -// Warning 6328: (517-531): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, y = 0, x = 0\n\nTransaction trace:\nC.constructor()\nState: z = 0, y = 0, x = 0\nC.i() +// Warning 6328: (88-102): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.f() +// Warning 6328: (137-151): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() +// Warning 6328: (263-277): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.f() +// Warning 6328: (312-326): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.h() +// Warning 6328: (435-449): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, y = 0, x = 0\n\nTransaction trace:\nC.constructor()\nState: z = 0, y = 0, x = 0\nC.f() +// Warning 6328: (484-498): CHC: Assertion violation happens here.\nCounterexample:\nz = 0, y = 0, x = 0\n\nTransaction trace:\nC.constructor()\nState: z = 0, y = 0, x = 0\nC.i() diff --git a/test/libsolidity/smtCheckerTests/inheritance/implicit_constructor_hierarchy.sol b/test/libsolidity/smtCheckerTests/inheritance/implicit_constructor_hierarchy.sol index 4c8835950..12d197ee0 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/implicit_constructor_hierarchy.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/implicit_constructor_hierarchy.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; constructor (uint y) { assert(x == 0); x = y; } @@ -15,4 +13,5 @@ contract C is B { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/inheritance/implicit_only_constructor_hierarchy.sol b/test/libsolidity/smtCheckerTests/inheritance/implicit_only_constructor_hierarchy.sol index 1ff4219d0..25f1102ef 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/implicit_only_constructor_hierarchy.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/implicit_only_constructor_hierarchy.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint x; function h() public view { @@ -19,4 +17,5 @@ contract C is B { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/inheritance/overriden_function_static_call_parent.sol b/test/libsolidity/smtCheckerTests/inheritance/overriden_function_static_call_parent.sol index b2f129351..89a48f17c 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/overriden_function_static_call_parent.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/overriden_function_static_call_parent.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract BaseBase { uint x; function init(uint a, uint b) public virtual { @@ -17,7 +16,8 @@ contract Child is Base { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 5667: (84-90): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (314-328): CHC: Assertion violation happens here. +// Warning 5667: (52-58): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (282-296): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/inheritance/receive.sol b/test/libsolidity/smtCheckerTests/inheritance/receive.sol index e503e3bd0..a88ff75f8 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/receive.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/receive.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // 2 warnings, receive and A.g contract A { uint x; @@ -20,7 +18,9 @@ contract B is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (128-142): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.receive() -// Warning 6328: (177-191): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() -// Warning 6328: (300-314): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.receive() +// Warning 6328: (95-109): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.receive() +// Warning 6328: (144-158): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() +// Warning 6328: (267-281): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.receive() diff --git a/test/libsolidity/smtCheckerTests/inheritance/receive_fallback.sol b/test/libsolidity/smtCheckerTests/inheritance/receive_fallback.sol index c09b5d1ea..93f332c57 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/receive_fallback.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/receive_fallback.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // 2 warnings, receive and A.g contract A { uint x; @@ -20,7 +18,9 @@ contract B is A { assert(x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (120-134): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.receive() -// Warning 6328: (169-183): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() -// Warning 6328: (288-302): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.fallback() +// Warning 6328: (87-101): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.receive() +// Warning 6328: (136-150): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nA.constructor()\nState: x = 0\nA.g() +// Warning 6328: (255-269): CHC: Assertion violation happens here.\nCounterexample:\ny = 0, x = 0\n\nTransaction trace:\nB.constructor()\nState: y = 0, x = 0\nB.fallback() diff --git a/test/libsolidity/smtCheckerTests/inheritance/state_variables.sol b/test/libsolidity/smtCheckerTests/inheritance/state_variables.sol index e0c54d8b9..680926355 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/state_variables.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/state_variables.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Base { uint x; uint z; @@ -14,4 +12,6 @@ contract C is Base { assert(z < 150); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/inheritance/state_variables_2.sol b/test/libsolidity/smtCheckerTests/inheritance/state_variables_2.sol index 9e8a67eb8..2264e460c 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/state_variables_2.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/state_variables_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Base1 { uint x; } @@ -16,4 +14,6 @@ contract C is Base2 { assert(z < 150); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/inheritance/state_variables_3.sol b/test/libsolidity/smtCheckerTests/inheritance/state_variables_3.sol index fda7a1b0d..636bd0367 100644 --- a/test/libsolidity/smtCheckerTests/inheritance/state_variables_3.sol +++ b/test/libsolidity/smtCheckerTests/inheritance/state_variables_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Base { uint x; uint private t; @@ -15,4 +13,6 @@ contract C is Base { assert(z < 150); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_1.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_1.sol index f8473ff40..335171ff7 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_1.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() internal pure returns (bool) { bool b; @@ -13,12 +11,14 @@ contract C { require(!f()); // BMC constant value not ddetected at the moment } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (103-122): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 6328: (272-283): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call -// Warning 6328: (315-327): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call\n C.f() -- internal call -// Warning 7737: (103-122): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (103-122): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (103-122): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (103-122): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (103-122): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (70-89): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 6328: (239-250): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call +// Warning 6328: (282-294): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call\n C.f() -- internal call +// Warning 7737: (70-89): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (70-89): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (70-89): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (70-89): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (70-89): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_2.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_2.sol index 850331a52..5e5443078 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_2.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure returns (bool) { bool b; @@ -10,7 +8,9 @@ contract C { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (115-134): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 6328: (171-180): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nb = false\nx = 42\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 7737: (115-134): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (82-101): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 6328: (138-147): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nb = false\nx = 42\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 7737: (82-101): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_3.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_3.sol index 528ac99e1..643dfe155 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_3.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure returns (bool) { bool b; @@ -10,7 +8,9 @@ contract C { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (139-158): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 6328: (236-245): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nb = false\nc = true\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 7737: (139-158): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (106-125): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 6328: (203-212): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nb = false\nc = true\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 7737: (106-125): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_4.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_4.sol index 81bc9c27e..d024e1283 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_4.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure returns (bool) { bool b; @@ -11,6 +9,8 @@ contract C { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (115-134): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (115-134): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (82-101): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (82-101): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_5.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_5.sol index e3fec75db..225d2672d 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_5.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -21,6 +19,8 @@ contract C { assert(i == 7); // should hold, not changed by the assembly } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (189-220): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (189-220): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (156-187): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (156-187): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_6.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_6.sol index 9222f6e22..60f7390ec 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_6.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -20,6 +18,8 @@ contract C { assert(i == 7); // should hold, not changed by the assembly } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (190-226): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (190-226): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (157-193): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (157-193): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_access_inside_function.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_access_inside_function.sol index 2b166adf3..a95bb8731 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_access_inside_function.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_access_inside_function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint256 public z; @@ -17,8 +15,10 @@ contract C { assert(i == 32); // should hold, not changed by the assembly } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (116-182): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 6328: (185-200): CHC: Assertion violation happens here.\nCounterexample:\nz = 0\ni = 32\n\nTransaction trace:\nC.constructor()\nState: z = 0\nC.f() -// Warning 6328: (219-233): CHC: Assertion violation happens here.\nCounterexample:\nz = 43\ni = 32\n\nTransaction trace:\nC.constructor()\nState: z = 0\nC.f() -// Warning 7737: (116-182): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (83-149): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 6328: (152-167): CHC: Assertion violation happens here.\nCounterexample:\nz = 0\ni = 32\n\nTransaction trace:\nC.constructor()\nState: z = 0\nC.f() +// Warning 6328: (186-200): CHC: Assertion violation happens here.\nCounterexample:\nz = 0\ni = 32\n\nTransaction trace:\nC.constructor()\nState: z = 0\nC.f() +// Warning 7737: (83-149): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_pointer.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_pointer.sol index dc340c451..8956d55c5 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_pointer.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_local_storage_pointer.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint256[] public a; @@ -17,9 +15,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 7737: (203-238): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 6328: (241-262): CHC: Assertion violation happens here. -// Warning 6328: (281-302): CHC: Assertion violation happens here. -// Warning 7737: (203-238): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (170-205): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 6328: (208-229): CHC: Assertion violation happens here. +// Warning 6328: (248-269): CHC: Assertion violation happens here. +// Warning 7737: (170-205): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_memory_write.sol b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_memory_write.sol index cb900efa0..04b368e9d 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/assembly_memory_write.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/assembly_memory_write.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -22,9 +20,10 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 7737: (189-220): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 6328: (223-241): CHC: Assertion violation happens here. -// Warning 6328: (260-277): CHC: Assertion violation happens here. -// Warning 7737: (189-220): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (156-187): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 6328: (190-208): CHC: Assertion violation happens here. +// Warning 6328: (227-244): CHC: Assertion violation happens here. +// Warning 7737: (156-187): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/empty.sol b/test/libsolidity/smtCheckerTests/inline_assembly/empty.sol index 0377e326c..c977fc034 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/empty.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/empty.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -7,6 +5,8 @@ contract C } } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (76-90): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (76-90): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (43-57): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (43-57): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/inline_assembly/local_var.sol b/test/libsolidity/smtCheckerTests/inline_assembly/local_var.sol index 297031d4a..fb15f6db5 100644 --- a/test/libsolidity/smtCheckerTests/inline_assembly/local_var.sol +++ b/test/libsolidity/smtCheckerTests/inline_assembly/local_var.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure returns (uint) { @@ -9,6 +7,8 @@ contract C return x; } } +// ==== +// SMTEngine: all // ---- -// Warning 7737: (97-121): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). -// Warning 7737: (97-121): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (64-88): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). +// Warning 7737: (64-88): Inline assembly may cause SMTChecker to produce spurious warnings (false positives). diff --git a/test/libsolidity/smtCheckerTests/invariants/aon_blog_post.sol b/test/libsolidity/smtCheckerTests/invariants/aon_blog_post.sol index 98674eece..c7ed0a148 100644 --- a/test/libsolidity/smtCheckerTests/invariants/aon_blog_post.sol +++ b/test/libsolidity/smtCheckerTests/invariants/aon_blog_post.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { bool a; bool b; @@ -43,5 +42,7 @@ contract C { f = false; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (689-699): CHC: Assertion violation happens here. +// Warning 6328: (657-667): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/invariants/loop_basic.sol b/test/libsolidity/smtCheckerTests/invariants/loop_basic.sol index 5da422435..6bac672eb 100644 --- a/test/libsolidity/smtCheckerTests/invariants/loop_basic.sol +++ b/test/libsolidity/smtCheckerTests/invariants/loop_basic.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Simple { function f(uint x) public pure { uint y; @@ -10,5 +8,6 @@ contract Simple { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- diff --git a/test/libsolidity/smtCheckerTests/invariants/loop_basic_for.sol b/test/libsolidity/smtCheckerTests/invariants/loop_basic_for.sol index 7e523f506..10ff0d593 100644 --- a/test/libsolidity/smtCheckerTests/invariants/loop_basic_for.sol +++ b/test/libsolidity/smtCheckerTests/invariants/loop_basic_for.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Simple { function f(uint x) public pure { uint y; @@ -8,5 +6,6 @@ contract Simple { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- diff --git a/test/libsolidity/smtCheckerTests/invariants/loop_nested.sol b/test/libsolidity/smtCheckerTests/invariants/loop_nested.sol index c95099a2c..aea9c95ab 100644 --- a/test/libsolidity/smtCheckerTests/invariants/loop_nested.sol +++ b/test/libsolidity/smtCheckerTests/invariants/loop_nested.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Simple { function f() public pure { uint x = 10; @@ -16,4 +14,6 @@ contract Simple { //assert(y == x); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/invariants/loop_nested_for.sol b/test/libsolidity/smtCheckerTests/invariants/loop_nested_for.sol index 80584b751..3513c15d3 100644 --- a/test/libsolidity/smtCheckerTests/invariants/loop_nested_for.sol +++ b/test/libsolidity/smtCheckerTests/invariants/loop_nested_for.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Simple { function f() public pure { uint x; @@ -13,4 +11,6 @@ contract Simple { //assert(y == x); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/invariants/state_machine_1.sol b/test/libsolidity/smtCheckerTests/invariants/state_machine_1.sol index c181e6f51..43f505c8f 100644 --- a/test/libsolidity/smtCheckerTests/invariants/state_machine_1.sol +++ b/test/libsolidity/smtCheckerTests/invariants/state_machine_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -31,4 +29,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/invariants/state_machine_1_fail.sol b/test/libsolidity/smtCheckerTests/invariants/state_machine_1_fail.sol index b6f8e80fd..b8727aab4 100644 --- a/test/libsolidity/smtCheckerTests/invariants/state_machine_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/invariants/state_machine_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -30,5 +28,6 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_1_fail.sol b/test/libsolidity/smtCheckerTests/loops/do_while_1_fail.sol index eead1e551..96fbf7557 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -11,6 +9,7 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (143-157): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 14\n\nTransaction trace:\nC.constructor()\nC.f(13) +// Warning 6328: (110-124): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 14\n\nTransaction trace:\nC.constructor()\nC.f(13) diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_1_false_positives.sol b/test/libsolidity/smtCheckerTests/loops/do_while_1_false_positives.sol index 2345cc4f3..95360ca27 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_1_false_positives.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_1_false_positives.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -11,4 +9,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_break.sol b/test/libsolidity/smtCheckerTests/loops/do_while_break.sol index c4b1ee8c4..6e1b7eafe 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_break.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_break.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint x; @@ -11,7 +9,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (104-109): Unreachable code. -// Warning 5740: (122-128): Unreachable code. +// Warning 5740: (71-76): Unreachable code. +// Warning 5740: (89-95): Unreachable code. diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_break_2.sol b/test/libsolidity/smtCheckerTests/loops/do_while_break_2.sol index 2e471d001..3f1d6af00 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_break_2.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_break_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint a = 0; @@ -15,7 +13,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (128-133): Unreachable code. -// Warning 5740: (147-151): Unreachable code. +// Warning 5740: (95-100): Unreachable code. +// Warning 5740: (114-118): Unreachable code. diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_break_2_fail.sol b/test/libsolidity/smtCheckerTests/loops/do_while_break_2_fail.sol index 37763c0a7..3544e04d4 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_break_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_break_2_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint a = 0; @@ -15,8 +13,9 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (128-133): Unreachable code. -// Warning 5740: (147-151): Unreachable code. -// Warning 6328: (180-194): CHC: Assertion violation happens here.\nCounterexample:\n\na = 1\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 5740: (95-100): Unreachable code. +// Warning 5740: (114-118): Unreachable code. +// Warning 6328: (147-161): CHC: Assertion violation happens here.\nCounterexample:\n\na = 1\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_break_fail.sol b/test/libsolidity/smtCheckerTests/loops/do_while_break_fail.sol index 3f91ea19f..cea834c69 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_break_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_break_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint x; @@ -11,8 +9,9 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (104-109): Unreachable code. -// Warning 5740: (122-128): Unreachable code. -// Warning 6328: (133-147): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 5740: (71-76): Unreachable code. +// Warning 5740: (89-95): Unreachable code. +// Warning 6328: (100-114): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/loops/do_while_continue.sol b/test/libsolidity/smtCheckerTests/loops/do_while_continue.sol index f6e712680..ce989722e 100644 --- a/test/libsolidity/smtCheckerTests/loops/do_while_continue.sol +++ b/test/libsolidity/smtCheckerTests/loops/do_while_continue.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint x; @@ -11,6 +9,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (107-112): Unreachable code. +// Warning 5740: (74-79): Unreachable code. diff --git a/test/libsolidity/smtCheckerTests/loops/for_1_break.sol b/test/libsolidity/smtCheckerTests/loops/for_1_break.sol index c6b8eedb4..207ada2f8 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_1_break.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_1_break.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -16,4 +14,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/for_1_break_fail.sol b/test/libsolidity/smtCheckerTests/loops/for_1_break_fail.sol index 0c44a20d7..fa7a489e4 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_1_break_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_1_break_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -15,6 +13,7 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (201-216): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(0, false) +// Warning 6328: (168-183): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(0, false) diff --git a/test/libsolidity/smtCheckerTests/loops/for_1_continue.sol b/test/libsolidity/smtCheckerTests/loops/for_1_continue.sol index fba0909d3..92a2df4a5 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_1_continue.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_1_continue.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -14,4 +12,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/for_1_continue_fail.sol b/test/libsolidity/smtCheckerTests/loops/for_1_continue_fail.sol index 5774854ba..2e4d5a0f7 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_1_continue_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_1_continue_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -11,7 +9,8 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5667: (66-72): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (142-156): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 10\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(9, false) +// Warning 5667: (33-39): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (109-123): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 10\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(9, false) diff --git a/test/libsolidity/smtCheckerTests/loops/for_1_fail.sol b/test/libsolidity/smtCheckerTests/loops/for_1_fail.sol index 65515336d..84d36aa66 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -12,8 +10,9 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 4984: (176-181): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 6328: (189-203): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 14\n\nTransaction trace:\nC.constructor()\nC.f(4) -// Warning 2661: (176-181): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (143-148): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 6328: (156-170): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 14\n\nTransaction trace:\nC.constructor()\nC.f(4) +// Warning 2661: (143-148): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/loops/for_1_false_positive.sol b/test/libsolidity/smtCheckerTests/loops/for_1_false_positive.sol index 341ea4cac..3b6842b41 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_1_false_positive.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_1_false_positive.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -11,4 +9,8 @@ contract C //assert(x > 0); } } +// ==== +// SMTEngine: all // ---- +// Warning 4984: (106-111): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 2661: (106-111): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/loops/for_break_direct.sol b/test/libsolidity/smtCheckerTests/loops/for_break_direct.sol index 42bb84e51..baedb4a97 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_break_direct.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_break_direct.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -9,6 +7,7 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (102-105): Unreachable code. +// Warning 5740: (69-72): Unreachable code. diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_1.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_1.sol index c3e66e5e3..73af790f3 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_1.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { require(x == 2); @@ -7,4 +6,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_2.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_2.sol index b409ae987..4720a90ff 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_2.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { for (; x == 2; ) { @@ -7,4 +6,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_3.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_3.sol index 578c7f5a8..ae739df37 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_3.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { for (uint y = 2; x < 10; ) { @@ -7,4 +6,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_4.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_4.sol index a7aaa5b33..0c7941b0d 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_4.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { for (uint y = 2; x < 10; y = 3) { @@ -7,6 +6,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (136-150): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 3\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (104-118): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 3\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_5.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_5.sol index ac8e1064b..6c496e7af 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_5.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_5.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { uint y; @@ -9,6 +8,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (167-181): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 10\ny = 2\n\nTransaction trace:\nC.constructor()\nC.f(10) +// Warning 6328: (135-149): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 10\ny = 2\n\nTransaction trace:\nC.constructor()\nC.f(10) diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_6.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_6.sol index 06895a9e3..8d8b787c2 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_6.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_6.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { uint y; @@ -10,4 +9,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_memory.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_memory.sol index e5ea6a961..88fe7f51f 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_memory.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_memory.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract LoopFor2 { function testUnboundedForLoop(uint n, uint[] memory b, uint[] memory c) public pure { require(n < b.length); @@ -21,9 +19,10 @@ contract LoopFor2 { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (235-250): Unused local variable. -// Warning 6368: (387-391): CHC: Out of bounds access happens here. -// Warning 6368: (411-415): CHC: Out of bounds access happens here. -// Warning 6368: (404-408): CHC: Out of bounds access happens here. +// Warning 2072: (202-217): Unused local variable. +// Warning 6368: (354-358): CHC: Out of bounds access happens here. +// Warning 6368: (378-382): CHC: Out of bounds access happens here. +// Warning 6368: (371-375): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_storage.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_storage.sol index 985d9ddc1..359f82838 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_storage.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_memory_storage.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract LoopFor2 { uint[] a; function p() public { @@ -15,7 +13,8 @@ contract LoopFor2 { for (uint i = 0; i < n; i += 1) { // Accesses are safe but oob is reported due to potential aliasing after c's assignment. b[i] = i + 1; - c[i] = b[i]; + // Disabled because of Spacer's nondeterminism. + //c[i] = b[i]; } // Removed because current Spacer seg faults in cex generation. //assert(b[0] == c[0]); @@ -24,8 +23,6 @@ contract LoopFor2 { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6368: (442-446): CHC: Out of bounds access happens here. -// Warning 6368: (466-470): CHC: Out of bounds access happens here. -// Warning 6368: (459-463): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_memory.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_memory.sol index e94355d4f..dbcf88a80 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_memory.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_memory.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - // Most of the code has been commented out because of nondeterminism in Spacer in Z3 4.8.9 contract LoopFor2 { uint[] b; @@ -22,4 +20,6 @@ contract LoopFor2 { //assert(b[0] == 900); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_storage.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_storage.sol index 88ce49dee..c8e536933 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_storage.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_array_assignment_storage_storage.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract LoopFor2 { uint[] b; uint[] c; @@ -23,5 +21,6 @@ contract LoopFor2 { */ } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_1.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_1.sol index c8457bc85..781463d5a 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_1.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { require(x == 2); @@ -7,6 +6,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6838: (122-128): BMC: Condition is always true. +// Warning 6838: (90-96): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_2.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_2.sol index 087e40a84..ede2e4335 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_2.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { require(x == 2); @@ -10,6 +9,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6838: (138-144): BMC: Condition is always true. +// Warning 6838: (106-112): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_3.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_3.sol index 57993a00f..0beae52d7 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_3.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_trivial_condition_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { require(x == 2); @@ -14,6 +13,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 2072: (115-121): Unused local variable. +// Warning 2072: (83-89): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/loops/for_loop_unreachable_1.sol b/test/libsolidity/smtCheckerTests/loops/for_loop_unreachable_1.sol index 3c3f29ab1..c040ecb98 100644 --- a/test/libsolidity/smtCheckerTests/loops/for_loop_unreachable_1.sol +++ b/test/libsolidity/smtCheckerTests/loops/for_loop_unreachable_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { require(x == 2); @@ -7,6 +6,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6838: (122-127): BMC: Condition is always false. +// Warning 6838: (90-95): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/loops/while_1.sol b/test/libsolidity/smtCheckerTests/loops/while_1.sol index a2a251c5b..4ce223d12 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -14,5 +12,6 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- diff --git a/test/libsolidity/smtCheckerTests/loops/while_1_break.sol b/test/libsolidity/smtCheckerTests/loops/while_1_break.sol index d2c2eda68..5f0ea4212 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1_break.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1_break.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -16,4 +14,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_1_break_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_1_break_fail.sol index 6eab03a41..ac4071e7f 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1_break_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1_break_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -16,6 +14,7 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (218-233): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(0, false) +// Warning 6328: (185-200): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(0, false) diff --git a/test/libsolidity/smtCheckerTests/loops/while_1_continue.sol b/test/libsolidity/smtCheckerTests/loops/while_1_continue.sol index 9c86b8824..0ee7d50a7 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1_continue.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1_continue.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -15,4 +13,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_1_continue_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_1_continue_fail.sol index 3bc17dbb7..39ee24ac5 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1_continue_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1_continue_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -18,7 +16,8 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (169-176): Unreachable code. -// Warning 6328: (227-242): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 10\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(10, false) +// Warning 5740: (136-143): Unreachable code. +// Warning 6328: (194-209): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 10\nb = false\n\nTransaction trace:\nC.constructor()\nC.f(10, false) diff --git a/test/libsolidity/smtCheckerTests/loops/while_1_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_1_fail.sol index c0f499c6b..f679e3e59 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -11,6 +9,7 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (139-153): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 14\n\nTransaction trace:\nC.constructor()\nC.f(14) +// Warning 6328: (106-120): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 14\n\nTransaction trace:\nC.constructor()\nC.f(14) diff --git a/test/libsolidity/smtCheckerTests/loops/while_1_infinite.sol b/test/libsolidity/smtCheckerTests/loops/while_1_infinite.sol index 99cc76afb..258d34e37 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_1_infinite.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_1_infinite.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, bool b) public pure { @@ -19,4 +17,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_2.sol b/test/libsolidity/smtCheckerTests/loops/while_2.sol index f01c51efe..d68bd6d70 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_2.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { x = 2; @@ -12,4 +11,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_2_break.sol b/test/libsolidity/smtCheckerTests/loops/while_2_break.sol index 98de2d868..d844ba676 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_2_break.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_2_break.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -13,6 +11,7 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 5740: (128-131): Unreachable code. +// Warning 5740: (95-98): Unreachable code. diff --git a/test/libsolidity/smtCheckerTests/loops/while_2_break_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_2_break_fail.sol index e1a83a62a..49b82c0e9 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_2_break_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_2_break_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -12,8 +10,9 @@ contract C } } // ==== -// SMTSolvers: z3 +// SMTEngine: all // SMTIgnoreCex: yes +// SMTSolvers: z3 // ---- -// Warning 5740: (120-123): Unreachable code. -// Warning 6328: (131-145): CHC: Assertion violation happens here. +// Warning 5740: (87-90): Unreachable code. +// Warning 6328: (98-112): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/loops/while_2_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_2_fail.sol index 74d36522d..9a1cbe695 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_2_fail.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { x = 2; @@ -12,5 +11,6 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- diff --git a/test/libsolidity/smtCheckerTests/loops/while_break_direct.sol b/test/libsolidity/smtCheckerTests/loops/while_break_direct.sol index ab94d5414..47515ecad 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_break_direct.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_break_direct.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -10,6 +8,7 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6838: (98-104): BMC: Condition is always true. +// Warning 6838: (65-71): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_memory.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_memory.sol index 6316a87d3..6ee19dfa4 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_memory.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_memory.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract LoopFor2 { function testUnboundedForLoop(uint n, uint[] memory b, uint[] memory c) public pure { require(n < b.length); @@ -26,8 +24,9 @@ contract LoopFor2 { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // SMTSolvers: z3 // ---- -// Warning 2072: (235-250): Unused local variable. -// Warning 2072: (258-264): Unused local variable. +// Warning 2072: (202-217): Unused local variable. +// Warning 2072: (225-231): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_storage.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_storage.sol index 4bef8bdb7..788c36e37 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_storage.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_memory_storage.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract LoopFor2 { uint[] a; function p() public { @@ -32,6 +30,7 @@ contract LoopFor2 { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 2072: (313-319): Unused local variable. +// Warning 2072: (280-286): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_storage_storage.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_storage_storage.sol index 5fa667a86..3e5d910db 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_storage_storage.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_array_assignment_storage_storage.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract LoopFor2 { uint[] b; uint[] c; @@ -24,10 +22,12 @@ contract LoopFor2 { assert(b[0] == 900); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (321-325): CHC: Out of bounds access might happen here. -// Warning 6368: (345-349): CHC: Out of bounds access might happen here. -// Warning 6368: (338-342): CHC: Out of bounds access might happen here. -// Warning 6368: (444-448): CHC: Out of bounds access happens here.\nCounterexample:\nb = [1, 0], c = [1, 0]\nn = 1\na = []\ni = 1\n\nTransaction trace:\nLoopFor2.constructor()\nState: b = [], c = []\nLoopFor2.p()\nState: b = [0], c = [0]\nLoopFor2.p()\nState: b = [0, 0], c = [0, 0]\nLoopFor2.testUnboundedForLoop(1) -// Warning 6328: (437-456): CHC: Assertion violation happens here.\nCounterexample:\nb = [1, 0], c = [1, 0]\nn = 1\ni = 1\n\nTransaction trace:\nLoopFor2.constructor()\nState: b = [], c = []\nLoopFor2.p()\nState: b = [0], c = [0]\nLoopFor2.p()\nState: b = [0, 0], c = [0, 0]\nLoopFor2.testUnboundedForLoop(1) -// Warning 6328: (460-479): CHC: Assertion violation happens here.\nCounterexample:\nb = [1, 0], c = [1, 0]\nn = 1\ni = 1\n\nTransaction trace:\nLoopFor2.constructor()\nState: b = [], c = []\nLoopFor2.p()\nState: b = [0], c = [0]\nLoopFor2.p()\nState: b = [0, 0], c = [0, 0]\nLoopFor2.testUnboundedForLoop(1) +// Warning 6368: (288-292): CHC: Out of bounds access might happen here. +// Warning 6368: (312-316): CHC: Out of bounds access might happen here. +// Warning 6368: (305-309): CHC: Out of bounds access might happen here. +// Warning 6368: (411-415): CHC: Out of bounds access happens here.\nCounterexample:\nb = [1, 0], c = [1, 0]\nn = 1\na = []\ni = 1\n\nTransaction trace:\nLoopFor2.constructor()\nState: b = [], c = []\nLoopFor2.p()\nState: b = [0], c = [0]\nLoopFor2.p()\nState: b = [0, 0], c = [0, 0]\nLoopFor2.testUnboundedForLoop(1) +// Warning 6328: (404-423): CHC: Assertion violation happens here.\nCounterexample:\nb = [1, 0], c = [1, 0]\nn = 1\ni = 1\n\nTransaction trace:\nLoopFor2.constructor()\nState: b = [], c = []\nLoopFor2.p()\nState: b = [0], c = [0]\nLoopFor2.p()\nState: b = [0, 0], c = [0, 0]\nLoopFor2.testUnboundedForLoop(1) +// Warning 6328: (427-446): CHC: Assertion violation happens here.\nCounterexample:\nb = [1, 0], c = [1, 0]\nn = 1\ni = 1\n\nTransaction trace:\nLoopFor2.constructor()\nState: b = [], c = []\nLoopFor2.p()\nState: b = [0], c = [0]\nLoopFor2.p()\nState: b = [0, 0], c = [0, 0]\nLoopFor2.testUnboundedForLoop(1) diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_1.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_1.sol index 3b61e1df9..59edfb55b 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_1.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Check that variables are cleared contract C { function f(uint x) public pure { @@ -10,6 +9,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (194-208): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (162-176): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_2.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_2.sol index 67d26068b..b68a5d586 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_2.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Check that condition is assumed. contract C { function f(uint x) public pure { @@ -8,4 +7,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_3.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_3.sol index 03f7464f5..684adaadb 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_3.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Check that condition is not assumed after the body anymore contract C { function f(uint x) public pure { @@ -8,7 +7,8 @@ contract C { } } // ==== -// SMTSolvers: z3 +// SMTEngine: all // SMTIgnoreCex: yes +// SMTSolvers: z3 // ---- -// Warning 6328: (187-201): CHC: Assertion violation happens here. +// Warning 6328: (155-169): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_4.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_4.sol index c7c2a9a9b..31a06a4a0 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_4.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Check that negation of condition is not assumed after the body anymore contract C { function f(uint x) public pure { @@ -8,4 +7,5 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_5.sol b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_5.sol index d546c6fd9..bbcd6cd31 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_loop_simple_5.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_loop_simple_5.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; // Check that side-effects of condition are taken into account contract C { function f(uint x, uint y) public pure { @@ -10,6 +9,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTSolvers: z3 // ---- -// Warning 6328: (224-238): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) +// Warning 6328: (192-206): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/loops/while_nested_break.sol b/test/libsolidity/smtCheckerTests/loops/while_nested_break.sol index 41e01585e..0a19c3b8e 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_nested_break.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_nested_break.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y, bool b, bool c) public pure { @@ -29,4 +27,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_nested_break_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_nested_break_fail.sol index 52a14a18d..ecd34cf3a 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_nested_break_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_nested_break_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y, bool b, bool c) public pure { @@ -28,6 +26,8 @@ contract C assert(x >= 20); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (329-344): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 10\nb = false\nc = true\n\nTransaction trace:\nC.constructor()\nC.f(0, 9, false, true) -// Warning 6328: (380-395): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 15\ny = 20\nb = false\nc = false\n\nTransaction trace:\nC.constructor()\nC.f(0, 0, false, false) +// Warning 6328: (296-311): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 10\nb = false\nc = true\n\nTransaction trace:\nC.constructor()\nC.f(0, 9, false, true) +// Warning 6328: (347-362): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 15\ny = 20\nb = false\nc = false\n\nTransaction trace:\nC.constructor()\nC.f(0, 0, false, false) diff --git a/test/libsolidity/smtCheckerTests/loops/while_nested_continue.sol b/test/libsolidity/smtCheckerTests/loops/while_nested_continue.sol index 72b0c4d24..da7e9dbf5 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_nested_continue.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_nested_continue.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y, bool b, bool c) public pure { @@ -27,4 +25,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/loops/while_nested_continue_fail.sol b/test/libsolidity/smtCheckerTests/loops/while_nested_continue_fail.sol index ecf051c37..180d85adc 100644 --- a/test/libsolidity/smtCheckerTests/loops/while_nested_continue_fail.sol +++ b/test/libsolidity/smtCheckerTests/loops/while_nested_continue_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y, bool b, bool c) public pure { @@ -26,6 +24,8 @@ contract C assert(x >= 20); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (323-338): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 15\nb = false\nc = false\n\nTransaction trace:\nC.constructor()\nC.f(0, 0, false, false) -// Warning 6328: (362-377): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 15\ny = 0\nb = true\nc = false\n\nTransaction trace:\nC.constructor()\nC.f(0, 0, true, false) +// Warning 6328: (290-305): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 15\nb = false\nc = false\n\nTransaction trace:\nC.constructor()\nC.f(0, 0, false, false) +// Warning 6328: (329-344): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 15\ny = 0\nb = true\nc = false\n\nTransaction trace:\nC.constructor()\nC.f(0, 0, true, false) diff --git a/test/libsolidity/smtCheckerTests/math/addmod_1.sol b/test/libsolidity/smtCheckerTests/math/addmod_1.sol index 5f4eb14b4..62272c595 100644 --- a/test/libsolidity/smtCheckerTests/math/addmod_1.sol +++ b/test/libsolidity/smtCheckerTests/math/addmod_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { assert(addmod(2**256 - 1, 10, 9) == 7); @@ -11,7 +9,9 @@ contract C { return addmod(x, y, k); } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (141-166): CHC: Division by zero happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 4281: (263-278): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\nk = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.g(0, 0, 0) +// Warning 4281: (108-133): CHC: Division by zero happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (137-151): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 4281: (230-245): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\nk = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.g(0, 0, 0) diff --git a/test/libsolidity/smtCheckerTests/math/addmod_mulmod.sol b/test/libsolidity/smtCheckerTests/math/addmod_mulmod.sol index 233f5e293..39d1c8110 100644 --- a/test/libsolidity/smtCheckerTests/math/addmod_mulmod.sol +++ b/test/libsolidity/smtCheckerTests/math/addmod_mulmod.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test() public pure { uint x; @@ -8,6 +6,8 @@ contract C { assert(x == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (93-143): BMC: Condition is always false. -// Warning 6838: (158-208): BMC: Condition is always false. +// Warning 6838: (60-110): BMC: Condition is always false. +// Warning 6838: (125-175): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/math/addmod_mulmod_zero.sol b/test/libsolidity/smtCheckerTests/math/addmod_mulmod_zero.sol index fb3df8b80..4d36da6b5 100644 --- a/test/libsolidity/smtCheckerTests/math/addmod_mulmod_zero.sol +++ b/test/libsolidity/smtCheckerTests/math/addmod_mulmod_zero.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint256 d) public pure { uint x = addmod(1, 2, d); @@ -20,9 +18,11 @@ contract C { assert(z == t); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (253-260): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 4281: (94-109): CHC: Division by zero happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) -// Warning 6328: (113-126): CHC: Assertion violation happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) -// Warning 4281: (180-195): CHC: Division by zero happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g(0) -// Warning 6328: (199-212): CHC: Assertion violation happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g(0) +// Warning 6321: (220-227): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 4281: (61-76): CHC: Division by zero happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (80-93): CHC: Assertion violation happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 4281: (147-162): CHC: Division by zero happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g(0) +// Warning 6328: (166-179): CHC: Assertion violation happens here.\nCounterexample:\n\nd = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.g(0) diff --git a/test/libsolidity/smtCheckerTests/math/addmulmod.sol b/test/libsolidity/smtCheckerTests/math/addmulmod.sol index 6ff977831..1979e4e56 100644 --- a/test/libsolidity/smtCheckerTests/math/addmulmod.sol +++ b/test/libsolidity/smtCheckerTests/math/addmulmod.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function test_addmod(uint x, uint y) public pure { require(x % 13 == 0); @@ -16,4 +14,6 @@ contract C { assert(z == 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/math/mulmod_1.sol b/test/libsolidity/smtCheckerTests/math/mulmod_1.sol index a42919a8d..2a3648f3f 100644 --- a/test/libsolidity/smtCheckerTests/math/mulmod_1.sol +++ b/test/libsolidity/smtCheckerTests/math/mulmod_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { assert(mulmod(2**256 - 1, 2, 14) == 2); @@ -11,7 +9,9 @@ contract C { return mulmod(x, y, k); } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (141-166): CHC: Division by zero happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (170-184): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 4281: (263-278): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\nk = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.g(0, 0, 0) +// Warning 4281: (108-133): CHC: Division by zero happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (137-151): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 4281: (230-245): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\nk = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.g(0, 0, 0) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_abstract.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_abstract.sol index c02aa5c66..9e94386f6 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_abstract.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_abstract.sol @@ -1,6 +1,6 @@ -pragma experimental SMTChecker; - abstract contract A { function f() public mod {} modifier mod virtual; } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_assignment_outside_branch.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_assignment_outside_branch.sol index b3c9ab0d6..76a12044f 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_assignment_outside_branch.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_assignment_outside_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -17,3 +15,5 @@ contract C if (y > x) f(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_code_after_placeholder.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_code_after_placeholder.sol index 85009890a..3634cecb6 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_code_after_placeholder.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_code_after_placeholder.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -20,5 +18,7 @@ contract C x = _x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (136-149): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(115792089237316195423570985008687907853269984665640564039457584007913129639935)\nState: x = 115792089237316195423570985008687907853269984665640564039457584007913129639935\nC.f() +// Warning 6328: (103-116): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(115792089237316195423570985008687907853269984665640564039457584007913129639935)\nState: x = 115792089237316195423570985008687907853269984665640564039457584007913129639935\nC.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_control_flow.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_control_flow.sol index 594f11e41..1d466b537 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_control_flow.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_control_flow.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -14,5 +12,7 @@ contract C assert(x > 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (144-157): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() +// Warning 6328: (111-124): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_inline_function_inside_branch.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_inline_function_inside_branch.sol index 11df23d93..dd329c65a 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_inline_function_inside_branch.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_inline_function_inside_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address owner; @@ -16,4 +14,6 @@ contract C return a; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch.sol index 45202db3c..3278075cb 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address owner; modifier onlyOwner { @@ -11,3 +9,5 @@ contract C { if (x > 0) g(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment.sol index 3eab6a343..8268d8520 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; address owner; @@ -19,5 +17,7 @@ contract C { assert(x > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (287-300): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, owner = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0, owner = 0\nC.g(1)\n C.f() -- internal call +// Warning 6328: (254-267): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, owner = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0, owner = 0\nC.g(1)\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_branch.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_branch.sol index 6c9489482..08a0c9f4c 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_branch.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; address owner; @@ -23,5 +21,7 @@ contract C { assert(x > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (266-271): BMC: Condition is always true. +// Warning 6838: (233-238): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_multi_branches.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_multi_branches.sol index 98ed5f169..df6c12cba 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_multi_branches.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_inside_branch_assignment_multi_branches.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; address owner; @@ -33,5 +31,7 @@ contract C { assert(x == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (573-587): CHC: Assertion violation happens here.\nCounterexample:\nx = 1, owner = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0, owner = 0\nC.g(1) +// Warning 6328: (540-554): CHC: Assertion violation happens here.\nCounterexample:\nx = 1, owner = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nState: x = 0, owner = 0\nC.g(1) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi.sol index 37aa63b1a..d3a4bd92f 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -25,5 +23,7 @@ contract C x = _x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (170-183): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(1)\nState: x = 1\nC.f() +// Warning 6328: (137-150): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(1)\nState: x = 1\nC.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions.sol index c998261bb..f1804abe8 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m(uint a, uint b) { @@ -21,5 +19,7 @@ contract C assert(x > 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (311-324): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\na = 1\nb = 0\n\nTransaction trace:\nC.constructor()\nC.f(1)\n C.g(1, 0) -- internal call +// Warning 6328: (278-291): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\na = 1\nb = 0\n\nTransaction trace:\nC.constructor()\nC.f(1)\n C.g(1, 0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions_recursive.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions_recursive.sol index 16d071fdb..93405d24b 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions_recursive.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_functions_recursive.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m(uint a, uint b) { @@ -16,4 +14,6 @@ contract C assert(x > 1); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_parameters.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_parameters.sol index 8149a9ec9..2f6a820a5 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_parameters.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_multi_parameters.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m(uint a, uint b) { @@ -12,5 +10,7 @@ contract C assert(x > 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (164-177): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\na = 1\nb = 0\n\nTransaction trace:\nC.constructor()\nC.f(1) +// Warning 6328: (131-144): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\na = 1\nb = 0\n\nTransaction trace:\nC.constructor()\nC.f(1) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_overflow.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_overflow.sol index 52dd6ee5f..13a83ee55 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_overflow.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_overflow.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -14,4 +12,6 @@ contract C x = x + 1; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_1.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_1.sol index ff9286c0a..bed6b448e 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_1.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract A { uint s; @@ -19,5 +17,7 @@ contract B is A { s = x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (242-256): CHC: Assertion violation happens here.\nCounterexample:\ns = 42\nx = 42\n\nTransaction trace:\nB.constructor()\nState: s = 0\nB.set(42)\nState: s = 42\nA.f() +// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\ns = 42\nx = 42\n\nTransaction trace:\nB.constructor()\nState: s = 0\nB.set(42)\nState: s = 42\nA.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_2.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_2.sol index dc67c1905..508f726d1 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_2.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract A { bool s; @@ -22,6 +20,8 @@ contract C is B { _; } } +// ==== +// SMTEngine: all // ---- -// Warning 5740: (95-144): Unreachable code. -// Warning 6328: (99-108): CHC: Assertion violation happens here.\nCounterexample:\ns = false\n\nTransaction trace:\nB.constructor()\nState: s = false\nA.f() +// Warning 5740: (62-111): Unreachable code. +// Warning 6328: (66-75): CHC: Assertion violation happens here.\nCounterexample:\ns = false\n\nTransaction trace:\nB.constructor()\nState: s = false\nA.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_3.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_3.sol index 4398f0ae3..655e4b7f5 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_3.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract A { bool s; @@ -17,6 +15,8 @@ contract B is A { _; } } +// ==== +// SMTEngine: all // ---- -// Warning 5740: (95-156): Unreachable code. -// Warning 6328: (127-137): CHC: Assertion violation happens here.\nCounterexample:\ns = true\nx = true\n\nTransaction trace:\nB.constructor()\nState: s = false\nA.f() +// Warning 5740: (62-123): Unreachable code. +// Warning 6328: (94-104): CHC: Assertion violation happens here.\nCounterexample:\ns = true\nx = true\n\nTransaction trace:\nB.constructor()\nState: s = false\nA.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_4.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_4.sol index a02ea10f5..7da8d0f6a 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_4.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract A { int x = 0; @@ -35,7 +33,9 @@ contract D is B,C { _; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (193-207): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nB.constructor()\nState: x = 0\nA.f() -// Warning 6328: (226-240): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.f() -// Warning 6328: (259-273): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nD.constructor()\nState: x = 0\nA.f() +// Warning 6328: (160-174): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nB.constructor()\nState: x = 0\nA.f() +// Warning 6328: (193-207): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.f() +// Warning 6328: (226-240): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nD.constructor()\nState: x = 0\nA.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_parameter_copy.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_parameter_copy.sol index 7502273a9..1612cb8e7 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_parameter_copy.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_parameter_copy.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m(uint x) { @@ -11,5 +9,7 @@ contract C assert(x == 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (128-142): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (95-109): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_parameters.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_parameters.sol index 35a0f399e..7c360c454 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_parameters.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_parameters.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint s; @@ -14,4 +12,6 @@ contract C assert(s > 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_return.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_return.sol index 78fcdc9d3..2b9c95a3f 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_return.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_return.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m(uint x) { @@ -17,4 +15,6 @@ contract C assert(x == 3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_same_local_variables.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_same_local_variables.sol index 7142acba3..1d86c0fea 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_same_local_variables.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_same_local_variables.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m { @@ -11,5 +9,7 @@ contract C assert(x == 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 3\nx = 2\n\nTransaction trace:\nC.constructor()\nC.f(3) +// Warning 6328: (88-102): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\nx = 2\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_simple.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_simple.sol index 47df69872..39e94536a 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_simple.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_simple.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -13,3 +11,5 @@ contract C assert(x > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations.sol index 8d79f6a89..82014aa6b 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -16,4 +14,6 @@ contract C x = x + 1; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations_2.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations_2.sol index 2a66e0c40..0a63ed321 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations_2.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_invocations_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -15,5 +13,7 @@ contract C x = x + 1; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (109-123): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() +// Warning 6328: (76-90): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_placeholders.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_placeholders.sol index c59709451..940445d63 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_two_placeholders.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_two_placeholders.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -22,5 +20,7 @@ contract C x = _x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (156-170): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(1)\nState: x = 1\nC.f() +// Warning 6328: (123-137): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g(1)\nState: x = 1\nC.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_1.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_1.sol index 07c353ee9..ce3eee333 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_1.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { modifier m virtual { _; @@ -8,3 +7,5 @@ contract C is A { function f() public A.m returns (uint) { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_2.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_2.sol index dd071d291..4bd8f328f 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_2.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { int x = 0; @@ -18,5 +17,7 @@ contract C is A { function f() public A.m returns (uint) { } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (115-130): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() +// Warning 6328: (83-98): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable.sol b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable.sol index b0b16783b..3331b57de 100644 --- a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable.sol +++ b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { int x; int y; @@ -26,6 +25,7 @@ contract A { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (424-440): CHC: Assertion violation happens here. +// Warning 6328: (392-408): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array.sol b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array.sol index 9ceb71fcc..3df77d2fb 100644 --- a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array.sol +++ b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { uint[] a; function f() public { @@ -10,5 +9,7 @@ contract A { assert(A.a.length == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (156-178): CHC: Assertion violation happens here.\nCounterexample:\na = []\n\nTransaction trace:\nA.constructor()\nState: a = []\nA.f() +// Warning 6328: (124-146): CHC: Assertion violation happens here.\nCounterexample:\na = []\n\nTransaction trace:\nA.constructor()\nState: a = []\nA.f() diff --git a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_2.sol b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_2.sol index 15024914f..87a88beae 100644 --- a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { int[] a; function f() public { @@ -7,3 +6,5 @@ contract A { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_3.sol b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_3.sol index 61fba7c7b..fac19a6ff 100644 --- a/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/assignment_contract_member_variable_array_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { int[] a; constructor() { @@ -24,8 +23,10 @@ contract A { a.push(x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (350-354): CHC: Out of bounds access happens here.\nCounterexample:\na = [0, 0]\nu = []\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() -// Warning 6328: (343-360): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0]\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() -// Warning 6368: (454-458): CHC: Out of bounds access happens here.\nCounterexample:\na = [0, 0]\nu = []\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() -// Warning 6328: (447-464): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0]\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() +// Warning 6368: (318-322): CHC: Out of bounds access happens here.\nCounterexample:\na = [0, 0]\nu = []\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() +// Warning 6328: (311-328): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0]\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() +// Warning 6368: (422-426): CHC: Out of bounds access happens here.\nCounterexample:\na = [0, 0]\nu = []\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() +// Warning 6328: (415-432): CHC: Assertion violation happens here.\nCounterexample:\na = [0, 0]\nb = [0, 0]\n\nTransaction trace:\nA.constructor()\nState: a = [1]\nA.f() diff --git a/test/libsolidity/smtCheckerTests/operators/assignment_module_contract_member_variable.sol b/test/libsolidity/smtCheckerTests/operators/assignment_module_contract_member_variable.sol index 9f8239fa4..d1387ee8e 100644 --- a/test/libsolidity/smtCheckerTests/operators/assignment_module_contract_member_variable.sol +++ b/test/libsolidity/smtCheckerTests/operators/assignment_module_contract_member_variable.sol @@ -1,5 +1,4 @@ ==== Source: AASource ==== -pragma experimental SMTChecker; import "AASource" as AA; contract A { int x; @@ -26,6 +25,8 @@ contract A { assert(AA.A.y == A.x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (AASource:191-210): CHC: Assertion violation happens here.\nCounterexample:\nx = (- 1), y = (- 2)\n\nTransaction trace:\nA.constructor()\nState: x = 0, y = 0\nA.a()\nState: x = (- 2), y = (- 2)\nA.a() -// Warning 6328: (AASource:402-418): CHC: Assertion violation happens here.\nCounterexample:\nx = 8, y = (- 2)\n\nTransaction trace:\nA.constructor()\nState: x = 0, y = 0\nA.a() +// Warning 6328: (AASource:159-178): CHC: Assertion violation happens here.\nCounterexample:\nx = (- 1), y = (- 2)\n\nTransaction trace:\nA.constructor()\nState: x = 0, y = 0\nA.a()\nState: x = (- 2), y = (- 2)\nA.a() +// Warning 6328: (AASource:370-386): CHC: Assertion violation happens here.\nCounterexample:\nx = 8, y = (- 2)\n\nTransaction trace:\nA.constructor()\nState: x = 0, y = 0\nA.a() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_and_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_and_fixed_bytes.sol index 59a29ee26..64d31bff0 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_and_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_and_fixed_bytes.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure { assert(bytes1("") & ("") == bytes1(0)); // should hold @@ -7,5 +6,7 @@ contract C { assert(bytes1(0xFF) & bytes1(0xAA) == bytes1(0)); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (269-317): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (237-285): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_and_int.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_and_int.sol index ca870a1ec..611fd9598 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_and_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_and_int.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { int8 x = 1; @@ -14,5 +12,7 @@ contract C { assert(x & y == 127); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (104-122): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\nz = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (71-89): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\nz = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_and_rational.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_and_rational.sol index 68162830a..1f4c6c3d1 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_and_rational.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_and_rational.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { assert(1 & 0 != 0); @@ -8,5 +6,7 @@ contract C { assert(-1 & 127 == 127); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (76-94): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (43-61): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_and_uint.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_and_uint.sol index 86ab29a16..47f0dcba2 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_and_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_and_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint8 x = 1; @@ -12,7 +10,9 @@ contract C { assert(x & y == 0x0000); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (107-125): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (180-203): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (207-230): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (74-92): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (147-170): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (174-197): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_combo.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_combo.sol index dc1d8f206..19fdaf947 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_combo.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_combo.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint8 x = 0xff; @@ -9,4 +7,6 @@ contract C { assert(x ^ y == 0xff); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_not_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_not_fixed_bytes.sol index dcb64d999..e9e1dea53 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_not_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_not_fixed_bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { // ffff0000 in bytes4 @@ -8,5 +6,7 @@ contract C { assert(x == 0x0000ffff); // should hold } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (133-156): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 65535\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (100-123): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 65535\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_not_int.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_not_int.sol index e95eee8e6..e254d5b40 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_not_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_not_int.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { int16 x = 1; @@ -14,8 +12,10 @@ contract C { assert(~x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (91-106): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (122-137): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (153-171): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 15\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (185-200): CHC: Assertion violation happens here.\nCounterexample:\n\nx = (- 1)\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (58-73): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (89-104): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (120-138): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 15\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (152-167): CHC: Assertion violation happens here.\nCounterexample:\n\nx = (- 1)\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_not_uint.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_not_uint.sol index a27b26f9b..8cf205e9c 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_not_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_not_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint8 x = 0xff; @@ -10,6 +8,8 @@ contract C { assert(~y == 0x0000); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (159-179): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (183-203): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (126-146): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (150-170): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_or_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_or_fixed_bytes.sol index 1ca17f25f..125e54db5 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_or_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_or_fixed_bytes.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure returns (bytes1) { bytes1 b = (bytes1(0x0F) | (bytes1(0xF0))); @@ -7,5 +6,7 @@ contract C { return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (182-207): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\nb = 255\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (150-175): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\nb = 255\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_or_int.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_or_int.sol index 94eb7c869..cc96e9b1e 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_or_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_or_int.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { int16 x = 1; @@ -16,6 +14,8 @@ contract C { assert(x | z != -1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (144-162): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\nz = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (267-286): CHC: Assertion violation happens here.\nCounterexample:\n\nx = (- 1)\ny = 200\nz = 255\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (111-129): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\nz = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (234-253): CHC: Assertion violation happens here.\nCounterexample:\n\nx = (- 1)\ny = 200\nz = 255\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_or_uint.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_or_uint.sol index ec09770dc..d6ebdf498 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_or_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_or_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint8 x = 1; @@ -12,6 +10,8 @@ contract C { assert(x | y == 0x0000); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (155-176): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (207-230): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (122-143): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (174-197): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_rational_1.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_rational_1.sol index f93670917..14794f6e7 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_rational_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_rational_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint x = type(uint256).max - 1; @@ -7,4 +5,6 @@ contract C { assert(~1 == -2); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_rational_2.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_rational_2.sol index c289f494f..3d3f373a0 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_rational_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_rational_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { assert(~1 | (~0xff & 0) == -2); @@ -11,5 +9,7 @@ contract C { assert(y & (0xffffffffffffffffff & 1) == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (181-194): CHC: Assertion violation happens here.\nCounterexample:\n\nx = (- 2)\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (148-161): CHC: Assertion violation happens here.\nCounterexample:\n\nx = (- 2)\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_fixed_bytes.sol index eb0b0c254..62cf620d6 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_fixed_bytes.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract Simp { function f3() public pure returns (bytes1) { bytes memory y = "def"; @@ -8,6 +7,7 @@ contract Simp { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (172-203): CHC: Assertion violation happens here. +// Warning 6328: (140-171): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_int.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_int.sol index 5adbd7095..1075480cb 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_int.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { int8 x = 1; @@ -14,6 +12,8 @@ contract C { assert(x ^ y > 5); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (189-206): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\nz = (- 1)\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (247-264): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 7\ny = 3\nz = (- 1)\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (156-173): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\nz = (- 1)\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (214-231): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 7\ny = 3\nz = (- 1)\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_uint.sol b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_uint.sol index 25414a97d..6d28cdbcf 100644 --- a/test/libsolidity/smtCheckerTests/operators/bitwise_xor_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/bitwise_xor_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint8 x = 1; @@ -12,6 +10,8 @@ contract C { assert(x ^ y == 0x0000); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (155-176): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (207-230): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (122-143): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (174-197): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/bytes_new.sol b/test/libsolidity/smtCheckerTests/operators/bytes_new.sol index ccc27a0ac..e41c8740f 100644 --- a/test/libsolidity/smtCheckerTests/operators/bytes_new.sol +++ b/test/libsolidity/smtCheckerTests/operators/bytes_new.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes memory x = new bytes(0); @@ -33,6 +31,8 @@ contract C { assert(x[1] == 0x34); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (501-505): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() -// Warning 6368: (523-527): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() +// Warning 6368: (468-472): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() +// Warning 6368: (490-494): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_add.sol b/test/libsolidity/smtCheckerTests/operators/compound_add.sol index 377849b54..804f7c3cb 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_add.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_add.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -10,5 +8,7 @@ contract C assert(y < 110); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (151-166): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 200\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (118-133): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 200\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_add_array_index.sol b/test/libsolidity/smtCheckerTests/operators/compound_add_array_index.sol index e220eba3a..ab56d9504 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_add_array_index.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_add_array_index.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -18,5 +16,7 @@ contract C assert(array[p] < 110); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (295-317): CHC: Assertion violation happens here.\nCounterexample:\narray = [0, 200]\nx = 0\np = 1\n\nTransaction trace:\nC.constructor()\nState: array = [0, 0]\nC.f(0, 1) +// Warning 6328: (262-284): CHC: Assertion violation happens here.\nCounterexample:\narray = [0, 200]\nx = 0\np = 1\n\nTransaction trace:\nC.constructor()\nState: array = [0, 0]\nC.f(0, 1) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_add_chain.sol b/test/libsolidity/smtCheckerTests/operators/compound_add_chain.sol index be6c363e1..f3f6821e0 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_add_chain.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_add_chain.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -14,3 +12,5 @@ contract C assert(a == 112); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/compound_add_mapping.sol b/test/libsolidity/smtCheckerTests/operators/compound_add_mapping.sol index 8b239ffef..70d75cf1c 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_add_mapping.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_add_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -11,5 +9,7 @@ contract C assert(map[p] < 110); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (198-218): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\np = 38\n\nTransaction trace:\nC.constructor()\nC.f(0, 38) +// Warning 6328: (165-185): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\np = 38\n\nTransaction trace:\nC.constructor()\nC.f(0, 38) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_1.sol b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_1.sol index e91e0b840..6e6a106e2 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { require(x == 2); @@ -8,5 +7,7 @@ contract C { assert(y == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (147-161): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 2\n\nTransaction trace:\nC.constructor()\nC.f(2) +// Warning 6328: (115-129): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 2\n\nTransaction trace:\nC.constructor()\nC.f(2) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_2.sol b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_2.sol index b2b5ca8b1..bd81c17a4 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint[] array; constructor() { @@ -16,5 +15,7 @@ contract C { assert(array[p] == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (291-312): CHC: Assertion violation happens here.\nCounterexample:\narray = [2, 0]\nx = 2\np = 0\n\nTransaction trace:\nC.constructor()\nState: array = [0, 0]\nC.f(2, 0) +// Warning 6328: (259-280): CHC: Assertion violation happens here.\nCounterexample:\narray = [2, 0]\nx = 2\np = 0\n\nTransaction trace:\nC.constructor()\nState: array = [0, 0]\nC.f(2, 0) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_3.sol b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_3.sol index a6395c6e6..e762eb4be 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_assignment_division_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { mapping (uint => uint) map; function f(uint x, uint p) public { @@ -9,5 +8,7 @@ contract C { assert(map[p] == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (194-213): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\np = 0\n\nTransaction trace:\nC.constructor()\nC.f(2, 0) +// Warning 6328: (162-181): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\np = 0\n\nTransaction trace:\nC.constructor()\nC.f(2, 0) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_assignment_right_shift.sol b/test/libsolidity/smtCheckerTests/operators/compound_assignment_right_shift.sol index f49b1ae03..ca035131b 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_assignment_right_shift.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_assignment_right_shift.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int a, uint b) public view { a >>= tx.gasprice; @@ -8,4 +6,6 @@ contract C { assert(a == 4); // should hold } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_fixed_bytes.sol index 10f0a574b..03e25854e 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_fixed_bytes.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure returns (bytes1) { bytes1 a = 0xff; @@ -10,6 +9,8 @@ contract C { assert(a != 0); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (83-89): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 0\nb = 240\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6321: (51-57): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (177-191): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 0\nb = 240\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_int.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_int.sol index a2638b806..d634a1922 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_int.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { int8 x = 1; @@ -17,5 +15,7 @@ contract C { assert(x == 127); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (114-128): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (81-95): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_uint.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_uint.sol index 06aab80c0..2e86c4b3a 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_and_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint v = 1; @@ -27,7 +25,9 @@ contract C { assert(y == 0xff); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (177-191): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 3\nc = 0\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (380-399): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 3\nc = 0\nx = 255\ny = 255\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (506-523): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 3\nc = 0\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (144-158): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 3\nc = 0\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (347-366): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 3\nc = 0\nx = 255\ny = 255\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (473-490): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 3\nc = 0\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_fixed_bytes.sol index eac0b393e..c80c3fb65 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_fixed_bytes.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure returns (bytes1) { bytes1 a = 0xff; @@ -10,6 +9,8 @@ contract C { assert(a == 0); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (83-89): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 255\nb = 255\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6321: (51-57): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (177-191): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 255\nb = 255\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int.sol index 7a8d33575..5d92940b7 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { int8 x = 1; @@ -17,5 +15,7 @@ contract C { assert(x == 127); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (114-128): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (81-95): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int_1.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int_1.sol index 66ab51cce..8f7c69b2c 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_int_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[1][20] c; function f(bool b) public { @@ -8,13 +7,15 @@ contract C { assert(c[10][0] == 0 || c[10][0] == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (108-113): CHC: Out of bounds access might happen here. -// Warning 6368: (108-116): CHC: Out of bounds access might happen here. -// Warning 6368: (151-156): CHC: Out of bounds access might happen here. -// Warning 6368: (151-159): CHC: Out of bounds access might happen here. -// Warning 6368: (181-186): CHC: Out of bounds access might happen here. -// Warning 6368: (181-189): CHC: Out of bounds access might happen here. -// Warning 6368: (198-203): CHC: Out of bounds access might happen here. -// Warning 6368: (198-206): CHC: Out of bounds access might happen here. -// Warning 6328: (174-212): CHC: Assertion violation might happen here. +// Warning 6368: (76-81): CHC: Out of bounds access might happen here. +// Warning 6368: (76-84): CHC: Out of bounds access might happen here. +// Warning 6368: (119-124): CHC: Out of bounds access might happen here. +// Warning 6368: (119-127): CHC: Out of bounds access might happen here. +// Warning 6368: (149-154): CHC: Out of bounds access might happen here. +// Warning 6368: (149-157): CHC: Out of bounds access might happen here. +// Warning 6368: (166-171): CHC: Out of bounds access might happen here. +// Warning 6368: (166-174): CHC: Out of bounds access might happen here. +// Warning 6328: (142-180): CHC: Assertion violation might happen here. diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint.sol index d7d9308ce..e36d166a5 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint v = 7; @@ -23,7 +21,9 @@ contract C { assert(x == 0xff00); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 7\nc = 0\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (298-315): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 7\nc = 7\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (424-443): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 7\nc = 7\nx = 65280\ny = 61951\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (88-102): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 7\nc = 0\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (265-282): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 7\nc = 7\nx = 255\ny = 65535\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (391-410): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 7\nc = 7\nx = 65280\ny = 61951\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_1.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_1.sol index 625ffae39..802dd27ff 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint[1] c; function f(bool b) public { @@ -8,8 +7,10 @@ contract C { assert(c[0] <= 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (108-112): CHC: Out of bounds access might happen here. -// Warning 6368: (147-151): CHC: Out of bounds access might happen here. -// Warning 6368: (173-177): CHC: Out of bounds access might happen here. -// Warning 6328: (166-183): CHC: Assertion violation might happen here. +// Warning 6368: (76-80): CHC: Out of bounds access might happen here. +// Warning 6368: (115-119): CHC: Out of bounds access might happen here. +// Warning 6368: (141-145): CHC: Out of bounds access might happen here. +// Warning 6328: (134-151): CHC: Assertion violation might happen here. diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_2.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_2.sol index c85465e01..ff09f55fa 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { uint[] x; @@ -17,3 +16,5 @@ contract C { //assert(s.x[2] != 1); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_3.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_3.sol index b6e9af8a8..2650b0897 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_or_uint_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { uint x; @@ -9,6 +8,8 @@ contract C { assert(s.x > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (157-172): CHC: Assertion violation might happen here. -// Warning 7812: (157-172): BMC: Assertion violation might happen here. +// Warning 6328: (125-140): CHC: Assertion violation might happen here. +// Warning 7812: (125-140): BMC: Assertion violation might happen here. diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal.sol index 6628a6884..a682f4692 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes memory y = "def"; @@ -15,6 +13,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (156-175): CHC: Assertion violation happens here. +// Warning 6328: (123-142): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_2.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_2.sol index 855fb3952..e142ee930 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes3 y = "def"; @@ -13,5 +11,7 @@ contract C { assert(y == (bytes3("def") | bytes3("dee")) ^ bytes3("fed")); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (180-198): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 6579559\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (147-165): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 6579559\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_3.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_3.sol index 2d0b48412..933f15980 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_string_literal_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes32 y = "abcdefghabcdefghabcdefghabcdefgh"; @@ -16,6 +14,8 @@ contract C { assert(y == z ^ "abcdefghabcdefghabcdefghabcdefgh"); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (262-309): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 43595849750559157961410616371195012376776328331498503227444818324475146035296\nz = 43595849750559157961410616371195012376776328331498503227444818324475146035296\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (427-470): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 44959890247538927454655645290332771782915717053340361485195502024921998844258\nz = 44959890247538927454655645290332771782915717053340361485195502024921998844258\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (229-276): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 43595849750559157961410616371195012376776328331498503227444818324475146035296\nz = 43595849750559157961410616371195012376776328331498503227444818324475146035296\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (394-437): CHC: Assertion violation happens here.\nCounterexample:\n\ny = 44959890247538927454655645290332771782915717053340361485195502024921998844258\nz = 44959890247538927454655645290332771782915717053340361485195502024921998844258\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_fixed_bytes.sol index 7b5b6d171..5d53d9132 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_fixed_bytes.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure returns (bytes1) { bytes1 a = 0xff; @@ -10,6 +9,8 @@ contract C { assert(a != 0xff); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (83-89): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (210-227): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 255\nb = 240\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6321: (51-57): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (178-195): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 255\nb = 240\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_int.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_int.sol index 148d84065..30ee76277 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_int.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_int.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { int8 x = 1; @@ -14,5 +12,7 @@ contract C { assert(y == 5); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (114-128): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (81-95): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 1\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_uint.sol b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_uint.sol index a665a8e7b..1e88cc52e 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_uint.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_bitwise_xor_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint v = 7; @@ -23,7 +21,9 @@ contract C { assert(x == 0xff00); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (121-135): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 4\nc = 0\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (298-315): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 4\nc = 4\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (422-441): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 4\nc = 4\nx = 65280\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (88-102): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 4\nc = 0\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (265-282): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 4\nc = 4\nx = 255\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (389-408): CHC: Assertion violation happens here.\nCounterexample:\n\nv = 4\nc = 4\nx = 65280\ny = 65280\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/compound_mul.sol b/test/libsolidity/smtCheckerTests/operators/compound_mul.sol index edf7a565b..4262cdd7c 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_mul.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_mul.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -10,5 +8,7 @@ contract C assert(y < 50); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (150-164): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 100\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (117-131): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 100\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_mul_array_index.sol b/test/libsolidity/smtCheckerTests/operators/compound_mul_array_index.sol index 6223d7b19..8fcd46b94 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_mul_array_index.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_mul_array_index.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -13,5 +11,7 @@ contract C assert(array[p] < 50); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (259-280): CHC: Assertion violation happens here.\nCounterexample:\narray = [100]\nx = 0\np = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.q()\nState: array = [0]\nC.f(0, 0) +// Warning 6328: (226-247): CHC: Assertion violation happens here.\nCounterexample:\narray = [100]\nx = 0\np = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.q()\nState: array = [0]\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_mul_mapping.sol b/test/libsolidity/smtCheckerTests/operators/compound_mul_mapping.sol index 9acecf49b..8725f6088 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_mul_mapping.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_mul_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -11,5 +9,7 @@ contract C assert(map[p] < 50); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (197-216): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\np = 38\n\nTransaction trace:\nC.constructor()\nC.f(0, 38) +// Warning 6328: (164-183): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\np = 38\n\nTransaction trace:\nC.constructor()\nC.f(0, 38) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_shl_1.sol b/test/libsolidity/smtCheckerTests/operators/compound_shl_1.sol index 8ccc8a800..281543e1c 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_shl_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_shl_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool b) public pure { uint v = 1000000; @@ -8,4 +6,6 @@ contract C { assert(v > 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/compound_shr_1.sol b/test/libsolidity/smtCheckerTests/operators/compound_shr_1.sol index a2a7ca5ab..99469dc40 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_shr_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_shr_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool b) public pure { uint v = 1; @@ -8,5 +6,7 @@ contract C { assert(v > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (117-130): CHC: Assertion violation happens here. +// Warning 6328: (84-97): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/compound_sub.sol b/test/libsolidity/smtCheckerTests/operators/compound_sub.sol index ac625fce0..0c4394bb7 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_sub.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_sub.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -10,5 +8,7 @@ contract C assert(y < 90); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (150-164): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 90\ny = 90\n\nTransaction trace:\nC.constructor()\nC.f(90) +// Warning 6328: (117-131): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 90\ny = 90\n\nTransaction trace:\nC.constructor()\nC.f(90) diff --git a/test/libsolidity/smtCheckerTests/operators/compound_sub_array_index.sol b/test/libsolidity/smtCheckerTests/operators/compound_sub_array_index.sol index 7be5dfdf5..5c9b1181f 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_sub_array_index.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_sub_array_index.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -14,6 +12,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (259-280): CHC: Assertion violation happens here. +// Warning 6328: (226-247): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/compound_sub_mapping.sol b/test/libsolidity/smtCheckerTests/operators/compound_sub_mapping.sol index 2196afce2..9c8b27359 100644 --- a/test/libsolidity/smtCheckerTests/operators/compound_sub_mapping.sol +++ b/test/libsolidity/smtCheckerTests/operators/compound_sub_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -12,6 +10,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (197-216): CHC: Assertion violation happens here. +// Warning 6328: (164-183): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_1.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_1.sol index c2be2e47c..d0ce284e4 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_1.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f(bool b) public pure { uint a = b ? 2 : 3; assert(a > 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (104-117): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\na = 2\n\nTransaction trace:\nC.constructor()\nC.f(true) +// Warning 6328: (71-84): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\na = 2\n\nTransaction trace:\nC.constructor()\nC.f(true) diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_2.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_2.sol index 7a9c56c2d..c33c12c29 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint b) public pure { require(b < 3); @@ -8,6 +6,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (132-146): CHC: Assertion violation happens here. +// Warning 6328: (99-113): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_3.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_3.sol index bd8f393d4..4dd9e8eff 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint a, uint b) public pure { require(a < 10); @@ -10,6 +8,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (161-174): CHC: Assertion violation happens here. +// Warning 6328: (128-141): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_4.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_4.sol index 87b48e982..7ddf07706 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_4.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() public virtual ; } @@ -21,5 +19,7 @@ contract C { x = 3; } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (273-279): Unused local variable. +// Warning 2072: (240-246): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_5.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_5.sol index eb3404919..24be3cd8e 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_5.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() public virtual ; } @@ -23,7 +21,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (282-288): Unused local variable. -// Warning 6328: (304-328): CHC: Assertion violation happens here. +// Warning 2072: (249-255): Unused local variable. +// Warning 6328: (271-295): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_6.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_6.sol index d1fe62aac..58afa2413 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_6.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() public virtual ; } @@ -22,5 +20,7 @@ contract C { x = 3; } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (288-294): Unused local variable. +// Warning 2072: (255-261): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_false.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_false.sol index 3f3eff797..714a87c1b 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_false.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_false.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint b) public pure returns (uint d) { require(b < 10); @@ -7,5 +5,7 @@ contract C { d = c > 5 ? 3 : 2; } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (148-153): BMC: Condition is always false. +// Warning 6838: (115-120): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_true.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_true.sol index dfdc200da..a13f5f9f5 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_true.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_always_true.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool b) public pure { require(b); @@ -7,6 +5,8 @@ contract C { assert(c < 5); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (118-131): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\nc = 5\n\nTransaction trace:\nC.constructor()\nC.f(true) -// Warning 6838: (105-106): BMC: Condition is always true. +// Warning 6328: (85-98): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\nc = 5\n\nTransaction trace:\nC.constructor()\nC.f(true) +// Warning 6838: (72-73): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_1.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_1.sol index 12b915080..dde02e24f 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint a) internal pure returns (bool b) { b = a > 5; @@ -9,5 +7,7 @@ contract C { assert(c > 5); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (203-216): CHC: Assertion violation happens here.\nCounterexample:\n\na = 6\nc = 3\n\nTransaction trace:\nC.constructor()\nC.g(6)\n C.f(6) -- internal call +// Warning 6328: (170-183): CHC: Assertion violation happens here.\nCounterexample:\n\na = 6\nc = 3\n\nTransaction trace:\nC.constructor()\nC.g(6)\n C.f(6) -- internal call diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_2.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_2.sol index e52f85b35..a448bf1cb 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_function_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint a) internal pure returns (uint b) { require(a < 1000); @@ -16,6 +14,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (378-392): CHC: Assertion violation happens here. +// Warning 6328: (345-359): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_always_true.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_always_true.sol index 562631dec..484d175b0 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_always_true.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_always_true.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool b1, bool b2) public pure { require(b1 || b2); @@ -7,5 +5,7 @@ contract C { assert(c > 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (147-149): BMC: Condition is always true. +// Warning 6838: (114-116): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_unsafe.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_unsafe.sol index 00cf0d9af..71eaa8d6c 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_nested_unsafe.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f(bool b1, bool b2) public pure { uint c = b1 ? 3 : (b2 ? 2 : 1); assert(c > 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (141-154): CHC: Assertion violation happens here.\nCounterexample:\n\nb1 = false\nb2 = false\nc = 1\n\nTransaction trace:\nC.constructor()\nC.f(false, false) +// Warning 6328: (108-121): CHC: Assertion violation happens here.\nCounterexample:\n\nb1 = false\nb2 = false\nc = 1\n\nTransaction trace:\nC.constructor()\nC.f(false, false) diff --git a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_statevar_1.sol b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_statevar_1.sol index d44a03d6b..edd42e094 100644 --- a/test/libsolidity/smtCheckerTests/operators/conditional_assignment_statevar_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/conditional_assignment_statevar_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint a; bool b; @@ -13,8 +11,11 @@ contract C { assert(c >= a); } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (167-173): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 4984: (176-179): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 2661: (167-173): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 2661: (176-179): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 1218: (134-140): CHC: Error trying to invoke SMT solver. +// Warning 4984: (134-140): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 4984: (143-146): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 2661: (134-140): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 2661: (143-146): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/const_exp_1.sol b/test/libsolidity/smtCheckerTests/operators/const_exp_1.sol index b906f0a72..d33defde9 100644 --- a/test/libsolidity/smtCheckerTests/operators/const_exp_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/const_exp_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint constant x = 2; uint constant y = x ** 10; @@ -10,6 +8,8 @@ contract C { assert(y == 14); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 2018: (98-206): Function state mutability can be restricted to pure -// Warning 6328: (172-187): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 1024\n\nTransaction trace:\nC.constructor()\nState: x = 2, y = 1024\nC.f() +// Warning 2018: (65-173): Function state mutability can be restricted to pure +// Warning 6328: (139-154): CHC: Assertion violation happens here.\nCounterexample:\nx = 2, y = 1024\n\nTransaction trace:\nC.constructor()\nState: x = 2, y = 1024\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/constant_propagation_1.sol b/test/libsolidity/smtCheckerTests/operators/constant_propagation_1.sol index 03cb70f86..74502ed2a 100644 --- a/test/libsolidity/smtCheckerTests/operators/constant_propagation_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/constant_propagation_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint constant DEPOSIT_CONTRACT_TREE_DEPTH = 32; uint constant MAX_DEPOSIT_COUNT = 2**DEPOSIT_CONTRACT_TREE_DEPTH - 1; @@ -9,5 +7,7 @@ contract C { assert(MAX_DEPOSIT_COUNT == 2); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (284-314): CHC: Assertion violation happens here.\nCounterexample:\nDEPOSIT_CONTRACT_TREE_DEPTH = 32, MAX_DEPOSIT_COUNT = 4294967295\n\nTransaction trace:\nC.constructor()\nState: DEPOSIT_CONTRACT_TREE_DEPTH = 32, MAX_DEPOSIT_COUNT = 4294967295\nC.f() +// Warning 6328: (251-281): CHC: Assertion violation happens here.\nCounterexample:\nDEPOSIT_CONTRACT_TREE_DEPTH = 32, MAX_DEPOSIT_COUNT = 4294967295\n\nTransaction trace:\nC.constructor()\nState: DEPOSIT_CONTRACT_TREE_DEPTH = 32, MAX_DEPOSIT_COUNT = 4294967295\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/constant_propagation_2.sol b/test/libsolidity/smtCheckerTests/operators/constant_propagation_2.sol index 2aadde8e9..9a1d4eae4 100644 --- a/test/libsolidity/smtCheckerTests/operators/constant_propagation_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/constant_propagation_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint constant x = 7; uint constant y = 3; @@ -12,3 +10,5 @@ contract C { assert(z * 3 != 7); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/delete_array.sol b/test/libsolidity/smtCheckerTests/operators/delete_array.sol index 059a2bab2..fb71fc03b 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_array.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; @@ -16,5 +14,7 @@ contract C assert(a.length == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (154-155): BMC: Condition is always true. +// Warning 6838: (121-122): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/operators/delete_array_2d.sol b/test/libsolidity/smtCheckerTests/operators/delete_array_2d.sol index d718a7729..989be3a64 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_array_2d.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_array_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; @@ -16,3 +14,5 @@ contract C assert(a[2][3] == 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/delete_array_index.sol b/test/libsolidity/smtCheckerTests/operators/delete_array_index.sol index 12ed1ba03..ea9c4f55a 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_array_index.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_array_index.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; @@ -19,5 +17,7 @@ contract C assert(a[2] == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (187-188): BMC: Condition is always false. +// Warning 6838: (154-155): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/operators/delete_array_index_2d.sol b/test/libsolidity/smtCheckerTests/operators/delete_array_index_2d.sol index ad9540acf..b0ec97d98 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_array_index_2d.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_array_index_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; @@ -9,33 +7,24 @@ contract C function init() internal { a.push(); a.push(); - a.push(); + a[0].push(); a[1].push(); - a[1].push(); - a[2].push(); - a[2].push(); } function f(bool b) public { - a[1][1] = 512; + // Removed due to Spacer's nondeterminism. + //a[1][1] = 512; if (b) delete a; else - delete a[2]; + delete a[1]; init(); - assert(a[2][3] == 0); - assert(a[1][1] == 0); + assert(a[1][0] == 0); + assert(a[0][0] == 0); } } // ==== -// SMTSolvers: z3 +// SMTEngine: all +// SMTIgnoreCex: yes // ---- -// Warning 6368: (247-251): CHC: Out of bounds access might happen here. -// Warning 6368: (247-254): CHC: Out of bounds access might happen here. -// Warning 6368: (301-305): CHC: Out of bounds access might happen here. -// Warning 6368: (326-330): CHC: Out of bounds access might happen here. -// Warning 6368: (326-333): CHC: Out of bounds access might happen here. -// Warning 6328: (319-339): CHC: Assertion violation might happen here. -// Warning 6368: (350-354): CHC: Out of bounds access might happen here. -// Warning 6368: (350-357): CHC: Out of bounds access might happen here. -// Warning 6328: (343-363): CHC: Assertion violation might happen here. -// Warning 4661: (343-363): BMC: Assertion violation happens here. +// Warning 6328: (315-335): CHC: Assertion violation might happen here. +// Warning 4661: (315-335): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/delete_array_push.sol b/test/libsolidity/smtCheckerTests/operators/delete_array_push.sol index ce3813345..9d6576604 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_array_push.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_array_push.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int[][] array2d; function s() public { @@ -14,6 +13,8 @@ contract C { assert(array2d[length - 1][length2 - 1] != 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (175-222): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[]]\nlength = 0\nlength2 = 0\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.s() -// Warning 6328: (395-440): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[], [0]]\nlength = 2\nlength2 = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.s() +// Warning 6328: (143-190): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[]]\nlength = 0\nlength2 = 0\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.s() +// Warning 6328: (363-408): CHC: Assertion violation happens here.\nCounterexample:\narray2d = [[], [0]]\nlength = 2\nlength2 = 1\n\nTransaction trace:\nC.constructor()\nState: array2d = []\nC.s() diff --git a/test/libsolidity/smtCheckerTests/operators/delete_function.sol b/test/libsolidity/smtCheckerTests/operators/delete_function.sol index 697e2e4a0..f40a02c93 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_function.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; @@ -27,5 +25,7 @@ contract C assert(a[1] == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (295-296): BMC: Condition is always true. +// Warning 6838: (262-263): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/operators/delete_multid_array.sol b/test/libsolidity/smtCheckerTests/operators/delete_multid_array.sol index 4f82f9e7d..7849a7858 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_multid_array.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_multid_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; uint[][] b; @@ -56,5 +54,6 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/delete_struct.sol b/test/libsolidity/smtCheckerTests/operators/delete_struct.sol index 01fa7558b..cb68e6d4b 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_struct.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_struct.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S @@ -16,4 +14,6 @@ contract C assert(s.x == 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/delete_tuple.sol b/test/libsolidity/smtCheckerTests/operators/delete_tuple.sol index cb37864d5..deaa7f06c 100644 --- a/test/libsolidity/smtCheckerTests/operators/delete_tuple.sol +++ b/test/libsolidity/smtCheckerTests/operators/delete_tuple.sol @@ -1,7 +1,7 @@ -pragma experimental SMTChecker; - contract A{ function f() public pure { delete ([""][0]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/div_zero.sol b/test/libsolidity/smtCheckerTests/operators/div_zero.sol index da6ea8b53..d1841abd3 100644 --- a/test/libsolidity/smtCheckerTests/operators/div_zero.sol +++ b/test/libsolidity/smtCheckerTests/operators/div_zero.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { uint z = 0; uint x = 2 / z; } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (69-74): CHC: Division by zero happens here.\nCounterexample:\nz = 0, x = 0\n\nTransaction trace:\nC.constructor() +// Warning 4281: (36-41): CHC: Division by zero happens here.\nCounterexample:\nz = 0, x = 0\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/operators/division_1.sol b/test/libsolidity/smtCheckerTests/operators/division_1.sol index 73529d737..d37420b0f 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_1.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f(uint x, uint y) public pure returns (uint) { return x / y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (111-116): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) +// Warning 4281: (79-84): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/operators/division_2.sol b/test/libsolidity/smtCheckerTests/operators/division_2.sol index 9ccf84c47..21d1ff912 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_2.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { function f(uint x, uint y) public pure returns (uint) { require(y != 0); return x / y; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/division_3.sol b/test/libsolidity/smtCheckerTests/operators/division_3.sol index ed9cf203b..67c144063 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_3.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure returns (int) { require(y != 0); return x / y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (127-132): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\ny = (- 1)\n = 0\n\nTransaction trace:\nC.constructor()\nC.f((- 57896044618658097711785492504343953926634992332820282019728792003956564819968), (- 1)) +// Warning 4984: (95-100): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\ny = (- 1)\n = 0\n\nTransaction trace:\nC.constructor()\nC.f((- 57896044618658097711785492504343953926634992332820282019728792003956564819968), (- 1)) diff --git a/test/libsolidity/smtCheckerTests/operators/division_4.sol b/test/libsolidity/smtCheckerTests/operators/division_4.sol index 90143db21..57ca07d84 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_4.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure returns (int) { require(y != 0); @@ -6,4 +5,6 @@ contract C { return x / y; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/division_5.sol b/test/libsolidity/smtCheckerTests/operators/division_5.sol index bf51ebbcd..5b5c368c0 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_5.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_5.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function mul(uint8 a, uint8 b) internal pure returns (uint8) { uint8 c; @@ -9,5 +8,7 @@ contract C { return c; } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (161-171): BMC: Condition is always true. +// Warning 6838: (129-139): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/operators/division_6.sol b/test/libsolidity/smtCheckerTests/operators/division_6.sol index c129a0c60..741bfa0b5 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_6.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_6.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function mul(uint8 a, uint8 b) public pure returns (uint8) { if (a == 0) { @@ -9,6 +8,8 @@ contract C { return c; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (152-157): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\na = 128\nb = 2\n = 0\nc = 0\n\nTransaction trace:\nC.constructor()\nC.mul(128, 2) -// Warning 6838: (169-179): BMC: Condition is always true. +// Warning 4984: (120-125): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\na = 128\nb = 2\n = 0\nc = 0\n\nTransaction trace:\nC.constructor()\nC.mul(128, 2) +// Warning 6838: (137-147): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/operators/division_7.sol b/test/libsolidity/smtCheckerTests/operators/division_7.sol index bcde257eb..714f15c31 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_7.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_7.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0); @@ -6,3 +5,5 @@ contract C { return c; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_1.sol b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_1.sol index ddffc10fd..93765e175 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x, uint y) public pure { x = 7; @@ -6,4 +5,6 @@ contract C { assert(x / y == 3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_2.sol b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_2.sol index 985e7fdeb..7c0218e35 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure { x = 7; @@ -6,4 +5,6 @@ contract C { assert(x / y == 3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_3.sol b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_3.sol index 58dc80262..715930c5e 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure { x = -7; @@ -6,4 +5,6 @@ contract C { assert(x / y == -3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_4.sol b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_4.sol index 44f34fb2a..d0d9d20d7 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_4.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure { x = 7; @@ -6,4 +5,6 @@ contract C { assert(x / y == -3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_5.sol b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_5.sol index 87f048482..87a809879 100644 --- a/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_5.sol +++ b/test/libsolidity/smtCheckerTests/operators/division_truncates_correctly_5.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure { x = -7; @@ -6,4 +5,6 @@ contract C { assert(x / y == 3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/exp.sol b/test/libsolidity/smtCheckerTests/operators/exp.sol index 05330643d..12b666970 100644 --- a/test/libsolidity/smtCheckerTests/operators/exp.sol +++ b/test/libsolidity/smtCheckerTests/operators/exp.sol @@ -1,10 +1,11 @@ -pragma experimental SMTChecker; contract D { function f(uint x) public pure { assert(x**2 == 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 5188: (88-92): Assertion checker does not yet implement this operator. -// Warning 6328: (81-98): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nD.constructor()\nD.f(0) -// Warning 5188: (88-92): Assertion checker does not yet implement this operator. +// Warning 5188: (56-60): Assertion checker does not yet implement this operator. +// Warning 6328: (49-66): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\n\nTransaction trace:\nD.constructor()\nD.f(0) +// Warning 5188: (56-60): Assertion checker does not yet implement this operator. diff --git a/test/libsolidity/smtCheckerTests/operators/fixed_point_add.sol b/test/libsolidity/smtCheckerTests/operators/fixed_point_add.sol index c767d1f32..96d8c523d 100644 --- a/test/libsolidity/smtCheckerTests/operators/fixed_point_add.sol +++ b/test/libsolidity/smtCheckerTests/operators/fixed_point_add.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract test { function f() internal pure { ufixed a = uint64(1) + ufixed(2); } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (80-88): Unused local variable. +// Warning 2072: (48-56): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/operators/fixed_point_compound_add.sol b/test/libsolidity/smtCheckerTests/operators/fixed_point_compound_add.sol index 8a8af3a5c..ac714c2f5 100644 --- a/test/libsolidity/smtCheckerTests/operators/fixed_point_compound_add.sol +++ b/test/libsolidity/smtCheckerTests/operators/fixed_point_compound_add.sol @@ -1,6 +1,7 @@ -pragma experimental SMTChecker; contract C { fixed[] b; function f() internal { b[0] += 1; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/function_call_named_arguments.sol b/test/libsolidity/smtCheckerTests/operators/function_call_named_arguments.sol index f26ef0238..33011472b 100644 --- a/test/libsolidity/smtCheckerTests/operators/function_call_named_arguments.sol +++ b/test/libsolidity/smtCheckerTests/operators/function_call_named_arguments.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; library L { function l(uint x, uint y) internal pure returns (uint) { return x + y; @@ -28,5 +27,7 @@ contract C { assert(b == 6); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (507-521): CHC: Assertion violation happens here.\nCounterexample:\n\na = 2\nb = 2\n\nTransaction trace:\nC.constructor()\nC.call()\n L.l(2, 3) -- internal call\n L.l(3, 3) -- internal call\n C.f(1, 2, true) -- internal call\n C.f(1, 2, false) -- internal call +// Warning 6328: (475-489): CHC: Assertion violation happens here.\nCounterexample:\n\na = 2\nb = 2\n\nTransaction trace:\nC.constructor()\nC.call()\n L.l(2, 3) -- internal call\n L.l(3, 3) -- internal call\n C.f(1, 2, true) -- internal call\n C.f(1, 2, false) -- internal call diff --git a/test/libsolidity/smtCheckerTests/operators/index_access_for_bytes.sol b/test/libsolidity/smtCheckerTests/operators/index_access_for_bytes.sol index 849da3173..8a27f6f63 100644 --- a/test/libsolidity/smtCheckerTests/operators/index_access_for_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/index_access_for_bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes memory x = hex"00112233"; @@ -8,5 +6,7 @@ contract C { assert(x.length == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (185-206): CHC: Assertion violation happens here.\nCounterexample:\n\nx = [0, 17, 34, 51]\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (152-173): CHC: Assertion violation happens here.\nCounterexample:\n\nx = [0, 17, 34, 51]\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/index_access_for_bytesNN.sol b/test/libsolidity/smtCheckerTests/operators/index_access_for_bytesNN.sol index 65ea05950..0bf80482a 100644 --- a/test/libsolidity/smtCheckerTests/operators/index_access_for_bytesNN.sol +++ b/test/libsolidity/smtCheckerTests/operators/index_access_for_bytesNN.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { bytes20 x; function f(bytes16 b) public view { b[uint8(x[2])]; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/index_access_for_string.sol b/test/libsolidity/smtCheckerTests/operators/index_access_for_string.sol index 61fc8bf70..b1c8e3837 100644 --- a/test/libsolidity/smtCheckerTests/operators/index_access_for_string.sol +++ b/test/libsolidity/smtCheckerTests/operators/index_access_for_string.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { string memory x = "\x12\x34"; @@ -9,4 +7,6 @@ contract C { assert(y.length == 2); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/index_access_side_effect.sol b/test/libsolidity/smtCheckerTests/operators/index_access_side_effect.sol index e43899bea..cadcabdfe 100644 --- a/test/libsolidity/smtCheckerTests/operators/index_access_side_effect.sol +++ b/test/libsolidity/smtCheckerTests/operators/index_access_side_effect.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; constructor() { @@ -20,10 +18,11 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (240-244): CHC: Out of bounds access happens here. -// Warning 6368: (254-258): CHC: Out of bounds access happens here. -// Warning 6368: (304-310): CHC: Out of bounds access happens here. -// Warning 6368: (325-331): CHC: Out of bounds access happens here. -// Warning 6328: (318-337): CHC: Assertion violation happens here. +// Warning 6368: (207-211): CHC: Out of bounds access happens here. +// Warning 6368: (221-225): CHC: Out of bounds access happens here. +// Warning 6368: (271-277): CHC: Out of bounds access happens here. +// Warning 6368: (292-298): CHC: Out of bounds access happens here. +// Warning 6328: (285-304): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/integer_new.sol b/test/libsolidity/smtCheckerTests/operators/integer_new.sol index e68e39dcf..bd52a4eb4 100644 --- a/test/libsolidity/smtCheckerTests/operators/integer_new.sol +++ b/test/libsolidity/smtCheckerTests/operators/integer_new.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint[] memory x = new uint[](0); @@ -33,6 +31,8 @@ contract C { assert(x[1] == 0x34); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (507-511): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() -// Warning 6368: (529-533): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() +// Warning 6368: (474-478): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() +// Warning 6368: (496-500): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = [18, 52, 0]\n\nTransaction trace:\nC.constructor()\nC.h() diff --git a/test/libsolidity/smtCheckerTests/operators/mod.sol b/test/libsolidity/smtCheckerTests/operators/mod.sol index f147d7c0a..5c867b629 100644 --- a/test/libsolidity/smtCheckerTests/operators/mod.sol +++ b/test/libsolidity/smtCheckerTests/operators/mod.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure { require(y == -10); @@ -8,4 +7,6 @@ contract C { assert(z1 == z2); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/mod_even.sol b/test/libsolidity/smtCheckerTests/operators/mod_even.sol index b91b06fa8..804b8fb79 100644 --- a/test/libsolidity/smtCheckerTests/operators/mod_even.sol +++ b/test/libsolidity/smtCheckerTests/operators/mod_even.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure { @@ -8,4 +6,6 @@ contract C assert((y % 2) == 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/mod_n.sol b/test/libsolidity/smtCheckerTests/operators/mod_n.sol index 9db8855db..c1bd2d40a 100644 --- a/test/libsolidity/smtCheckerTests/operators/mod_n.sol +++ b/test/libsolidity/smtCheckerTests/operators/mod_n.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure { @@ -8,4 +6,6 @@ contract C assert(z < y); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/mod_n_uint16.sol b/test/libsolidity/smtCheckerTests/operators/mod_n_uint16.sol index eb13ab3a8..27c296812 100644 --- a/test/libsolidity/smtCheckerTests/operators/mod_n_uint16.sol +++ b/test/libsolidity/smtCheckerTests/operators/mod_n_uint16.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint16 x, uint16 y) public pure { @@ -8,4 +6,6 @@ contract C assert(z < 100_000); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/mod_signed.sol b/test/libsolidity/smtCheckerTests/operators/mod_signed.sol index 8588fcf9a..8dc9355ce 100644 --- a/test/libsolidity/smtCheckerTests/operators/mod_signed.sol +++ b/test/libsolidity/smtCheckerTests/operators/mod_signed.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(int x, int y) public pure { require(y != 0); @@ -9,5 +8,7 @@ contract C { assert((x >= 0 && z1 >=0) || (x <= 0 && z1 <= 0)); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (163-180): CHC: Assertion violation might happen here. +// Warning 6328: (131-148): CHC: Assertion violation might happen here. diff --git a/test/libsolidity/smtCheckerTests/operators/named_arguments_in_any_order.sol b/test/libsolidity/smtCheckerTests/operators/named_arguments_in_any_order.sol index 805698357..79b7a4860 100644 --- a/test/libsolidity/smtCheckerTests/operators/named_arguments_in_any_order.sol +++ b/test/libsolidity/smtCheckerTests/operators/named_arguments_in_any_order.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint u, string memory s, bool b) internal {} @@ -11,4 +10,6 @@ contract C { f({b: true, u: 1, s: "abc"}); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/named_arguments_overload_in_any_order.sol b/test/libsolidity/smtCheckerTests/operators/named_arguments_overload_in_any_order.sol index 840033a8b..7dd63d010 100644 --- a/test/libsolidity/smtCheckerTests/operators/named_arguments_overload_in_any_order.sol +++ b/test/libsolidity/smtCheckerTests/operators/named_arguments_overload_in_any_order.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint u, string memory s, bool b) internal {} function f(uint u, uint s, uint b) internal {} @@ -12,4 +11,6 @@ contract C { f({b: true, u: 1, s: "abc"}); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_left.sol b/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_left.sol index 442bd3a77..334464c0c 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_left.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_left.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint256 a, uint256 b) internal pure returns (uint256) { a <<= b; @@ -12,4 +10,6 @@ contract C { assert(f(0x4266, 0x4266) == 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_right.sol b/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_right.sol index 75dc0fe0d..3722a9976 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_right.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/compound_shift_right.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint256 a, uint256 b) internal pure returns (uint256) { a >>= b; @@ -12,4 +10,6 @@ contract C { assert(f(57896044618658097711785492504343953926634992332820282019728792003956564819968, 5) == 1809251394333065553493296640760748560207343510400633813116524750123642650624); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_cleanup.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_cleanup.sol index 71459c559..86f4be1bd 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_cleanup.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_cleanup.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure returns (uint16 x) { unchecked { @@ -14,6 +12,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (215-230): CHC: Assertion violation happens here. +// Warning 6328: (182-197): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left.sol index c489553fe..2dd96ac75 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint256 a, uint256 b) internal pure returns (uint256) { return a << b; @@ -22,8 +20,10 @@ contract C { assert(f(0x4266, 0x4266) == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (250-282): CHC: Assertion violation happens here. -// Warning 6328: (363-397): CHC: Assertion violation happens here. -// Warning 6328: (537-630): CHC: Assertion violation happens here. -// Warning 6328: (707-737): CHC: Assertion violation happens here. +// Warning 6328: (217-249): CHC: Assertion violation happens here. +// Warning 6328: (330-364): CHC: Assertion violation happens here. +// Warning 6328: (504-597): CHC: Assertion violation happens here. +// Warning 6328: (674-704): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_larger_type.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_larger_type.sol index 998efd6bf..3b0557c42 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_larger_type.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_larger_type.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure returns (int8) { uint8 x = 254; @@ -10,5 +8,7 @@ contract C { return y << x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (171-191): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\nx = 254\ny = 1\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (138-158): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\nx = 254\ny = 1\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint32.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint32.sol index 709de607e..c900c66ed 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint32.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint32.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint32 a, uint32 b) internal pure returns (uint256) { return a << b; @@ -22,8 +20,10 @@ contract C { assert(f(0x4266, 0x20) == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (246-276): CHC: Assertion violation happens here. -// Warning 6328: (360-398): CHC: Assertion violation happens here. -// Warning 6328: (482-518): CHC: Assertion violation happens here. -// Warning 6328: (593-621): CHC: Assertion violation happens here. +// Warning 6328: (213-243): CHC: Assertion violation happens here. +// Warning 6328: (327-365): CHC: Assertion violation happens here. +// Warning 6328: (449-485): CHC: Assertion violation happens here. +// Warning 6328: (560-588): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint8.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint8.sol index 03658f236..9210c12e6 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint8.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_left_uint8.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint8 a, uint8 b) internal pure returns (uint256) { return a << b; @@ -14,6 +12,8 @@ contract C { assert(f(0x66, 0x8) == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (242-271): CHC: Assertion violation happens here. -// Warning 6328: (343-368): CHC: Assertion violation happens here. +// Warning 6328: (209-238): CHC: Assertion violation happens here. +// Warning 6328: (310-335): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_overflow.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_overflow.sol index e636b8968..fcf699f22 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_overflow.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_overflow.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function leftU(uint8 x, uint8 y) internal pure returns (uint8) { return x << y; @@ -31,9 +29,11 @@ contract C { assert(leftS(1, 6) == -64); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (340-366): CHC: Assertion violation happens here. -// Warning 6328: (441-469): CHC: Assertion violation happens here. -// Warning 6328: (544-570): CHC: Assertion violation happens here. -// Warning 6328: (644-670): CHC: Assertion violation happens here. -// Warning 6328: (742-768): CHC: Assertion violation happens here. +// Warning 6328: (307-333): CHC: Assertion violation happens here. +// Warning 6328: (408-436): CHC: Assertion violation happens here. +// Warning 6328: (511-537): CHC: Assertion violation happens here. +// Warning 6328: (611-637): CHC: Assertion violation happens here. +// Warning 6328: (709-735): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right.sol index da8c52414..f14f1c927 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint256 a, uint256 b) internal pure returns (uint256) { return a >> b; @@ -22,8 +20,10 @@ contract C { assert(f(57896044618658097711785492504343953926634992332820282019728792003956564819968, 5) == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (248-277): CHC: Assertion violation happens here. -// Warning 6328: (354-385): CHC: Assertion violation happens here. -// Warning 6328: (460-488): CHC: Assertion violation happens here. -// Warning 6328: (706-802): CHC: Assertion violation happens here. +// Warning 6328: (215-244): CHC: Assertion violation happens here. +// Warning 6328: (321-352): CHC: Assertion violation happens here. +// Warning 6328: (427-455): CHC: Assertion violation happens here. +// Warning 6328: (673-769): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_literal.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_literal.sol index 4acb0dffd..5cc26ee78 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_literal.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_literal.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int16 x, uint16 y, int16 z) internal pure returns (bool) { return x >> y == z; @@ -31,10 +29,12 @@ contract C { assert(f(-4266, 17, -0)); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (241-266): CHC: Assertion violation happens here. -// Warning 6328: (339-365): CHC: Assertion violation happens here. -// Warning 6328: (437-463): CHC: Assertion violation happens here. -// Warning 6328: (534-557): CHC: Assertion violation happens here. -// Warning 6328: (628-652): CHC: Assertion violation happens here. -// Warning 6328: (723-747): CHC: Assertion violation happens here. +// Warning 6328: (208-233): CHC: Assertion violation happens here. +// Warning 6328: (306-332): CHC: Assertion violation happens here. +// Warning 6328: (404-430): CHC: Assertion violation happens here. +// Warning 6328: (501-524): CHC: Assertion violation happens here. +// Warning 6328: (595-619): CHC: Assertion violation happens here. +// Warning 6328: (690-714): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue.sol index 79a0eeedf..2e0411f7b 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int256 a, uint256 b) internal pure returns (int256) { return a >> b; @@ -31,10 +29,12 @@ contract C { } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (244-271): CHC: Assertion violation happens here. -// Warning 6328: (346-375): CHC: Assertion violation happens here. -// Warning 6328: (449-476): CHC: Assertion violation happens here. -// Warning 6328: (549-574): CHC: Assertion violation happens here. -// Warning 6328: (647-672): CHC: Assertion violation happens here. -// Warning 6328: (745-770): CHC: Assertion violation happens here. +// Warning 6328: (211-238): CHC: Assertion violation happens here. +// Warning 6328: (313-342): CHC: Assertion violation happens here. +// Warning 6328: (416-443): CHC: Assertion violation happens here. +// Warning 6328: (516-541): CHC: Assertion violation happens here. +// Warning 6328: (614-639): CHC: Assertion violation happens here. +// Warning 6328: (712-737): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int16.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int16.sol index 28008e6de..3c145a1ad 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int16.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int16.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int16 a, uint16 b) internal pure returns (int256) { return a >> b; @@ -30,10 +28,12 @@ contract C { assert(f(-4266, 17) == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (242-269): CHC: Assertion violation happens here. -// Warning 6328: (344-373): CHC: Assertion violation happens here. -// Warning 6328: (447-474): CHC: Assertion violation happens here. -// Warning 6328: (547-572): CHC: Assertion violation happens here. -// Warning 6328: (645-670): CHC: Assertion violation happens here. -// Warning 6328: (743-768): CHC: Assertion violation happens here. +// Warning 6328: (209-236): CHC: Assertion violation happens here. +// Warning 6328: (311-340): CHC: Assertion violation happens here. +// Warning 6328: (414-441): CHC: Assertion violation happens here. +// Warning 6328: (514-539): CHC: Assertion violation happens here. +// Warning 6328: (612-637): CHC: Assertion violation happens here. +// Warning 6328: (710-735): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int32.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int32.sol index 62332e446..a64734d7d 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int32.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int32.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int32 a, uint32 b) internal pure returns (int256) { return a >> b; @@ -30,10 +28,12 @@ contract C { assert(f(-4266, 17) == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (242-269): CHC: Assertion violation happens here. -// Warning 6328: (344-373): CHC: Assertion violation happens here. -// Warning 6328: (447-474): CHC: Assertion violation happens here. -// Warning 6328: (547-572): CHC: Assertion violation happens here. -// Warning 6328: (645-670): CHC: Assertion violation happens here. -// Warning 6328: (743-768): CHC: Assertion violation happens here. +// Warning 6328: (209-236): CHC: Assertion violation happens here. +// Warning 6328: (311-340): CHC: Assertion violation happens here. +// Warning 6328: (414-441): CHC: Assertion violation happens here. +// Warning 6328: (514-539): CHC: Assertion violation happens here. +// Warning 6328: (612-637): CHC: Assertion violation happens here. +// Warning 6328: (710-735): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int8.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int8.sol index 103bf22d3..eaab703db 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int8.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_negative_lvalue_int8.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int8 a, uint8 b) internal pure returns (int256) { return a >> b; @@ -30,10 +28,12 @@ contract C { assert(f(-66, 17) == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (236-259): CHC: Assertion violation happens here. -// Warning 6328: (330-353): CHC: Assertion violation happens here. -// Warning 6328: (423-446): CHC: Assertion violation happens here. -// Warning 6328: (516-539): CHC: Assertion violation happens here. -// Warning 6328: (610-633): CHC: Assertion violation happens here. -// Warning 6328: (704-727): CHC: Assertion violation happens here. +// Warning 6328: (203-226): CHC: Assertion violation happens here. +// Warning 6328: (297-320): CHC: Assertion violation happens here. +// Warning 6328: (390-413): CHC: Assertion violation happens here. +// Warning 6328: (483-506): CHC: Assertion violation happens here. +// Warning 6328: (577-600): CHC: Assertion violation happens here. +// Warning 6328: (671-694): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint32.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint32.sol index 1d7269f6c..cfe4cc8d0 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint32.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint32.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint32 a, uint32 b) internal pure returns (uint256) { return a >> b; @@ -22,8 +20,10 @@ contract C { assert(f(0x4266, 0x11) == 255); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (246-275): CHC: Assertion violation happens here. -// Warning 6328: (350-379): CHC: Assertion violation happens here. -// Warning 6328: (454-484): CHC: Assertion violation happens here. -// Warning 6328: (559-589): CHC: Assertion violation happens here. +// Warning 6328: (213-242): CHC: Assertion violation happens here. +// Warning 6328: (317-346): CHC: Assertion violation happens here. +// Warning 6328: (421-451): CHC: Assertion violation happens here. +// Warning 6328: (526-556): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint8.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint8.sol index 677f97081..7738e30fe 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint8.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_right_uint8.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint8 a, uint8 b) internal pure returns (uint256) { return a >> b; @@ -14,6 +12,8 @@ contract C { assert(f(0x66, 8) == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (240-265): CHC: Assertion violation happens here. -// Warning 6328: (335-358): CHC: Assertion violation happens here. +// Warning 6328: (207-232): CHC: Assertion violation happens here. +// Warning 6328: (302-325): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shift_underflow_negative_rvalue.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shift_underflow_negative_rvalue.sol index 56591e697..9d8c3e796 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shift_underflow_negative_rvalue.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shift_underflow_negative_rvalue.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int256 a, uint256 b) internal pure returns (int256) { return a << b; @@ -19,6 +17,8 @@ contract C { assert(g(1, 2**256 - 1) == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (345-374): CHC: Assertion violation happens here. -// Warning 6328: (450-479): CHC: Assertion violation happens here. +// Warning 6328: (312-341): CHC: Assertion violation happens here. +// Warning 6328: (417-446): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/shifts/shr_unused.sol b/test/libsolidity/smtCheckerTests/operators/shifts/shr_unused.sol index d9e78865f..c39cdc7d1 100644 --- a/test/libsolidity/smtCheckerTests/operators/shifts/shr_unused.sol +++ b/test/libsolidity/smtCheckerTests/operators/shifts/shr_unused.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { fixed x; assert(x >>> 6 == 0); } } +// ==== +// SMTEngine: all // ---- // UnimplementedFeatureError: Not yet implemented - FixedPointType. diff --git a/test/libsolidity/smtCheckerTests/operators/slice.sol b/test/libsolidity/smtCheckerTests/operators/slice.sol index 26fcf195d..068122a66 100644 --- a/test/libsolidity/smtCheckerTests/operators/slice.sol +++ b/test/libsolidity/smtCheckerTests/operators/slice.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes calldata b) external pure { require(b.length > 10); @@ -11,4 +9,6 @@ contract C { //assert(bytes(b[10:20])[5] == 0xff); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/slice_bytes.sol b/test/libsolidity/smtCheckerTests/operators/slice_bytes.sol index 299d3ff5b..19490af51 100644 --- a/test/libsolidity/smtCheckerTests/operators/slice_bytes.sol +++ b/test/libsolidity/smtCheckerTests/operators/slice_bytes.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { function f(bytes calldata b) external pure { require(b.length > 10); ((b[:])[5]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/slice_default_end.sol b/test/libsolidity/smtCheckerTests/operators/slice_default_end.sol index 9bf06e68e..9c0db9007 100644 --- a/test/libsolidity/smtCheckerTests/operators/slice_default_end.sol +++ b/test/libsolidity/smtCheckerTests/operators/slice_default_end.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes calldata b) external pure { require(b.length == 30); @@ -11,6 +9,8 @@ contract C { //assert(bytes(b[10:])[19] == 0xaa); // Removed because of Spacer nondeterminism } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (221-253): CHC: Assertion violation might happen here. -// Warning 4661: (221-253): BMC: Assertion violation happens here. +// Warning 6328: (188-220): CHC: Assertion violation might happen here. +// Warning 4661: (188-220): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/slice_default_start.sol b/test/libsolidity/smtCheckerTests/operators/slice_default_start.sol index 31e236645..a4dba47bc 100644 --- a/test/libsolidity/smtCheckerTests/operators/slice_default_start.sol +++ b/test/libsolidity/smtCheckerTests/operators/slice_default_start.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes calldata b) external pure { require(b.length > 20); @@ -9,7 +7,9 @@ contract C { assert(bytes(b[:20])[5] == 0xff); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (183-215): CHC: Assertion violation might happen here. -// Warning 6328: (219-251): CHC: Assertion violation happens here. -// Warning 4661: (183-215): BMC: Assertion violation happens here. +// Warning 6328: (150-182): CHC: Assertion violation might happen here. +// Warning 6328: (186-218): CHC: Assertion violation happens here. +// Warning 4661: (150-182): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/slices_1.sol b/test/libsolidity/smtCheckerTests/operators/slices_1.sol index 1f5fcf4e1..393c94898 100644 --- a/test/libsolidity/smtCheckerTests/operators/slices_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/slices_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes calldata x) external pure { x[:18726387213]; @@ -7,4 +5,6 @@ contract C { x[18726387213:111111111111111111]; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/operators/slices_2.sol b/test/libsolidity/smtCheckerTests/operators/slices_2.sol index 5858bf4ae..95ca60cc4 100644 --- a/test/libsolidity/smtCheckerTests/operators/slices_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/slices_2.sol @@ -1,5 +1,6 @@ -pragma experimental SMTChecker; contract e { function f(uint[] calldata) internal {} function h(uint[] calldata c) external { f(c[:]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/slices_3.sol b/test/libsolidity/smtCheckerTests/operators/slices_3.sol index 903fdc0c3..fa901ea01 100644 --- a/test/libsolidity/smtCheckerTests/operators/slices_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/slices_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { int[] s; function f(int[] calldata b, uint256 start, uint256 end) public returns (int) { @@ -12,6 +10,8 @@ function f(int[] calldata b, uint256 start, uint256 end) public returns (int) { return s[0]; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (259-290): CHC: Assertion violation might happen here. -// Warning 4661: (259-290): BMC: Assertion violation happens here. +// Warning 6328: (226-257): CHC: Assertion violation might happen here. +// Warning 4661: (226-257): BMC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/tuple_rationals_conditional.sol b/test/libsolidity/smtCheckerTests/operators/tuple_rationals_conditional.sol index cdcff3f4f..93403d790 100644 --- a/test/libsolidity/smtCheckerTests/operators/tuple_rationals_conditional.sol +++ b/test/libsolidity/smtCheckerTests/operators/tuple_rationals_conditional.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool x) public pure { (uint a, uint b) = x ? (10000000001, 2) : (3, 4); @@ -9,3 +7,5 @@ contract C { assert(b % 2 == 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add.sol b/test/libsolidity/smtCheckerTests/operators/unary_add.sol index 3ea8d5566..1b304dd4b 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -13,5 +11,7 @@ contract C assert(b < 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (194-207): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 4\na = 3\nb = 3\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (161-174): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 4\na = 3\nb = 3\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_array.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_array.sol index d5c827cef..8c3296e09 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_array.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -19,6 +17,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (311-324): CHC: Assertion violation happens here. +// Warning 6328: (278-291): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_1.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_1.sol index b46d163a2..03dedaae9 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint[] x; function f() public { @@ -9,5 +8,7 @@ contract C { assert(x[0] == 42); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (182-200): CHC: Assertion violation happens here.\nCounterexample:\nx = [1]\n\nTransaction trace:\nC.constructor()\nState: x = []\nC.f() +// Warning 6328: (150-168): CHC: Assertion violation happens here.\nCounterexample:\nx = [1]\n\nTransaction trace:\nC.constructor()\nState: x = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_2.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_2.sol index db21f7956..acc199b6b 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_array_push_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { int[][] d; @@ -17,3 +15,5 @@ contract C { ++data[1].d[3].push(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_mapping.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_mapping.sol index ac136acd2..e52f3f3e3 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_mapping.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -15,6 +13,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (244-257): CHC: Assertion violation happens here. +// Warning 6328: (211-224): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_minus_overflow_detected.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_minus_overflow_detected.sol index cba26cbba..3ab970900 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_minus_overflow_detected.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_minus_overflow_detected.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint8 x; @@ -20,7 +19,9 @@ contract C { } */ } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (87-90): CHC: Overflow (resulting value larger than 255) might happen here. -// Warning 3944: (127-130): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.dec_pre() -// Warning 2661: (87-90): BMC: Overflow (resulting value larger than 255) happens here. +// Warning 4984: (55-58): CHC: Overflow (resulting value larger than 255) might happen here. +// Warning 3944: (95-98): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.dec_pre() +// Warning 2661: (55-58): BMC: Overflow (resulting value larger than 255) happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly.sol index 2e4ebf64f..66b37ec12 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint8 x = 254; @@ -12,5 +10,7 @@ contract C { assert(y < 256); } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (94-97): CHC: Overflow (resulting value larger than 255) happens here. +// Warning 4984: (61-64): CHC: Overflow (resulting value larger than 255) happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly_struct.sol b/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly_struct.sol index 7e1791776..55a320edc 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly_struct.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_add_overflows_correctly_struct.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint8 x; @@ -20,5 +18,7 @@ contract C { assert(y < 256); } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (145-150): CHC: Overflow (resulting value larger than 255) happens here. +// Warning 4984: (112-117): CHC: Overflow (resulting value larger than 255) happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_1.sol b/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_1.sol index 69411e3c2..9a6b83e0e 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_1.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool b) public pure { uint x; @@ -9,3 +8,5 @@ contract C { assert(!b); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_2.sol b/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_2.sol index c16f01402..261bdbaf7 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_2.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool b) public pure { uint x; @@ -9,3 +8,5 @@ contract C { assert(!b); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_3.sol b/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_3.sol index 59fa83a08..90b8a02bd 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_3.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_operators_tuple_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool b) public pure { uint x; @@ -8,5 +7,7 @@ contract C { assert(!b); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (140-150): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f(true) +// Warning 6328: (108-118): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\nx = 1\n\nTransaction trace:\nC.constructor()\nC.f(true) diff --git a/test/libsolidity/smtCheckerTests/operators/unary_sub.sol b/test/libsolidity/smtCheckerTests/operators/unary_sub.sol index 614e7d272..ada46b98f 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_sub.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_sub.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -13,5 +11,7 @@ contract C assert(b > 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (194-207): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 3\na = 4\nb = 4\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (161-174): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 3\na = 4\nb = 4\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/operators/unary_sub_array.sol b/test/libsolidity/smtCheckerTests/operators/unary_sub_array.sol index dd2e376b7..657cece75 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_sub_array.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_sub_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -17,6 +15,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (308-321): CHC: Assertion violation happens here. +// Warning 6328: (275-288): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/operators/unary_sub_mapping.sol b/test/libsolidity/smtCheckerTests/operators/unary_sub_mapping.sol index 0d91d3638..49ece2592 100644 --- a/test/libsolidity/smtCheckerTests/operators/unary_sub_mapping.sol +++ b/test/libsolidity/smtCheckerTests/operators/unary_sub_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -15,6 +13,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (244-257): CHC: Assertion violation happens here. +// Warning 6328: (211-224): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_1.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_1.sol index 2f109534e..230a9a117 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_1.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; uint l; @@ -18,9 +16,11 @@ contract C { return a[l]; // oob access } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (145-148): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 3944: (214-217): CHC: Underflow (resulting value less than 0) might happen here. -// Warning 6368: (292-296): CHC: Out of bounds access happens here. -// Warning 2661: (145-148): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 4144: (214-217): BMC: Underflow (resulting value less than 0) happens here. +// Warning 4984: (112-115): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 3944: (181-184): CHC: Underflow (resulting value less than 0) might happen here. +// Warning 6368: (259-263): CHC: Out of bounds access happens here. +// Warning 2661: (112-115): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4144: (181-184): BMC: Underflow (resulting value less than 0) happens here. diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2.sol index b63ff6445..6adc6273c 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; uint l; @@ -20,4 +18,6 @@ contract C { return a[l - 1]; // safe access } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_1.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_1.sol index f4160dad8..b689da926 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_1.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function p() public { a.push(); } @@ -13,3 +11,5 @@ contract C { return a[i][j]; // safe access } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_2.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_2.sol index 746cdeb59..0eb84c274 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_2.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function p() public { a.push(); } @@ -12,5 +10,7 @@ contract C { return a[i][j]; // unsafe access } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (257-264): CHC: Out of bounds access happens here.\nCounterexample:\na = [[]]\ni = 0\nj = 0\n = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.p()\nState: a = [[]]\nC.r(0, 0) +// Warning 6368: (224-231): CHC: Out of bounds access happens here.\nCounterexample:\na = [[]]\ni = 0\nj = 0\n = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.p()\nState: a = [[]]\nC.r(0, 0) diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_3.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_3.sol index fc413bfc4..7d06b9aa8 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_3.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function p() public { a.push(); } @@ -13,3 +11,5 @@ contract C { a[i][j]; // safe access } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_4.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_4.sol index 6baaaee2e..7bfc6d7a9 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_4.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_2d_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] a; function p() public { a.push(); } @@ -13,13 +11,13 @@ contract C { a[i][j]; // oob access } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (217-230): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 6368: (261-265): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\nj = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r() -// Warning 4984: (261-277): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 6368: (288-292): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\nj = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r() -// Warning 6368: (288-295): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\nj = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r() -// Warning 4984: (279-282): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 4984: (232-235): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 2661: (217-230): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 2661: (261-277): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (184-197): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 6368: (228-232): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\nj = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r() +// Warning 4984: (228-244): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 6368: (255-259): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\nj = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r() +// Warning 6368: (255-262): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\nj = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r() +// Warning 2661: (184-197): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 2661: (228-244): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_3.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_3.sol index 53811b83d..bd70673c3 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_3.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_3.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function r(uint i) public view returns (uint) { return a[i]; // oob access } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (115-119): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\n = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r(0) +// Warning 6368: (82-86): CHC: Out of bounds access happens here.\nCounterexample:\na = []\ni = 0\n = 0\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.r(0) diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/array_4.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/array_4.sol index 42b1bee73..3bd96514b 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/array_4.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/array_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; function p() public { a.push(); } @@ -8,3 +6,5 @@ contract C { return a[i]; // safe access } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_1.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_1.sol index ae44c5403..1a49c1624 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_1.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_1.sol @@ -1,7 +1,7 @@ -pragma experimental SMTChecker; - contract C { function r(bytes4 x) public pure returns (bytes1) { return x[0]; // safe access } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_2.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_2.sol index fb2a680a2..ab1275ab2 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_2.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_2.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function r(bytes4 x, uint y) public pure returns (bytes1) { return x[y]; // oob access } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (116-120): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = 0\ny = 4\n = 0\n\nTransaction trace:\nC.constructor()\nC.r(0, 4) +// Warning 6368: (83-87): CHC: Out of bounds access happens here.\nCounterexample:\n\nx = 0\ny = 4\n = 0\n\nTransaction trace:\nC.constructor()\nC.r(0, 4) diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_3.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_3.sol index cacb5c821..af4abc9d7 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_3.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function r(bytes32 x, uint y) public pure { require(y <= 31); @@ -7,3 +5,5 @@ contract C { x[y]; // safe access } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_4.sol b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_4.sol index c2d346578..61df18bd7 100644 --- a/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_4.sol +++ b/test/libsolidity/smtCheckerTests/out_of_bounds/fixed_bytes_4.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function r(bytes32 x, uint y) public pure { x[0]; // safe access x[y]; // oob access } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (116-120): CHC: Out of bounds access happens here. +// Warning 6368: (83-87): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_constant_bound.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_constant_bound.sol index 4fcc079aa..816f96810 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_constant_bound.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_constant_bound.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract DepositContract { uint constant MAX_DEPOSIT_COUNT = 2**32 - 1; @@ -12,7 +10,8 @@ contract DepositContract { deposit_count_2 += 10; // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 1218: (289-310): CHC: Error trying to invoke SMT solver. -// Warning 4984: (289-310): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. -// Warning 2661: (289-310): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (256-277): CHC: Overflow (resulting value larger than 2**256 - 1) might happen here. +// Warning 2661: (256-277): BMC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_mul.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_mul.sol index 542defb12..efb0135e9 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_mul.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_mul.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint8 x) public pure returns (uint8) { @@ -12,5 +10,7 @@ contract C return y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (120-125): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\nx = 100\n = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 4984: (87-92): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\nx = 100\n = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_mul_cex_with_array.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_mul_cex_with_array.sol index 5f0e2bb2e..c90c32bee 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_mul_cex_with_array.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_mul_cex_with_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes calldata x, uint y) external pure { require(x.length > 10); @@ -8,7 +6,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (144-147): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. -// Warning 6368: (139-148): CHC: Out of bounds access happens here. +// Warning 4984: (111-114): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 6368: (106-115): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_mul_signed.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_mul_signed.sol index b2df23fff..d0cadffac 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_mul_signed.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_mul_signed.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int8 x) public pure returns (int8) { @@ -12,5 +10,7 @@ contract C return y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (169-176): CHC: Overflow (resulting value larger than 127) happens here.\nCounterexample:\n\nx = 100\n = 0\ny = (- 56)\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 4984: (136-143): CHC: Overflow (resulting value larger than 127) happens here.\nCounterexample:\n\nx = 100\n = 0\ny = (- 56)\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_sum.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_sum.sol index 787a851b3..6d4275dbf 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_sum.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_sum.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint8 x) public pure returns (uint8) { @@ -14,5 +12,7 @@ contract C return y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (218-225): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\nx = 255\n = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 4984: (185-192): CHC: Overflow (resulting value larger than 255) happens here.\nCounterexample:\n\nx = 255\n = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/overflow/overflow_sum_signed.sol b/test/libsolidity/smtCheckerTests/overflow/overflow_sum_signed.sol index 1b07f2876..97ee103b4 100644 --- a/test/libsolidity/smtCheckerTests/overflow/overflow_sum_signed.sol +++ b/test/libsolidity/smtCheckerTests/overflow/overflow_sum_signed.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int8 x) public pure { @@ -14,4 +12,6 @@ contract C assert(y == 2); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/overflow/safe_sub_1.sol b/test/libsolidity/smtCheckerTests/overflow/safe_sub_1.sol index d618aa136..cb1920613 100644 --- a/test/libsolidity/smtCheckerTests/overflow/safe_sub_1.sol +++ b/test/libsolidity/smtCheckerTests/overflow/safe_sub_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function sub(uint256 a, uint256 b) internal pure returns (uint256) { @@ -8,3 +6,5 @@ contract C return c; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_div_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_div_overflow.sol index feecd7a9a..e617e274e 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_div_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_div_overflow.sol @@ -1,10 +1,11 @@ -pragma experimental SMTChecker; - contract C { function f(int x, int y) public pure returns (int) { return x / y; } } +// ==== +// SMTEngine: all +// SMTIgnoreCex: yes // ---- -// Warning 4281: (110-115): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) -// Warning 4984: (110-115): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\ny = (- 1)\n = 0\n\nTransaction trace:\nC.constructor()\nC.f((- 57896044618658097711785492504343953926634992332820282019728792003956564819968), (- 1)) +// Warning 4281: (77-82): CHC: Division by zero happens here. +// Warning 4984: (77-82): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_guard_sub_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_guard_sub_overflow.sol index d30be503c..afaeb5448 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_guard_sub_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_guard_sub_overflow.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f(int x, int y) public pure returns (int) { require(x >= y); return x - y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (129-134): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\nx = 0\ny = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)) +// Warning 4984: (96-101): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\nx = 0\ny = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)) diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_guard_sum_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_guard_sum_overflow.sol index 685392026..4635ef966 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_guard_sum_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_guard_sum_overflow.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int x, int y) public pure returns (int) { require(x + y >= x); @@ -7,7 +5,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 3944: (111-116): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. -// Warning 4984: (111-116): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. +// Warning 3944: (78-83): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. +// Warning 4984: (78-83): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_mod_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_mod_overflow.sol index 37af268b3..7106bbbb8 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_mod_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_mod_overflow.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f(int x, int y) public pure returns (int) { return x % y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (110-115): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) +// Warning 4281: (77-82): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_mul_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_mul_overflow.sol index df7dc7e5f..225d00689 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_mul_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_mul_overflow.sol @@ -1,12 +1,11 @@ -pragma experimental SMTChecker; - contract C { function f(int x, int y) public pure returns (int) { return x * y; } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 3944: (110-115): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. -// Warning 4984: (110-115): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. +// Warning 3944: (77-82): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. +// Warning 4984: (77-82): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_sub_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_sub_overflow.sol index 824f81193..81de2d5fe 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_sub_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_sub_overflow.sol @@ -1,12 +1,11 @@ -pragma experimental SMTChecker; - contract C { function f(int x, int y) public pure returns (int) { return x - y; } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 3944: (110-115): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. -// Warning 4984: (110-115): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. +// Warning 3944: (77-82): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. +// Warning 4984: (77-82): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/signed_sum_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/signed_sum_overflow.sol index efc719169..7bb6588e3 100644 --- a/test/libsolidity/smtCheckerTests/overflow/signed_sum_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/signed_sum_overflow.sol @@ -1,12 +1,11 @@ -pragma experimental SMTChecker; - contract C { function f(int x, int y) public pure returns (int) { return x + y; } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 3944: (110-115): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. -// Warning 4984: (110-115): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. +// Warning 3944: (77-82): CHC: Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here. +// Warning 4984: (77-82): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/simple_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/simple_overflow.sol index e17a4fff2..d872cb669 100644 --- a/test/libsolidity/smtCheckerTests/overflow/simple_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/simple_overflow.sol @@ -1,6 +1,7 @@ -pragma experimental SMTChecker; contract C { function f(uint a, uint b) public pure returns (uint) { return a + b; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (112-117): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\na = 1\nb = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(1, 115792089237316195423570985008687907853269984665640564039457584007913129639935) +// Warning 4984: (80-85): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\na = 115792089237316195423570985008687907853269984665640564039457584007913129639935\nb = 1\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(115792089237316195423570985008687907853269984665640564039457584007913129639935, 1) diff --git a/test/libsolidity/smtCheckerTests/overflow/underflow_sub.sol b/test/libsolidity/smtCheckerTests/overflow/underflow_sub.sol index 4d91b49e3..29dd15975 100644 --- a/test/libsolidity/smtCheckerTests/overflow/underflow_sub.sol +++ b/test/libsolidity/smtCheckerTests/overflow/underflow_sub.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint8 x) public pure returns (uint) { @@ -12,4 +10,6 @@ contract C return y; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/overflow/underflow_sub_signed.sol b/test/libsolidity/smtCheckerTests/overflow/underflow_sub_signed.sol index 27635f4f3..295e32849 100644 --- a/test/libsolidity/smtCheckerTests/overflow/underflow_sub_signed.sol +++ b/test/libsolidity/smtCheckerTests/overflow/underflow_sub_signed.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int8 x) public pure returns (int8) { @@ -16,4 +14,6 @@ contract C return y; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_div_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_div_overflow.sol index 8aa9ef06b..76ab3402e 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_div_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_div_overflow.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure returns (uint) { return x / y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (113-118): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) +// Warning 4281: (80-85): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sub_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sub_overflow.sol index 879587e06..f85982e2e 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sub_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sub_overflow.sol @@ -1,8 +1,8 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure returns (uint) { require(x >= y); return x - y; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sum_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sum_overflow.sol index e512f6b56..904cb52c4 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sum_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_guard_sum_overflow.sol @@ -1,11 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure returns (uint) { return x + y; } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (113-118): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (80-85): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_mod_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_mod_overflow.sol index 0d4d9a183..7c42d43a2 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_mod_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_mod_overflow.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure returns (uint) { return x % y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (113-118): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) +// Warning 4281: (80-85): CHC: Division by zero happens here.\nCounterexample:\n\nx = 0\ny = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_mul_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_mul_overflow.sol index 9e9b6605a..0a6d85a7e 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_mul_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_mul_overflow.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure returns (uint) { return x * y; } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (113-118): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 2\ny = 57896044618658097711785492504343953926634992332820282019728792003956564819968\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(2, 57896044618658097711785492504343953926634992332820282019728792003956564819968) +// Warning 4984: (80-85): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\nx = 57896044618658097711785492504343953926634992332820282019728792003956564819968\ny = 2\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(57896044618658097711785492504343953926634992332820282019728792003956564819968, 2) diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_sub_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_sub_overflow.sol index 773e5cd06..1c6df4b2c 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_sub_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_sub_overflow.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure returns (uint) { return x - y; } } +// ==== +// SMTEngine: all // ---- -// Warning 3944: (113-118): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\nx = 0\ny = 1\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 1) +// Warning 3944: (80-85): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\nx = 0\ny = 1\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 1) diff --git a/test/libsolidity/smtCheckerTests/overflow/unsigned_sum_overflow.sol b/test/libsolidity/smtCheckerTests/overflow/unsigned_sum_overflow.sol index e512f6b56..904cb52c4 100644 --- a/test/libsolidity/smtCheckerTests/overflow/unsigned_sum_overflow.sol +++ b/test/libsolidity/smtCheckerTests/overflow/unsigned_sum_overflow.sol @@ -1,11 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, uint y) public pure returns (uint) { return x + y; } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 4984: (113-118): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +// Warning 4984: (80-85): CHC: Overflow (resulting value larger than 2**256 - 1) happens here. diff --git a/test/libsolidity/smtCheckerTests/simple/smoke_test.sol b/test/libsolidity/smtCheckerTests/simple/smoke_test.sol index 8b7b77da6..ec605f31a 100644 --- a/test/libsolidity/smtCheckerTests/simple/smoke_test.sol +++ b/test/libsolidity/smtCheckerTests/simple/smoke_test.sol @@ -1,3 +1,4 @@ -pragma experimental SMTChecker; contract C { } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/simple/static_array.sol b/test/libsolidity/smtCheckerTests/simple/static_array.sol index 4147c0169..c32e2a890 100644 --- a/test/libsolidity/smtCheckerTests/simple/static_array.sol +++ b/test/libsolidity/smtCheckerTests/simple/static_array.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { // Used to crash because Literal had no type @@ -6,4 +5,6 @@ contract C // Used to crash because Literal had no type int[3*1] x; } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2.sol b/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2.sol index 384db2946..17b8a9226 100644 --- a/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2.sol +++ b/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -7,10 +6,12 @@ contract C { return abi.decode("abc", (S, bytes, uint[][2])); } } +// ==== +// SMTEngine: all // ---- -// Warning 8364: (215-221): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (215-224): Assertion checker does not yet implement type type(uint256[] memory[2] memory) -// Warning 8364: (205-206): Assertion checker does not yet implement type type(struct C.S storage pointer) -// Warning 8364: (215-221): Assertion checker does not yet implement type type(uint256[] memory) -// Warning 8364: (215-224): Assertion checker does not yet implement type type(uint256[] memory[2] memory) -// Warning 8364: (205-206): Assertion checker does not yet implement type type(struct C.S storage pointer) +// Warning 8364: (183-189): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (183-192): Assertion checker does not yet implement type type(uint256[] memory[2] memory) +// Warning 8364: (173-174): Assertion checker does not yet implement type type(struct C.S storage pointer) +// Warning 8364: (183-189): Assertion checker does not yet implement type type(uint256[] memory) +// Warning 8364: (183-192): Assertion checker does not yet implement type type(uint256[] memory[2] memory) +// Warning 8364: (173-174): Assertion checker does not yet implement type type(struct C.S storage pointer) diff --git a/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2_value_types.sol b/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2_value_types.sol index fa409befe..46ff93166 100644 --- a/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2_value_types.sol +++ b/test/libsolidity/smtCheckerTests/special/abi_decode_memory_v2_value_types.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -8,6 +7,8 @@ contract C { assert(x1 == x2); } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (123-130): Unused local variable. -// Warning 2072: (178-185): Unused local variable. +// Warning 2072: (91-98): Unused local variable. +// Warning 2072: (146-153): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/special/abi_decode_simple.sol b/test/libsolidity/smtCheckerTests/special/abi_decode_simple.sol index 7be611742..5a6beef49 100644 --- a/test/libsolidity/smtCheckerTests/special/abi_decode_simple.sol +++ b/test/libsolidity/smtCheckerTests/special/abi_decode_simple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bytes memory data) public pure { (uint a1, bytes32 b1, C c1) = abi.decode(data, (uint, bytes32, C)); @@ -7,13 +6,15 @@ contract C { assert(a1 != a2); } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (102-112): Unused local variable. -// Warning 2072: (114-118): Unused local variable. -// Warning 2072: (172-182): Unused local variable. -// Warning 2072: (184-188): Unused local variable. -// Warning 8364: (155-156): Assertion checker does not yet implement type type(contract C) -// Warning 8364: (225-226): Assertion checker does not yet implement type type(contract C) -// Warning 6328: (252-268): CHC: Assertion violation happens here.\nCounterexample:\n\ndata = [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]\na1 = 7719\nb1 = 5\nc1 = 6\na2 = 7719\nb2 = 5\nc2 = 6\n\nTransaction trace:\nC.constructor()\nC.f([10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]) -// Warning 8364: (155-156): Assertion checker does not yet implement type type(contract C) -// Warning 8364: (225-226): Assertion checker does not yet implement type type(contract C) +// Warning 2072: (70-80): Unused local variable. +// Warning 2072: (82-86): Unused local variable. +// Warning 2072: (140-150): Unused local variable. +// Warning 2072: (152-156): Unused local variable. +// Warning 8364: (123-124): Assertion checker does not yet implement type type(contract C) +// Warning 8364: (193-194): Assertion checker does not yet implement type type(contract C) +// Warning 6328: (220-236): CHC: Assertion violation happens here.\nCounterexample:\n\ndata = [13, 13, 13, 13, 13, 13, 13, 13, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13]\na1 = 7719\nb1 = 5\nc1 = 6\na2 = 7719\nb2 = 5\nc2 = 6\n\nTransaction trace:\nC.constructor()\nC.f([13, 13, 13, 13, 13, 13, 13, 13, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13]) +// Warning 8364: (123-124): Assertion checker does not yet implement type type(contract C) +// Warning 8364: (193-194): Assertion checker does not yet implement type type(contract C) diff --git a/test/libsolidity/smtCheckerTests/special/abi_encode_slice.sol b/test/libsolidity/smtCheckerTests/special/abi_encode_slice.sol index 0f6e57222..5295afa69 100644 --- a/test/libsolidity/smtCheckerTests/special/abi_encode_slice.sol +++ b/test/libsolidity/smtCheckerTests/special/abi_encode_slice.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { function f(bytes calldata data) external pure returns (bytes memory) { return abi.encode(bytes(data[:32])); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/special/blockhash.sol b/test/libsolidity/smtCheckerTests/special/blockhash.sol index a8f339687..7c8b23052 100644 --- a/test/libsolidity/smtCheckerTests/special/blockhash.sol +++ b/test/libsolidity/smtCheckerTests/special/blockhash.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public payable { @@ -9,6 +7,8 @@ contract C assert(blockhash(x) == blockhash(y)); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (85-109): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(38){ value: 8365 } -// Warning 6328: (113-137): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(38){ value: 32285 } +// Warning 6328: (52-76): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(38){ value: 8365 } +// Warning 6328: (80-104): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 38\ny = 0\n\nTransaction trace:\nC.constructor()\nC.f(38){ value: 32285 } diff --git a/test/libsolidity/smtCheckerTests/special/chainid.sol b/test/libsolidity/smtCheckerTests/special/chainid.sol index 7a2f92e77..be6c2b067 100644 --- a/test/libsolidity/smtCheckerTests/special/chainid.sol +++ b/test/libsolidity/smtCheckerTests/special/chainid.sol @@ -1,6 +1,7 @@ -pragma experimental SMTChecker; contract C { function f() public view returns (uint) { return block.chainid + 0; // Overflow not possible! } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/difficulty.sol b/test/libsolidity/smtCheckerTests/special/difficulty.sol index f76a8d0c5..faf44ddd7 100644 --- a/test/libsolidity/smtCheckerTests/special/difficulty.sol +++ b/test/libsolidity/smtCheckerTests/special/difficulty.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint difficulty) public view { @@ -7,6 +5,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (91-129): CHC: Assertion violation happens here. +// Warning 6328: (58-96): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/special/ether_units.sol b/test/libsolidity/smtCheckerTests/special/ether_units.sol index 1c49f9faf..40242e50d 100644 --- a/test/libsolidity/smtCheckerTests/special/ether_units.sol +++ b/test/libsolidity/smtCheckerTests/special/ether_units.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract D { function f() public pure { assert(1000000000000000000 wei == 1 ether); @@ -9,7 +8,9 @@ contract D { assert(100000000 gwei == 1 ether); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (121-162): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() -// Warning 6328: (202-233): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() -// Warning 6328: (275-308): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (89-130): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (170-201): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (243-276): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() diff --git a/test/libsolidity/smtCheckerTests/special/event.sol b/test/libsolidity/smtCheckerTests/special/event.sol index 824baa751..2788eeecd 100644 --- a/test/libsolidity/smtCheckerTests/special/event.sol +++ b/test/libsolidity/smtCheckerTests/special/event.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { event Nudge(); event SomeArgs(uint, uint); @@ -24,7 +22,9 @@ contract C { emit SomeArgs(h_data(), h_data()); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (280-284): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (430-434): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (440-449): CHC: Assertion violation happens here.\nCounterexample:\nx = false\n\nTransaction trace:\nC.constructor()\nState: x = true\nC.h()\n C.h_data() -- internal call\n C.h_data() -- internal call +// Warning 6321: (247-251): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (397-401): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (407-416): CHC: Assertion violation happens here.\nCounterexample:\nx = false\n\nTransaction trace:\nC.constructor()\nState: x = true\nC.h()\n C.h_data() -- internal call\n C.h_data() -- internal call diff --git a/test/libsolidity/smtCheckerTests/special/gasleft.sol b/test/libsolidity/smtCheckerTests/special/gasleft.sol index 65ae240a6..416c2668e 100644 --- a/test/libsolidity/smtCheckerTests/special/gasleft.sol +++ b/test/libsolidity/smtCheckerTests/special/gasleft.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public view { @@ -9,6 +7,8 @@ contract C assert(g >= gasleft()); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (76-97): CHC: Assertion violation happens here.\nCounterexample:\n\ng = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (123-144): CHC: Assertion violation happens here.\nCounterexample:\n\ng = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (43-64): CHC: Assertion violation happens here.\nCounterexample:\n\ng = 0\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (90-111): CHC: Assertion violation happens here.\nCounterexample:\n\ng = 0\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/special/many.sol b/test/libsolidity/smtCheckerTests/special/many.sol index 867f0cc1a..e9c100014 100644 --- a/test/libsolidity/smtCheckerTests/special/many.sol +++ b/test/libsolidity/smtCheckerTests/special/many.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public payable { @@ -16,13 +14,14 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (79-115): CHC: Assertion violation happens here. -// Warning 6328: (119-161): CHC: Assertion violation happens here. -// Warning 6328: (165-204): CHC: Assertion violation happens here. -// Warning 6328: (208-240): CHC: Assertion violation happens here. -// Warning 6328: (244-275): CHC: Assertion violation happens here. -// Warning 6328: (328-352): CHC: Assertion violation happens here. -// Warning 6328: (356-384): CHC: Assertion violation happens here. -// Warning 6328: (388-411): CHC: Assertion violation happens here. +// Warning 6328: (46-82): CHC: Assertion violation happens here. +// Warning 6328: (86-128): CHC: Assertion violation happens here. +// Warning 6328: (132-171): CHC: Assertion violation happens here. +// Warning 6328: (175-207): CHC: Assertion violation happens here. +// Warning 6328: (211-242): CHC: Assertion violation happens here. +// Warning 6328: (295-319): CHC: Assertion violation happens here. +// Warning 6328: (323-351): CHC: Assertion violation happens here. +// Warning 6328: (355-378): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/special/msg_data.sol b/test/libsolidity/smtCheckerTests/special/msg_data.sol index 51b8199a3..5bdc754c4 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_data.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_data.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public payable { @@ -21,6 +19,8 @@ contract C assert(msg.data[3] == 0x8f); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (153-180): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(){ value: 30612 } -// Warning 6328: (500-527): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g(){ value: 30612 } +// Warning 6328: (120-147): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(){ value: 30612 } +// Warning 6328: (467-494): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g(){ value: 30612 } diff --git a/test/libsolidity/smtCheckerTests/special/msg_sender_1.sol b/test/libsolidity/smtCheckerTests/special/msg_sender_1.sol index dd2366e2e..b88ba0b09 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_sender_1.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_sender_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public view { @@ -8,3 +6,5 @@ contract C assert(a == b); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/msg_sender_2.sol b/test/libsolidity/smtCheckerTests/special/msg_sender_2.sol index 65a5b2bc7..96075e68a 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_sender_2.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_sender_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public view { @@ -9,4 +7,6 @@ contract C assert(a == b); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/special/msg_sender_3.sol b/test/libsolidity/smtCheckerTests/special/msg_sender_3.sol index c8e922a86..774998358 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_sender_3.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_sender_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address owner; @@ -19,3 +17,5 @@ contract D { } } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/msg_sender_fail_1.sol b/test/libsolidity/smtCheckerTests/special/msg_sender_fail_1.sol index 0f5f88394..ecfc53e98 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_sender_fail_1.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_sender_fail_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(address c) public view { @@ -10,6 +8,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (155-178): CHC: Assertion violation happens here. +// Warning 6328: (122-145): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/special/msg_sender_range.sol b/test/libsolidity/smtCheckerTests/special/msg_sender_range.sol index e29a2054b..56ab07eac 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_sender_range.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_sender_range.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public view { @@ -7,3 +5,5 @@ contract C { assert(msg.sender <= address(2**160-1)); // should hold } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/msg_sig.sol b/test/libsolidity/smtCheckerTests/special/msg_sig.sol index 67ca2eee4..a87dc18b3 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_sig.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_sig.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -24,7 +22,9 @@ contract C assert(msg.sig == 0xe2179b8e); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (76-105): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (403-432): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()\n C.fi() -- internal call\n C.gi() -- internal call -// Warning 6328: (543-572): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.h() +// Warning 6328: (43-72): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (370-399): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f()\n C.fi() -- internal call\n C.gi() -- internal call +// Warning 6328: (510-539): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.h() diff --git a/test/libsolidity/smtCheckerTests/special/msg_value_1.sol b/test/libsolidity/smtCheckerTests/special/msg_value_1.sol index 2259db859..9888d326d 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_value_1.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_value_1.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f() public payable { assert ((5 + msg.value + msg.value) - (4 + msg.value) > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (87-100): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(){ value: 115792089237316195423570985008687907853269984665640564039457584007913129639931 } -// Warning 4984: (87-112): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(){ value: 57896044618658097711785492504343953926634992332820282019728792003956564819966 } +// Warning 4984: (55-68): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(){ value: 115792089237316195423570985008687907853269984665640564039457584007913129639931 } +// Warning 4984: (55-80): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(){ value: 57896044618658097711785492504343953926634992332820282019728792003956564819966 } diff --git a/test/libsolidity/smtCheckerTests/special/msg_value_2.sol b/test/libsolidity/smtCheckerTests/special/msg_value_2.sol index a010d2437..1c37ce029 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_value_2.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_value_2.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f() public payable { assert(msg.value > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (78-99): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (46-67): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/special/msg_value_3.sol b/test/libsolidity/smtCheckerTests/special/msg_value_3.sol index aa082ff12..66015d770 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_value_3.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_value_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { bool lock = true; function f() public { @@ -11,3 +10,5 @@ contract C { assert(msg.value == 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/msg_value_4.sol b/test/libsolidity/smtCheckerTests/special/msg_value_4.sol index 7af272426..c32c36bb5 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_value_4.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_value_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract A { uint x = msg.value; constructor() { @@ -11,5 +10,7 @@ contract B { assert(msg.value == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (186-208): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nB.constructor(){ value: 1 } +// Warning 6328: (154-176): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nB.constructor(){ value: 1 } diff --git a/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_1.sol b/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_1.sol index 0d123f0af..00e183832 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_1.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x = msg.value; constructor() payable { @@ -13,5 +11,7 @@ contract C is A { assert(v == 0); // should hold } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (101-115): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nA.constructor(){ value: 1 } +// Warning 6328: (68-82): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nA.constructor(){ value: 1 } diff --git a/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_2.sol b/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_2.sol index 003ccaacf..f1bcf66b6 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_2.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x = msg.value; constructor() { @@ -13,6 +11,8 @@ contract C is A { assert(v == 0); // should fail, C can be constructed with any msg.value } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (273-287): CHC: Assertion violation happens here.\nCounterexample:\nv = 1, x = 1\n\nTransaction trace:\nC.constructor(){ value: 1 } -// Warning 6328: (93-107): CHC: Assertion violation happens here.\nCounterexample:\nv = 0, x = 1\n\nTransaction trace:\nC.constructor(){ value: 1 } +// Warning 6328: (240-254): CHC: Assertion violation happens here.\nCounterexample:\nv = 1, x = 1\n\nTransaction trace:\nC.constructor(){ value: 1 } +// Warning 6328: (60-74): CHC: Assertion violation happens here.\nCounterexample:\nv = 0, x = 1\n\nTransaction trace:\nC.constructor(){ value: 1 } diff --git a/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_3.sol b/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_3.sol index d3b732eb2..08457c0ec 100644 --- a/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_3.sol +++ b/test/libsolidity/smtCheckerTests/special/msg_value_inheritance_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { uint public x = msg.value; constructor() { @@ -18,5 +16,7 @@ contract C is A, B { } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (93-107): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(){ value: 1 } +// Warning 6328: (60-74): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nC.constructor(){ value: 1 } diff --git a/test/libsolidity/smtCheckerTests/special/range_check.sol b/test/libsolidity/smtCheckerTests/special/range_check.sol index 7ca296ee0..246ff5a2c 100644 --- a/test/libsolidity/smtCheckerTests/special/range_check.sol +++ b/test/libsolidity/smtCheckerTests/special/range_check.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { constructor() payable { assert(tx.origin >= address(0)); @@ -54,3 +52,5 @@ contract D { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/this.sol b/test/libsolidity/smtCheckerTests/special/this.sol index 178b4e512..efd0f52c1 100644 --- a/test/libsolidity/smtCheckerTests/special/this.sol +++ b/test/libsolidity/smtCheckerTests/special/this.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(address a) public view { @@ -7,6 +5,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (85-111): CHC: Assertion violation happens here. +// Warning 6328: (52-78): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/special/this_state.sol b/test/libsolidity/smtCheckerTests/special/this_state.sol index 48e496d7a..281fd4494 100644 --- a/test/libsolidity/smtCheckerTests/special/this_state.sol +++ b/test/libsolidity/smtCheckerTests/special/this_state.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address thisAddr; @@ -9,3 +7,5 @@ contract C assert(thisAddr == address(this)); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/time_units.sol b/test/libsolidity/smtCheckerTests/special/time_units.sol index 880da4daf..2462f9312 100644 --- a/test/libsolidity/smtCheckerTests/special/time_units.sol +++ b/test/libsolidity/smtCheckerTests/special/time_units.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract D { function f() public pure { assert(1 == 1 seconds); @@ -13,9 +12,11 @@ contract D { assert(25 weeks == 14 days); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (101-123): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() -// Warning 6328: (163-195): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() -// Warning 6328: (233-263): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() -// Warning 6328: (297-323): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() -// Warning 6328: (357-384): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (69-91): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (131-163): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (201-231): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (265-291): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() +// Warning 6328: (325-352): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f() diff --git a/test/libsolidity/smtCheckerTests/special/timestamp.sol b/test/libsolidity/smtCheckerTests/special/timestamp.sol index 48e819e50..81a459634 100644 --- a/test/libsolidity/smtCheckerTests/special/timestamp.sol +++ b/test/libsolidity/smtCheckerTests/special/timestamp.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public view returns (uint) { uint b = block.timestamp; @@ -7,3 +5,5 @@ contract C { return a; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/timestamp_2.sol b/test/libsolidity/smtCheckerTests/special/timestamp_2.sol index 047f0a451..73af1d4da 100644 --- a/test/libsolidity/smtCheckerTests/special/timestamp_2.sol +++ b/test/libsolidity/smtCheckerTests/special/timestamp_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -8,5 +6,7 @@ contract C { x = block.timestamp + 1; // Overflow should be reported here } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (140-159): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor() +// Warning 4984: (107-126): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\nx = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor() diff --git a/test/libsolidity/smtCheckerTests/special/tx_data_gasleft_changes.sol b/test/libsolidity/smtCheckerTests/special/tx_data_gasleft_changes.sol index 1e8f375fe..3f8c4c162 100644 --- a/test/libsolidity/smtCheckerTests/special/tx_data_gasleft_changes.sol +++ b/test/libsolidity/smtCheckerTests/special/tx_data_gasleft_changes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint gleft; @@ -17,7 +15,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (124-150): CHC: Assertion violation happens here. -// Warning 6328: (219-245): CHC: Assertion violation happens here. +// Warning 6328: (91-117): CHC: Assertion violation happens here. +// Warning 6328: (186-212): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/special/tx_data_immutable.sol b/test/libsolidity/smtCheckerTests/special/tx_data_immutable.sol index 371897b3b..fad3d9fbb 100644 --- a/test/libsolidity/smtCheckerTests/special/tx_data_immutable.sol +++ b/test/libsolidity/smtCheckerTests/special/tx_data_immutable.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes32 bhash; address coin; @@ -59,3 +57,5 @@ contract C { assert(origin == tx.origin); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/special/tx_data_immutable_fail.sol b/test/libsolidity/smtCheckerTests/special/tx_data_immutable_fail.sol index 5033f6a7b..82d3529e0 100644 --- a/test/libsolidity/smtCheckerTests/special/tx_data_immutable_fail.sol +++ b/test/libsolidity/smtCheckerTests/special/tx_data_immutable_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes32 bhash; address coin; @@ -60,29 +58,30 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (545-576): CHC: Assertion violation happens here. -// Warning 6328: (580-610): CHC: Assertion violation happens here. -// Warning 6328: (614-645): CHC: Assertion violation happens here. -// Warning 6328: (649-681): CHC: Assertion violation happens here. -// Warning 6328: (685-715): CHC: Assertion violation happens here. -// Warning 6328: (719-752): CHC: Assertion violation happens here. -// Warning 6328: (756-795): CHC: Assertion violation happens here. -// Warning 6328: (799-827): CHC: Assertion violation happens here. -// Warning 6328: (831-853): CHC: Assertion violation happens here. -// Warning 6328: (857-883): CHC: Assertion violation happens here. -// Warning 6328: (887-916): CHC: Assertion violation happens here. -// Warning 6328: (920-947): CHC: Assertion violation happens here. -// Warning 6328: (986-1017): CHC: Assertion violation happens here. -// Warning 6328: (1021-1051): CHC: Assertion violation happens here. -// Warning 6328: (1055-1086): CHC: Assertion violation happens here. -// Warning 6328: (1090-1122): CHC: Assertion violation happens here. -// Warning 6328: (1126-1156): CHC: Assertion violation happens here. -// Warning 6328: (1160-1193): CHC: Assertion violation happens here. -// Warning 6328: (1197-1236): CHC: Assertion violation happens here. -// Warning 6328: (1240-1268): CHC: Assertion violation happens here. -// Warning 6328: (1272-1294): CHC: Assertion violation happens here. -// Warning 6328: (1298-1324): CHC: Assertion violation happens here. -// Warning 6328: (1328-1357): CHC: Assertion violation happens here. -// Warning 6328: (1361-1388): CHC: Assertion violation happens here. +// Warning 6328: (512-543): CHC: Assertion violation happens here. +// Warning 6328: (547-577): CHC: Assertion violation happens here. +// Warning 6328: (581-612): CHC: Assertion violation happens here. +// Warning 6328: (616-648): CHC: Assertion violation happens here. +// Warning 6328: (652-682): CHC: Assertion violation happens here. +// Warning 6328: (686-719): CHC: Assertion violation happens here. +// Warning 6328: (723-762): CHC: Assertion violation happens here. +// Warning 6328: (766-794): CHC: Assertion violation happens here. +// Warning 6328: (798-820): CHC: Assertion violation happens here. +// Warning 6328: (824-850): CHC: Assertion violation happens here. +// Warning 6328: (854-883): CHC: Assertion violation happens here. +// Warning 6328: (887-914): CHC: Assertion violation happens here. +// Warning 6328: (953-984): CHC: Assertion violation happens here. +// Warning 6328: (988-1018): CHC: Assertion violation happens here. +// Warning 6328: (1022-1053): CHC: Assertion violation happens here. +// Warning 6328: (1057-1089): CHC: Assertion violation happens here. +// Warning 6328: (1093-1123): CHC: Assertion violation happens here. +// Warning 6328: (1127-1160): CHC: Assertion violation happens here. +// Warning 6328: (1164-1203): CHC: Assertion violation happens here. +// Warning 6328: (1207-1235): CHC: Assertion violation happens here. +// Warning 6328: (1239-1261): CHC: Assertion violation happens here. +// Warning 6328: (1265-1291): CHC: Assertion violation happens here. +// Warning 6328: (1295-1324): CHC: Assertion violation happens here. +// Warning 6328: (1328-1355): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_1.sol b/test/libsolidity/smtCheckerTests/try_catch/try_1.sol index 903c94346..02a1273e4 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_1.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int x; @@ -17,6 +16,8 @@ contract C { assert(success); // fails for now, since external call is over-approximated (both success and fail are considered possible) for now even for known code } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (195-209): Unused try/catch parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (253-268): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\nsuccess = false\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() +// Warning 5667: (163-177): Unused try/catch parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (221-236): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\nsuccess = false\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_2.sol b/test/libsolidity/smtCheckerTests/try_catch/try_2.sol index 8f80601e4..f2ea2e555 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_2.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int x; @@ -15,5 +14,7 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (187-201): Unused try/catch parameter. Remove or comment out the variable name to silence this warning. +// Warning 5667: (155-169): Unused try/catch parameter. Remove or comment out the variable name to silence this warning. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_3.sol b/test/libsolidity/smtCheckerTests/try_catch/try_3.sol index d5318f0e4..4244f5096 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_3.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int x; @@ -20,6 +19,8 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (291-305): Unused try/catch parameter. Remove or comment out the variable name to silence this warning. -// Warning 6328: (312-326): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\ns = []\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f()\n C.postinc() -- internal call +// Warning 5667: (259-273): Unused try/catch parameter. Remove or comment out the variable name to silence this warning. +// Warning 6328: (280-294): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\ns = []\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f()\n C.postinc() -- internal call diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_4.sol b/test/libsolidity/smtCheckerTests/try_catch/try_4.sol index f3ee44dfb..9c9d0aa27 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_4.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -24,7 +22,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (211-225): CHC: Assertion violation happens here. -// Warning 6328: (351-365): CHC: Assertion violation happens here. +// Warning 6328: (178-192): CHC: Assertion violation happens here. +// Warning 6328: (318-332): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_5.sol b/test/libsolidity/smtCheckerTests/try_catch/try_5.sol index 4955f3ea0..6c9b776c4 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_5.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual; } @@ -24,5 +22,7 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (348-362): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f() +// Warning 6328: (315-329): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_1.sol b/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_1.sol index 830db0c45..b90a9fca9 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_1.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public returns (uint) { try this.f() { @@ -9,5 +8,7 @@ contract C { function g() public pure returns (address) { } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (78-82): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (46-50): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_2.sol b/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_2.sol index 76b86cf04..0c438943b 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_2.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_call_in_catch_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public returns (uint, uint) { try this.f() { @@ -10,7 +9,9 @@ contract C { int test = 1; } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (78-82): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6321: (84-88): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 2072: (199-207): Unused local variable. +// Warning 6321: (46-50): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (52-56): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 2072: (167-175): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_inside_if.sol b/test/libsolidity/smtCheckerTests/try_catch/try_inside_if.sol index ec9ed22f1..4c82cebd9 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_inside_if.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_inside_if.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g(bool b) public {} function f(bool b) public returns (bytes memory txt) { @@ -10,5 +9,7 @@ contract C { } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (141-145): BMC: Condition is always false. +// Warning 6838: (109-113): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_inside_while.sol b/test/libsolidity/smtCheckerTests/try_catch/try_inside_while.sol index 465773b7b..8d54f103f 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_inside_while.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_inside_while.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public returns (uint) { while(1==1) @@ -8,6 +7,8 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (75-79): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6838: (91-95): BMC: Condition is always true. +// Warning 6321: (43-47): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6838: (59-63): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses.sol b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses.sol index 93c2fb936..769a61873 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int x; @@ -21,5 +20,7 @@ contract C { assert(success); // can fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (447-462): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nsuccess = false\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() +// Warning 6328: (415-430): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\nsuccess = false\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses_2.sol b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses_2.sol index 6cc283e47..609b31fcd 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses_2.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_catch_clauses_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public pure {} @@ -18,5 +17,7 @@ contract C { assert(x == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (338-352): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\nsuccess = false\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (306-320): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 3\nsuccess = false\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values.sol b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values.sol index d57e447d8..80ebe0d93 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D { function d() external virtual returns (uint x, bool b); } @@ -20,8 +18,10 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 2519: (197-203): This declaration shadows an existing declaration. -// Warning 6328: (218-232): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\nx = 1\nc = false\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()\n d.d() -- untrusted external call -// Warning 6328: (306-316): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\nx = 1\nc = true\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()\n d.d() -- untrusted external call -// Warning 6328: (426-440): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f() +// Warning 2519: (164-170): This declaration shadows an existing declaration. +// Warning 6328: (185-199): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\nx = 1\nc = false\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()\n d.d() -- untrusted external call +// Warning 6328: (273-283): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\nx = 1\nc = true\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f()\n d.d() -- untrusted external call +// Warning 6328: (393-407): CHC: Assertion violation happens here.\nCounterexample:\nx = 0, d = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0, d = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values_with_tuple.sol b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values_with_tuple.sol index c6db557ea..d6b62ea99 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values_with_tuple.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_multiple_returned_values_with_tuple.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { @@ -22,5 +21,7 @@ contract C { assert(success); // fails, not guaranteed that there will be no error } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (353-368): CHC: Assertion violation happens here.\nCounterexample:\n\nsuccess = false\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (321-336): CHC: Assertion violation happens here.\nCounterexample:\n\nsuccess = false\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_nested_1.sol b/test/libsolidity/smtCheckerTests/try_catch/try_nested_1.sol index 2b05f39ff..dfbfb978a 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_nested_1.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_nested_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int public x; @@ -18,6 +17,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (312-327): CHC: Assertion violation happens here. +// Warning 6328: (280-295): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_nested_2.sol b/test/libsolidity/smtCheckerTests/try_catch/try_nested_2.sol index 509cda911..98a19731b 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_nested_2.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_nested_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public pure returns (uint, uint) { } @@ -18,5 +17,7 @@ contract C { assert(choice == 42); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (374-394): CHC: Assertion violation happens here.\nCounterexample:\n\nchoice = 3\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (342-362): CHC: Assertion violation happens here.\nCounterexample:\n\nchoice = 3\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_nested_3.sol b/test/libsolidity/smtCheckerTests/try_catch/try_nested_3.sol index 7c24db882..bd81c5bc2 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_nested_3.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_nested_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public pure returns (uint) { } @@ -18,5 +17,7 @@ contract C { assert(choice == 42); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (355-375): CHC: Assertion violation happens here.\nCounterexample:\n\nchoice = 3\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (323-343): CHC: Assertion violation happens here.\nCounterexample:\n\nchoice = 3\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_new.sol b/test/libsolidity/smtCheckerTests/try_catch/try_new.sol index 563e2fdfe..f20342e71 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_new.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_new.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract Reverts { constructor(uint) { revert("test message."); } } @@ -27,8 +25,10 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 4588: (264-278): Assertion checker does not yet implement this type of function call. -// Warning 4588: (525-540): Assertion checker does not yet implement this type of function call. -// Warning 4588: (264-278): Assertion checker does not yet implement this type of function call. -// Warning 4588: (525-540): Assertion checker does not yet implement this type of function call. +// Warning 4588: (231-245): Assertion checker does not yet implement this type of function call. +// Warning 4588: (492-507): Assertion checker does not yet implement this type of function call. +// Warning 4588: (231-245): Assertion checker does not yet implement this type of function call. +// Warning 4588: (492-507): Assertion checker does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_public_var.sol b/test/libsolidity/smtCheckerTests/try_catch/try_public_var.sol index dce37b15b..281a74839 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_public_var.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_public_var.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { int public x; @@ -10,5 +9,7 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (171-184): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() +// Warning 6328: (139-152): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_public_var_mapping.sol b/test/libsolidity/smtCheckerTests/try_catch/try_public_var_mapping.sol index bc4a6e246..3048558e7 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_public_var_mapping.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_public_var_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint[]) public m; @@ -19,5 +17,7 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (313-333): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (280-300): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_bytes_array.sol b/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_bytes_array.sol index 37f112dab..7dff9ef0d 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_bytes_array.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_bytes_array.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public pure returns (bytes memory) { @@ -14,3 +13,5 @@ contract C { } } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_fixed_bytes.sol b/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_fixed_bytes.sol index 523663fca..b56aa8562 100644 --- a/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_fixed_bytes.sol +++ b/test/libsolidity/smtCheckerTests/try_catch/try_string_literal_to_fixed_bytes.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public pure returns (bytes2) { @@ -14,6 +13,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (250-294): CHC: Assertion violation happens here. +// Warning 6328: (218-262): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/typecast/address_literal.sol b/test/libsolidity/smtCheckerTests/typecast/address_literal.sol index 42a09c49f..c37c36ded 100644 --- a/test/libsolidity/smtCheckerTests/typecast/address_literal.sol +++ b/test/libsolidity/smtCheckerTests/typecast/address_literal.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { address x; // We know that this is "zero initialised". function f() public view { @@ -21,5 +19,7 @@ contract C { assert(a == b); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (487-501): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\na = 0\nb = 1\nc = 0\nd = 0\ne = 305419896\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g() +// Warning 6328: (454-468): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\na = 0\nb = 1\nc = 0\nd = 0\ne = 305419896\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.g() diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_address_1.sol b/test/libsolidity/smtCheckerTests/typecast/cast_address_1.sol index c76e4a9c7..c29df8989 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_address_1.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_address_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(address a) public pure { @@ -7,4 +5,6 @@ contract C assert(a != address(0)); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_different_size_1.sol b/test/libsolidity/smtCheckerTests/typecast/cast_different_size_1.sol index 21efadc37..663c85fe9 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_different_size_1.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_different_size_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -14,3 +12,5 @@ contract C assert(e == 0x12); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_larger_1.sol b/test/libsolidity/smtCheckerTests/typecast/cast_larger_1.sol index 6ae5a3378..c73372f3a 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_larger_1.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_larger_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint8 x) public pure { @@ -8,4 +6,6 @@ contract C assert(y < 300); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_larger_2.sol b/test/libsolidity/smtCheckerTests/typecast/cast_larger_2.sol index bbdeb0bf1..5c2fb759a 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_larger_2.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_larger_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -9,4 +7,6 @@ contract C assert(a == b); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_larger_2_fail.sol b/test/libsolidity/smtCheckerTests/typecast/cast_larger_2_fail.sol index bf85dc82f..15b4257d5 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_larger_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_larger_2_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -8,5 +6,7 @@ contract C assert(a != b); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (149-163): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4660\nb = 4660\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (116-130): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4660\nb = 4660\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_larger_3.sol b/test/libsolidity/smtCheckerTests/typecast/cast_larger_3.sol index cc9855984..b8a69f946 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_larger_3.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_larger_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -11,5 +9,7 @@ contract C assert(a == b); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (273-287): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4660\nb = 305397760\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (240-254): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4660\nb = 305397760\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_smaller_1.sol b/test/libsolidity/smtCheckerTests/typecast/cast_smaller_1.sol index 310df7e34..c1c955417 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_smaller_1.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_smaller_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint16 x) public pure { @@ -8,4 +6,6 @@ contract C assert(y < 300); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_smaller_2.sol b/test/libsolidity/smtCheckerTests/typecast/cast_smaller_2.sol index e634cb22a..ea5f87fbf 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_smaller_2.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_smaller_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -8,3 +6,5 @@ contract C assert(b == 0x5678); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/typecast/cast_smaller_3.sol b/test/libsolidity/smtCheckerTests/typecast/cast_smaller_3.sol index f6d9c36bc..d8b8396d0 100644 --- a/test/libsolidity/smtCheckerTests/typecast/cast_smaller_3.sol +++ b/test/libsolidity/smtCheckerTests/typecast/cast_smaller_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -8,3 +6,5 @@ contract C assert(b == 0x12); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/typecast/downcast.sol b/test/libsolidity/smtCheckerTests/typecast/downcast.sol index 89475f296..a2fe8b6c8 100644 --- a/test/libsolidity/smtCheckerTests/typecast/downcast.sol +++ b/test/libsolidity/smtCheckerTests/typecast/downcast.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f1() public pure { // signed <- signed @@ -45,4 +43,6 @@ contract C { assert(b == 0xaaaa); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/enum_from_uint.sol b/test/libsolidity/smtCheckerTests/typecast/enum_from_uint.sol index 3ec8c585d..8d2fd6310 100644 --- a/test/libsolidity/smtCheckerTests/typecast/enum_from_uint.sol +++ b/test/libsolidity/smtCheckerTests/typecast/enum_from_uint.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum D { Left, Right } @@ -9,4 +7,6 @@ contract C assert(_a == D.Left); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/enum_to_uint_max_value.sol b/test/libsolidity/smtCheckerTests/typecast/enum_to_uint_max_value.sol index 89b0e7ab0..a382a786d 100644 --- a/test/libsolidity/smtCheckerTests/typecast/enum_to_uint_max_value.sol +++ b/test/libsolidity/smtCheckerTests/typecast/enum_to_uint_max_value.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum D { Left, Right } @@ -8,4 +6,6 @@ contract C assert(x < 10); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_external.sol b/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_external.sol index c0d7f6f69..f04c91d0a 100644 --- a/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_external.sol +++ b/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_external.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f(function(uint) external returns (uint) g, function(uint) external returns (uint) h) public { assert(g(2) == h(2)); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (155-175): CHC: Assertion violation happens here.\nCounterexample:\n\ng = 0\nh = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) +// Warning 6328: (123-143): CHC: Assertion violation happens here.\nCounterexample:\n\ng = 0\nh = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_internal.sol b/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_internal.sol index b0eeb56ae..2234bd831 100644 --- a/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_internal.sol +++ b/test/libsolidity/smtCheckerTests/typecast/function_type_to_function_type_internal.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function(uint) returns (uint) a; function(uint) returns (uint) b; @@ -10,16 +9,18 @@ contract C { f(a, b); } } +// ==== +// SMTEngine: all // ---- -// Warning 2519: (128-159): This declaration shadows an existing declaration. -// Warning 6031: (214-218): Internal error: Expression undefined for SMT solver. -// Warning 6031: (222-226): Internal error: Expression undefined for SMT solver. -// Warning 7229: (238-244): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons -// Warning 6328: (207-227): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = 0\nC.g()\n C.f(0, 0) -- internal call -// Warning 6328: (231-245): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = 0\nC.g()\n C.f(0, 0) -- internal call -// Warning 5729: (214-218): BMC does not yet implement this type of function call. -// Warning 5729: (222-226): BMC does not yet implement this type of function call. -// Warning 7229: (238-244): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons -// Warning 5729: (214-218): BMC does not yet implement this type of function call. -// Warning 5729: (222-226): BMC does not yet implement this type of function call. -// Warning 7229: (238-244): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons +// Warning 2519: (96-127): This declaration shadows an existing declaration. +// Warning 6031: (182-186): Internal error: Expression undefined for SMT solver. +// Warning 6031: (190-194): Internal error: Expression undefined for SMT solver. +// Warning 7229: (206-212): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons +// Warning 6328: (175-195): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = 0\nC.g()\n C.f(0, 0) -- internal call +// Warning 6328: (199-213): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = 0\nC.g()\n C.f(0, 0) -- internal call +// Warning 5729: (182-186): BMC does not yet implement this type of function call. +// Warning 5729: (190-194): BMC does not yet implement this type of function call. +// Warning 7229: (206-212): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons +// Warning 5729: (182-186): BMC does not yet implement this type of function call. +// Warning 5729: (190-194): BMC does not yet implement this type of function call. +// Warning 7229: (206-212): Assertion checker does not yet implement the type function (uint256) returns (uint256) for comparisons diff --git a/test/libsolidity/smtCheckerTests/typecast/implicit_cast_string_literal_byte.sol b/test/libsolidity/smtCheckerTests/typecast/implicit_cast_string_literal_byte.sol index e8b43ae7e..6acb0d16f 100644 --- a/test/libsolidity/smtCheckerTests/typecast/implicit_cast_string_literal_byte.sol +++ b/test/libsolidity/smtCheckerTests/typecast/implicit_cast_string_literal_byte.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (bytes1 => uint) map; function f() public { @@ -12,5 +10,7 @@ contract C { } function g(bytes1 b) internal pure {} } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (186-207): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\nb = 0\n\nTransaction trace:\nC.constructor()\nC.f()\n C.g(0) -- internal call +// Warning 6328: (153-174): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\nb = 0\n\nTransaction trace:\nC.constructor()\nC.f()\n C.g(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/typecast/number_literal.sol b/test/libsolidity/smtCheckerTests/typecast/number_literal.sol index d3df0343a..c48cf076b 100644 --- a/test/libsolidity/smtCheckerTests/typecast/number_literal.sol +++ b/test/libsolidity/smtCheckerTests/typecast/number_literal.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { uint x = 1234; @@ -29,3 +27,5 @@ contract C { assert(b == e); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/typecast/same_size.sol b/test/libsolidity/smtCheckerTests/typecast/same_size.sol index 6e153fad7..03fff063d 100644 --- a/test/libsolidity/smtCheckerTests/typecast/same_size.sol +++ b/test/libsolidity/smtCheckerTests/typecast/same_size.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D {} enum E {A, B} @@ -70,4 +68,6 @@ contract C { assert(y == -10); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/slice_to_bytes.sol b/test/libsolidity/smtCheckerTests/typecast/slice_to_bytes.sol index bae24de4c..0c31e3766 100644 --- a/test/libsolidity/smtCheckerTests/typecast/slice_to_bytes.sol +++ b/test/libsolidity/smtCheckerTests/typecast/slice_to_bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes calldata x) external pure { bytes(x[:18726387213]); @@ -7,4 +5,6 @@ contract C { bytes(x[18726387213:111111111111111111]); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_dynamic_bytes.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_dynamic_bytes.sol index 0477e690a..04d973b99 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_dynamic_bytes.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_dynamic_bytes.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes memory b = bytes(hex"ffff"); @@ -8,5 +6,7 @@ contract C { assert(b[1] == bytes1(uint8(100))); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (206-240): CHC: Assertion violation happens here.\nCounterexample:\n\nb = [255, 255]\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (173-207): CHC: Assertion violation happens here.\nCounterexample:\n\nb = [255, 255]\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_1.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_1.sol index 8763c662d..f3df90c16 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_1.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract MockContract { bytes4 public constant SENTINEL_ANY_MOCKS = hex"01"; mapping(bytes4 => bytes4) methodIdMocks; @@ -8,3 +6,5 @@ contract MockContract { methodIdMocks[SENTINEL_ANY_MOCKS] = 0; } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_2.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_2.sol index cbef0294f..fc5f2aff0 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_2.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_constant_initialization_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract MockContract { bytes4 public constant SENTINEL_ANY_MOCKS = hex"01"; @@ -7,3 +5,5 @@ contract MockContract { assert(SENTINEL_ANY_MOCKS >= 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_explicit.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_explicit.sol index 8c454474b..fb8da5430 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_explicit.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_explicit.sol @@ -1,4 +1,5 @@ -pragma experimental SMTChecker; contract SMT { bytes32 constant internal NULL_BYTES32 = bytes32(''); } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_function_call.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_function_call.sol index 1de996fe0..10fd28ee3 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_function_call.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_function_call.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract B { function f() pure public { g("0123456"); @@ -9,7 +8,8 @@ contract B { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (162-184): CHC: Assertion violation happens here. -// Warning 6328: (136-158): CHC: Assertion violation happens here. +// Warning 6328: (130-152): CHC: Assertion violation happens here. +// Warning 6328: (104-126): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_modifier.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_modifier.sol index dc839d5a1..4d1d832f9 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_modifier.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_modifier.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract B { function f() mod2("0123456") pure public { } modifier mod2(bytes7 a) { @@ -7,5 +6,7 @@ contract B { _; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (152-174): CHC: Assertion violation happens here.\nCounterexample:\n\na = 13564890559296822\n\nTransaction trace:\nB.constructor()\nB.f() +// Warning 6328: (120-142): CHC: Assertion violation happens here.\nCounterexample:\n\na = 13564890559296822\n\nTransaction trace:\nB.constructor()\nB.f() diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return.sol index d5c684645..56ef16374 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() public pure returns (bytes32 val) { return "abc"; } function f1() public pure returns (bytes32 val) { return g(); } @@ -8,5 +7,7 @@ contract C { assert(f1() == "cde"); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (238-259): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.a()\n C.f1() -- internal call\n C.g() -- internal call\n C.f1() -- internal call\n C.g() -- internal call +// Warning 6328: (206-227): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.a()\n C.f1() -- internal call\n C.g() -- internal call\n C.f1() -- internal call\n C.g() -- internal call diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return_multi.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return_multi.sol index 4940c1238..c869fca05 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return_multi.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_return_multi.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function h() public pure returns (bytes32 val, bytes3 val2) { return ("abc", "def"); } function g() public pure returns (bytes32 val) { return "abc"; } @@ -11,5 +10,7 @@ contract C { assert(v2 == "cde"); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (442-461): CHC: Assertion violation happens here.\nCounterexample:\n\nv1 = 44048180597813453602326562734351324025098966208897425494240603688123167145984\nv2 = 6579558\n\nTransaction trace:\nC.constructor()\nC.a()\n C.f2() -- internal call\n C.h() -- internal call +// Warning 6328: (410-429): CHC: Assertion violation happens here.\nCounterexample:\n\nv1 = 44048180597813453602326562734351324025098966208897425494240603688123167145984\nv2 = 6579558\n\nTransaction trace:\nC.constructor()\nC.a()\n C.f2() -- internal call\n C.h() -- internal call diff --git a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_upcast.sol b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_upcast.sol index f496a0e06..340e835a4 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_upcast.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_literal_to_fixed_bytes_upcast.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { assert(bytes4(hex"0000ffff") == bytes4(hex"ffff")); // should fail assert(bytes4(hex"ffff0000") == bytes4(hex"ffff")); // should hold } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (76-126): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (43-93): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_1.sol b/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_1.sol index a44f37f8d..1b571c9f2 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_1.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { string x; @@ -10,5 +8,7 @@ contract C { assert(bytes(x).length == 3); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (165-193): CHC: Assertion violation happens here.\nCounterexample:\nx = [97, 98, 99, 97]\n\nTransaction trace:\nC.constructor()\nState: x = []\nC.s() +// Warning 6328: (132-160): CHC: Assertion violation happens here.\nCounterexample:\nx = [97, 98, 99, 97]\n\nTransaction trace:\nC.constructor()\nState: x = []\nC.s() diff --git a/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_2.sol b/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_2.sol index 138d09361..6cf53ec7d 100644 --- a/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_2.sol +++ b/test/libsolidity/smtCheckerTests/typecast/string_to_bytes_push_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { string x; @@ -10,5 +8,7 @@ contract C { assert(bytes(x).length == 3); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (173-201): CHC: Assertion violation happens here.\nCounterexample:\nx = [97, 98, 99, 97]\n\nTransaction trace:\nC.constructor()\nState: x = []\nC.s() +// Warning 6328: (140-168): CHC: Assertion violation happens here.\nCounterexample:\nx = [97, 98, 99, 97]\n\nTransaction trace:\nC.constructor()\nState: x = []\nC.s() diff --git a/test/libsolidity/smtCheckerTests/typecast/upcast.sol b/test/libsolidity/smtCheckerTests/typecast/upcast.sol index d9f4d6730..45c022153 100644 --- a/test/libsolidity/smtCheckerTests/typecast/upcast.sol +++ b/test/libsolidity/smtCheckerTests/typecast/upcast.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - abstract contract D {} contract C { @@ -66,4 +64,6 @@ contract C { assert(b5 == 0xcafe0000); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/address_balance.sol b/test/libsolidity/smtCheckerTests/types/address_balance.sol index 9b2352ba9..c9937caac 100644 --- a/test/libsolidity/smtCheckerTests/types/address_balance.sol +++ b/test/libsolidity/smtCheckerTests/types/address_balance.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(address a, address b) public view { @@ -7,7 +5,9 @@ contract C assert(a.balance > b.balance); } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (96-102): Unused local variable. -// Warning 4984: (105-127): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\na = 0\nb = 38\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 38) -// Warning 6328: (131-160): CHC: Assertion violation happens here.\nCounterexample:\n\na = 21238\nb = 7719\nx = 1000000000000000000038\n\nTransaction trace:\nC.constructor()\nC.f(21238, 7719) +// Warning 2072: (63-69): Unused local variable. +// Warning 4984: (72-94): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\na = 0\nb = 38\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 38) +// Warning 6328: (98-127): CHC: Assertion violation happens here.\nCounterexample:\n\na = 21238\nb = 7719\nx = 1000000000000000000038\n\nTransaction trace:\nC.constructor()\nC.f(21238, 7719) diff --git a/test/libsolidity/smtCheckerTests/types/address_call.sol b/test/libsolidity/smtCheckerTests/types/address_call.sol index b6f1bcbfe..7ccde10da 100644 --- a/test/libsolidity/smtCheckerTests/types/address_call.sol +++ b/test/libsolidity/smtCheckerTests/types/address_call.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -17,12 +15,13 @@ contract C } // ==== // EVMVersion: >spuriousDragon +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (224-240): Unused local variable. -// Warning 4588: (244-256): Assertion checker does not yet implement this type of function call. -// Warning 6328: (260-275): CHC: Assertion violation happens here. -// Warning 6328: (279-293): CHC: Assertion violation happens here. -// Warning 6328: (297-316): CHC: Assertion violation happens here. -// Warning 6328: (320-344): CHC: Assertion violation happens here. -// Warning 4588: (244-256): Assertion checker does not yet implement this type of function call. +// Warning 2072: (191-207): Unused local variable. +// Warning 4588: (211-223): Assertion checker does not yet implement this type of function call. +// Warning 6328: (227-242): CHC: Assertion violation happens here. +// Warning 6328: (246-260): CHC: Assertion violation happens here. +// Warning 6328: (264-283): CHC: Assertion violation happens here. +// Warning 6328: (287-311): CHC: Assertion violation happens here. +// Warning 4588: (211-223): Assertion checker does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/types/address_delegatecall.sol b/test/libsolidity/smtCheckerTests/types/address_delegatecall.sol index 6d67a9e66..f0324bc68 100644 --- a/test/libsolidity/smtCheckerTests/types/address_delegatecall.sol +++ b/test/libsolidity/smtCheckerTests/types/address_delegatecall.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -17,12 +15,13 @@ contract C } // ==== // EVMVersion: >spuriousDragon +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (224-240): Unused local variable. -// Warning 4588: (244-264): Assertion checker does not yet implement this type of function call. -// Warning 6328: (268-283): CHC: Assertion violation happens here. -// Warning 6328: (287-301): CHC: Assertion violation happens here. -// Warning 6328: (305-324): CHC: Assertion violation happens here. -// Warning 6328: (328-352): CHC: Assertion violation happens here. -// Warning 4588: (244-264): Assertion checker does not yet implement this type of function call. +// Warning 2072: (191-207): Unused local variable. +// Warning 4588: (211-231): Assertion checker does not yet implement this type of function call. +// Warning 6328: (235-250): CHC: Assertion violation happens here. +// Warning 6328: (254-268): CHC: Assertion violation happens here. +// Warning 6328: (272-291): CHC: Assertion violation happens here. +// Warning 6328: (295-319): CHC: Assertion violation happens here. +// Warning 4588: (211-231): Assertion checker does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/types/address_staticcall.sol b/test/libsolidity/smtCheckerTests/types/address_staticcall.sol index 54d2a7d6b..40d867fa0 100644 --- a/test/libsolidity/smtCheckerTests/types/address_staticcall.sol +++ b/test/libsolidity/smtCheckerTests/types/address_staticcall.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; @@ -17,7 +15,8 @@ contract C } // ==== // EVMVersion: >spuriousDragon +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (224-240): Unused local variable. -// Warning 6328: (266-281): CHC: Assertion violation happens here. +// Warning 2072: (191-207): Unused local variable. +// Warning 6328: (233-248): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/address_transfer.sol b/test/libsolidity/smtCheckerTests/types/address_transfer.sol index 555aa8007..d46557488 100644 --- a/test/libsolidity/smtCheckerTests/types/address_transfer.sol +++ b/test/libsolidity/smtCheckerTests/types/address_transfer.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(address payable a) public { @@ -10,6 +8,8 @@ contract C assert(a.balance == 700); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (195-219): CHC: Assertion violation happens here.\nCounterexample:\n\na = 38\nx = 100\n\nTransaction trace:\nC.constructor()\nC.f(38) -// Warning 1236: (131-146): BMC: Insufficient funds happens here. +// Warning 6328: (162-186): CHC: Assertion violation happens here.\nCounterexample:\n\na = 38\nx = 100\n\nTransaction trace:\nC.constructor()\nC.f(38) +// Warning 1236: (98-113): BMC: Insufficient funds happens here. diff --git a/test/libsolidity/smtCheckerTests/types/address_transfer_2.sol b/test/libsolidity/smtCheckerTests/types/address_transfer_2.sol index 43e98884c..0a2c08d0c 100644 --- a/test/libsolidity/smtCheckerTests/types/address_transfer_2.sol +++ b/test/libsolidity/smtCheckerTests/types/address_transfer_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x, address payable a, address payable b) public { @@ -14,8 +12,9 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (295-324): CHC: Assertion violation happens here. -// Warning 1236: (217-232): BMC: Insufficient funds happens here. -// Warning 1236: (236-251): BMC: Insufficient funds happens here. +// Warning 6328: (262-291): CHC: Assertion violation happens here. +// Warning 1236: (184-199): BMC: Insufficient funds happens here. +// Warning 1236: (203-218): BMC: Insufficient funds happens here. diff --git a/test/libsolidity/smtCheckerTests/types/address_transfer_insufficient.sol b/test/libsolidity/smtCheckerTests/types/address_transfer_insufficient.sol index d643343f6..936f8cd29 100644 --- a/test/libsolidity/smtCheckerTests/types/address_transfer_insufficient.sol +++ b/test/libsolidity/smtCheckerTests/types/address_transfer_insufficient.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(address payable a, address payable b) public { @@ -10,7 +8,9 @@ contract C assert(a.balance == 600); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (213-237): CHC: Assertion violation happens here.\nCounterexample:\n\na = 7719\nb = 7719\n\nTransaction trace:\nC.constructor()\nC.f(7719, 7719) -// Warning 1236: (134-149): BMC: Insufficient funds happens here. -// Warning 1236: (153-169): BMC: Insufficient funds happens here. +// Warning 6328: (180-204): CHC: Assertion violation happens here.\nCounterexample:\n\na = 7719\nb = 7719\n\nTransaction trace:\nC.constructor()\nC.f(7719, 7719) +// Warning 1236: (101-116): BMC: Insufficient funds happens here. +// Warning 1236: (120-136): BMC: Insufficient funds happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_1.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_1.sol index 016ab8e7f..4e315f6ef 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C @@ -35,18 +34,20 @@ contract C assert(b[0] == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (555-560): CHC: Out of bounds access happens here. -// Warning 6368: (555-563): CHC: Out of bounds access happens here. -// Warning 6368: (589-595): CHC: Out of bounds access happens here. -// Warning 6368: (589-598): CHC: Out of bounds access happens here. -// Warning 6368: (589-601): CHC: Out of bounds access happens here. -// Warning 6368: (610-614): CHC: Out of bounds access happens here. -// Warning 6368: (731-735): CHC: Out of bounds access happens here. -// Warning 6368: (744-749): CHC: Out of bounds access happens here. -// Warning 6368: (744-752): CHC: Out of bounds access happens here. -// Warning 6368: (762-768): CHC: Out of bounds access happens here. -// Warning 6368: (762-771): CHC: Out of bounds access happens here. -// Warning 6368: (762-774): CHC: Out of bounds access happens here. -// Warning 6328: (724-781): CHC: Assertion violation happens here. -// Warning 6368: (882-886): CHC: Out of bounds access happens here. +// Warning 6368: (523-528): CHC: Out of bounds access happens here. +// Warning 6368: (523-531): CHC: Out of bounds access happens here. +// Warning 6368: (557-563): CHC: Out of bounds access happens here. +// Warning 6368: (557-566): CHC: Out of bounds access happens here. +// Warning 6368: (557-569): CHC: Out of bounds access happens here. +// Warning 6368: (578-582): CHC: Out of bounds access happens here. +// Warning 6368: (699-703): CHC: Out of bounds access happens here. +// Warning 6368: (712-717): CHC: Out of bounds access happens here. +// Warning 6368: (712-720): CHC: Out of bounds access happens here. +// Warning 6368: (730-736): CHC: Out of bounds access happens here. +// Warning 6368: (730-739): CHC: Out of bounds access happens here. +// Warning 6368: (730-742): CHC: Out of bounds access happens here. +// Warning 6328: (692-749): CHC: Assertion violation happens here. +// Warning 6368: (850-854): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_2.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_2.sol index fde683cb7..7eccaf68f 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C @@ -25,9 +24,10 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (359-363): CHC: Out of bounds access happens here. -// Warning 6368: (616-620): CHC: Out of bounds access happens here. -// Warning 6328: (609-626): CHC: Assertion violation happens here. -// Warning 6368: (637-641): CHC: Out of bounds access happens here. +// Warning 6368: (327-331): CHC: Out of bounds access happens here. +// Warning 6368: (584-588): CHC: Out of bounds access happens here. +// Warning 6328: (577-594): CHC: Assertion violation happens here. +// Warning 6368: (605-609): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_3.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_3.sol index 761dc2b63..59a95ca9a 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_3.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_memory_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C @@ -26,3 +25,5 @@ contract C //assert(b[0] == 1); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_1.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_1.sol index 51748c1a9..3f1b6cdd4 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -51,6 +49,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2018: (990-1362): Function state mutability can be restricted to view +// Warning 2018: (957-1329): Function state mutability can be restricted to view diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_2.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_2.sol index 9fedce64a..48d1f8130 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] array2d; @@ -30,9 +28,10 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (507-511): CHC: Out of bounds access happens here. -// Warning 6368: (692-696): CHC: Out of bounds access happens here. -// Warning 6328: (685-702): CHC: Assertion violation happens here. -// Warning 6368: (774-778): CHC: Out of bounds access happens here. +// Warning 6368: (474-478): CHC: Out of bounds access happens here. +// Warning 6368: (659-663): CHC: Out of bounds access happens here. +// Warning 6328: (652-669): CHC: Assertion violation happens here. +// Warning 6368: (741-745): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_3.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_3.sol index d381bd227..f74fad8af 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_3.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] array2d; @@ -33,10 +31,11 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2072: (417-432): Unused local variable. -// Warning 6368: (522-526): CHC: Out of bounds access happens here. -// Warning 6368: (988-992): CHC: Out of bounds access happens here. -// Warning 6328: (981-998): CHC: Assertion violation happens here. -// Warning 6368: (1009-1013): CHC: Out of bounds access happens here. +// Warning 2072: (384-399): Unused local variable. +// Warning 6368: (489-493): CHC: Out of bounds access happens here. +// Warning 6368: (955-959): CHC: Out of bounds access happens here. +// Warning 6328: (948-965): CHC: Assertion violation happens here. +// Warning 6368: (976-980): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_4.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_4.sol index 11ec4eda8..f64c080ef 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_4.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -29,6 +27,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2018: (519-698): Function state mutability can be restricted to view +// Warning 2018: (486-665): Function state mutability can be restricted to view diff --git a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_5.sol b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_5.sol index 328dce06a..9f111dfb4 100644 --- a/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_5.sol +++ b/test/libsolidity/smtCheckerTests/types/array_aliasing_storage_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] b; @@ -32,13 +30,14 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (362-366): CHC: Out of bounds access happens here. -// Warning 6368: (375-379): CHC: Out of bounds access happens here. -// Warning 6368: (388-392): CHC: Out of bounds access happens here. -// Warning 6368: (400-404): CHC: Out of bounds access happens here. -// Warning 6368: (523-527): CHC: Out of bounds access happens here. -// Warning 6368: (725-729): CHC: Out of bounds access happens here. -// Warning 6328: (718-735): CHC: Assertion violation happens here. -// Warning 6368: (829-833): CHC: Out of bounds access happens here. +// Warning 6368: (329-333): CHC: Out of bounds access happens here. +// Warning 6368: (342-346): CHC: Out of bounds access happens here. +// Warning 6368: (355-359): CHC: Out of bounds access happens here. +// Warning 6368: (367-371): CHC: Out of bounds access happens here. +// Warning 6368: (490-494): CHC: Out of bounds access happens here. +// Warning 6368: (692-696): CHC: Out of bounds access happens here. +// Warning 6328: (685-702): CHC: Assertion violation happens here. +// Warning 6368: (796-800): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_branch_1d.sol b/test/libsolidity/smtCheckerTests/types/array_branch_1d.sol index 50e58d3b8..b04c632e9 100644 --- a/test/libsolidity/smtCheckerTests/types/array_branch_1d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_branch_1d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool b, uint[] memory c) public pure { @@ -11,6 +9,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (176-192): CHC: Assertion violation happens here. +// Warning 6328: (143-159): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_branch_2d.sol b/test/libsolidity/smtCheckerTests/types/array_branch_2d.sol index af4218241..66d90ef35 100644 --- a/test/libsolidity/smtCheckerTests/types/array_branch_2d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_branch_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] c; @@ -16,4 +14,6 @@ contract C */ } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/array_branch_3d.sol b/test/libsolidity/smtCheckerTests/types/array_branch_3d.sol index 307fc64b6..c13842daa 100644 --- a/test/libsolidity/smtCheckerTests/types/array_branch_3d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_branch_3d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][][] c; @@ -15,11 +13,13 @@ contract C assert(c[0][0][0] > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (157-164): CHC: Out of bounds access might happen here. -// Warning 6368: (157-167): CHC: Out of bounds access might happen here. -// Warning 6368: (185-192): CHC: Out of bounds access might happen here. -// Warning 6368: (185-195): CHC: Out of bounds access might happen here. -// Warning 6368: (210-217): CHC: Out of bounds access might happen here. -// Warning 6368: (210-220): CHC: Out of bounds access might happen here. -// Warning 6328: (203-225): CHC: Assertion violation happens here.\nCounterexample:\nc = [[[0]]]\nb = false\n\nTransaction trace:\nC.constructor()\nState: c = [[[0]]]\nC.f(false) +// Warning 6368: (124-131): CHC: Out of bounds access might happen here. +// Warning 6368: (124-134): CHC: Out of bounds access might happen here. +// Warning 6368: (152-159): CHC: Out of bounds access might happen here. +// Warning 6368: (152-162): CHC: Out of bounds access might happen here. +// Warning 6368: (177-184): CHC: Out of bounds access might happen here. +// Warning 6368: (177-187): CHC: Out of bounds access might happen here. +// Warning 6328: (170-192): CHC: Assertion violation happens here.\nCounterexample:\nc = [[[0]]]\nb = false\n\nTransaction trace:\nC.constructor()\nState: c = [[[0]]]\nC.f(false) diff --git a/test/libsolidity/smtCheckerTests/types/array_branches_1d.sol b/test/libsolidity/smtCheckerTests/types/array_branches_1d.sol index 357756626..748409ba2 100644 --- a/test/libsolidity/smtCheckerTests/types/array_branches_1d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_branches_1d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool b, uint[] memory c) public pure { @@ -12,4 +10,6 @@ contract C assert(c[0] > 0); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/array_branches_2d.sol b/test/libsolidity/smtCheckerTests/types/array_branches_2d.sol index 192532960..d61b4df55 100644 --- a/test/libsolidity/smtCheckerTests/types/array_branches_2d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_branches_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] c; @@ -17,3 +15,5 @@ contract C assert(c[0][0] > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_branches_3d.sol b/test/libsolidity/smtCheckerTests/types/array_branches_3d.sol index a47f78fd2..ebd28101d 100644 --- a/test/libsolidity/smtCheckerTests/types/array_branches_3d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_branches_3d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][][] c; @@ -15,10 +13,12 @@ contract C assert(c[0][0][0] < 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (157-164): CHC: Out of bounds access might happen here. -// Warning 6368: (157-167): CHC: Out of bounds access might happen here. -// Warning 6368: (185-192): CHC: Out of bounds access might happen here. -// Warning 6368: (185-195): CHC: Out of bounds access might happen here. -// Warning 6368: (210-217): CHC: Out of bounds access might happen here. -// Warning 6368: (210-220): CHC: Out of bounds access might happen here. +// Warning 6368: (124-131): CHC: Out of bounds access might happen here. +// Warning 6368: (124-134): CHC: Out of bounds access might happen here. +// Warning 6368: (152-159): CHC: Out of bounds access might happen here. +// Warning 6368: (152-162): CHC: Out of bounds access might happen here. +// Warning 6368: (177-184): CHC: Out of bounds access might happen here. +// Warning 6368: (177-187): CHC: Out of bounds access might happen here. diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_1.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_1.sol index ad36f5efe..43bf2639c 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -16,3 +14,5 @@ contract C assert(array[y] > 100); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_1_fail.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_1_fail.sol index 3e2254785..8c243d4ae 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] array; @@ -11,5 +9,7 @@ contract C assert(array[y] > 300); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (205-227): CHC: Assertion violation happens here.\nCounterexample:\narray = [200]\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.p()\nState: array = [0]\nC.f(0, 0) +// Warning 6328: (172-194): CHC: Assertion violation happens here.\nCounterexample:\narray = [200]\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.p()\nState: array = [0]\nC.f(0, 0) diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_2.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_2.sol index a80781b4b..87ef3abcb 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] array; @@ -9,6 +7,8 @@ contract C assert(array[z][t] > 100); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (131-139): CHC: Out of bounds access happens here.\nCounterexample:\narray = []\nx = 0\ny = 0\nz = 0\nt = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.f(0, 0, 0, 0) -// Warning 6368: (131-142): CHC: Out of bounds access happens here.\nCounterexample:\narray = []\nx = 38\ny = 0\nz = 0\nt = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.f(38, 0, 0, 0) +// Warning 6368: (98-106): CHC: Out of bounds access happens here.\nCounterexample:\narray = []\nx = 0\ny = 0\nz = 0\nt = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.f(0, 0, 0, 0) +// Warning 6368: (98-109): CHC: Out of bounds access happens here.\nCounterexample:\narray = []\nx = 38\ny = 0\nz = 0\nt = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.f(38, 0, 0, 0) diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_2_fail.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_2_fail.sol index 30e06ab5c..8de55bc9b 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_2_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][] array; @@ -14,5 +12,7 @@ contract C assert(array[z][t] > 300); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (278-303): CHC: Assertion violation happens here.\nCounterexample:\narray = [[200]]\nx = 0\ny = 0\nz = 0\nt = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.a()\nState: array = [[0]]\nC.f(0, 0, 0, 0) +// Warning 6328: (245-270): CHC: Assertion violation happens here.\nCounterexample:\narray = [[200]]\nx = 0\ny = 0\nz = 0\nt = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.a()\nState: array = [[0]]\nC.f(0, 0, 0, 0) diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_3.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_3.sol index 052e97d7f..c60b15551 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_3.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][][] array; @@ -12,3 +10,5 @@ contract C assert(array[t][w][v] > 100); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_3_fail.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_3_fail.sol index c2e8389d3..53ac92a7c 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_3_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_3_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[][][] array; @@ -15,5 +13,7 @@ contract C assert(array[t][w][v] > 300); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (351-379): CHC: Assertion violation happens here.\nCounterexample:\narray = [[[200]]]\nx = 0\ny = 0\nz = 0\nt = 0\nw = 0\nv = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.p()\nState: array = [[[0]]]\nC.f(0, 0, 0, 0, 0, 0) +// Warning 6328: (318-346): CHC: Assertion violation happens here.\nCounterexample:\narray = [[[200]]]\nx = 0\ny = 0\nz = 0\nt = 0\nw = 0\nv = 0\n\nTransaction trace:\nC.constructor()\nState: array = []\nC.p()\nState: array = [[[0]]]\nC.f(0, 0, 0, 0, 0, 0) diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1.sol index eae85601d..2bb2a00b5 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint[] memory array, uint x, uint y) public pure { @@ -9,3 +7,5 @@ contract C assert(array[y] > 100); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1_fail.sol b/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1_fail.sol index 4b187f12e..f8d3ad887 100644 --- a/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_dynamic_parameter_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint[] memory array, uint x, uint y) public pure { @@ -9,5 +7,7 @@ contract C assert(array[y] > 300); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (177-199): CHC: Assertion violation happens here.\nCounterexample:\n\narray = [9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 12, 9, 9, 9, 9, 9, 9, 9, 9, 21, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 200]\nx = 38\ny = 38\n\nTransaction trace:\nC.constructor()\nC.f([9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 12, 9, 9, 9, 9, 9, 9, 9, 9, 21, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 199], 38, 38) +// Warning 6328: (144-166): CHC: Assertion violation happens here.\nCounterexample:\n\narray = [9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 12, 9, 9, 9, 9, 9, 9, 9, 9, 21, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 200]\nx = 38\ny = 38\n\nTransaction trace:\nC.constructor()\nC.f([9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 12, 9, 9, 9, 9, 9, 9, 9, 9, 21, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 199], 38, 38) diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_1.sol b/test/libsolidity/smtCheckerTests/types/array_literal_1.sol index 1a6fb3b51..49f65c06d 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -9,4 +7,6 @@ contract C assert(array[2] == 3); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_2.sol b/test/libsolidity/smtCheckerTests/types/array_literal_2.sol index 826c85461..0062594d8 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -10,5 +8,7 @@ contract C assert(a[2] == b[2]); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (200-220): CHC: Assertion violation happens here.\nCounterexample:\n\na = [1, 2, 3]\nb = [1, 2, 4]\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (167-187): CHC: Assertion violation happens here.\nCounterexample:\n\na = [1, 2, 3]\nb = [1, 2, 4]\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_3.sol b/test/libsolidity/smtCheckerTests/types/array_literal_3.sol index 6d25027b7..3152f0e1e 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_3.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -9,5 +7,7 @@ contract C assert(a[2] == b[2]); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (201-221): CHC: Assertion violation happens here. +// Warning 6328: (168-188): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_4.sol b/test/libsolidity/smtCheckerTests/types/array_literal_4.sol index 1606c43fa..bf2f66ccd 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_4.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bool c) public pure { @@ -10,4 +8,6 @@ contract C assert(a[2] == b[2]); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_5.sol b/test/libsolidity/smtCheckerTests/types/array_literal_5.sol index 1a73de324..f152e2cb1 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_5.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] s; @@ -12,5 +10,7 @@ contract C assert(s[2] != a[2]); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (209-229): CHC: Assertion violation happens here.\nCounterexample:\ns = [1, 2, 3]\na = [1, 2, 3]\n\nTransaction trace:\nC.constructor()\nState: s = []\nC.f() +// Warning 6328: (176-196): CHC: Assertion violation happens here.\nCounterexample:\ns = [1, 2, 3]\na = [1, 2, 3]\n\nTransaction trace:\nC.constructor()\nState: s = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_6.sol b/test/libsolidity/smtCheckerTests/types/array_literal_6.sol index 4b36a1395..0ce378e42 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_6.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -13,6 +11,8 @@ contract C assert(a[2] == c[3]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (179-207): CHC: Assertion violation happens here.\nCounterexample:\n\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (268-288): CHC: Assertion violation happens here.\nCounterexample:\n\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (146-174): CHC: Assertion violation happens here.\nCounterexample:\n\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (235-255): CHC: Assertion violation happens here.\nCounterexample:\n\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/array_literal_7.sol b/test/libsolidity/smtCheckerTests/types/array_literal_7.sol index f9401a56c..ba81e3c9e 100644 --- a/test/libsolidity/smtCheckerTests/types/array_literal_7.sol +++ b/test/libsolidity/smtCheckerTests/types/array_literal_7.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] s; @@ -18,6 +16,8 @@ contract C assert(s[2] == c[3]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (259-287): CHC: Assertion violation happens here.\nCounterexample:\ns = [1, 2, 3]\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nState: s = []\nC.f() -// Warning 6328: (348-368): CHC: Assertion violation happens here.\nCounterexample:\ns = [1, 2, 3]\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nState: s = []\nC.f() +// Warning 6328: (226-254): CHC: Assertion violation happens here.\nCounterexample:\ns = [1, 2, 3]\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nState: s = []\nC.f() +// Warning 6328: (315-335): CHC: Assertion violation happens here.\nCounterexample:\ns = [1, 2, 3]\na = [1, 2, 3]\nb = [1, 2, 4, 3]\nc = [1, 2, 4, 3]\n\nTransaction trace:\nC.constructor()\nState: s = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_1.sol b/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_1.sol index 44f6206ba..65f629cb2 100644 --- a/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) singleMap; @@ -35,7 +33,8 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (739-753): CHC: Out of bounds access happens here. -// Warning 6328: (732-763): CHC: Assertion violation happens here. +// Warning 6368: (706-720): CHC: Out of bounds access happens here. +// Warning 6328: (699-730): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_2.sol b/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_2.sol index d2a4ccf68..07e09a9e8 100644 --- a/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_mapping_aliasing_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) singleMap; @@ -34,13 +32,14 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (472-486): CHC: Out of bounds access happens here. -// Warning 6368: (525-541): CHC: Out of bounds access happens here. -// Warning 6368: (525-544): CHC: Out of bounds access happens here. -// Warning 6368: (655-669): CHC: Out of bounds access happens here. -// Warning 6368: (883-899): CHC: Out of bounds access happens here. -// Warning 6368: (883-902): CHC: Out of bounds access happens here. -// Warning 6328: (969-989): CHC: Assertion violation happens here. -// Warning 6368: (1062-1076): CHC: Out of bounds access might happen here. +// Warning 6368: (439-453): CHC: Out of bounds access happens here. +// Warning 6368: (492-508): CHC: Out of bounds access happens here. +// Warning 6368: (492-511): CHC: Out of bounds access happens here. +// Warning 6368: (622-636): CHC: Out of bounds access happens here. +// Warning 6368: (850-866): CHC: Out of bounds access happens here. +// Warning 6368: (850-869): CHC: Out of bounds access happens here. +// Warning 6328: (936-956): CHC: Assertion violation happens here. +// Warning 6368: (1029-1043): CHC: Out of bounds access might happen here. diff --git a/test/libsolidity/smtCheckerTests/types/array_static_1.sol b/test/libsolidity/smtCheckerTests/types/array_static_1.sol index 3d85a0715..dc894c8ee 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[10] array; @@ -10,3 +8,5 @@ contract C assert(array[y] > 100); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_static_1_fail.sol b/test/libsolidity/smtCheckerTests/types/array_static_1_fail.sol index dabc8d749..21ad979b0 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[10] array; @@ -10,5 +8,7 @@ contract C assert(array[y] > 300); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (168-190): CHC: Assertion violation happens here.\nCounterexample:\narray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 200]\nx = 9\ny = 9\n\nTransaction trace:\nC.constructor()\nState: array = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\nC.f(9, 9) +// Warning 6328: (135-157): CHC: Assertion violation happens here.\nCounterexample:\narray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 200]\nx = 9\ny = 9\n\nTransaction trace:\nC.constructor()\nState: array = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\nC.f(9, 9) diff --git a/test/libsolidity/smtCheckerTests/types/array_static_2.sol b/test/libsolidity/smtCheckerTests/types/array_static_2.sol index e516a2246..88d10192d 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[10][20] array; @@ -11,3 +9,5 @@ contract C assert(array[z][t] > 100); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_static_2_fail.sol b/test/libsolidity/smtCheckerTests/types/array_static_2_fail.sol index 32139b4b0..9c713eb25 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_2_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[10][20] array; @@ -11,5 +9,7 @@ contract C assert(array[z][t] > 300); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (247-272): CHC: Assertion violation happens here.\nCounterexample:\narray = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]\nx = 19\ny = 8\nz = 19\nt = 8\n\nTransaction trace:\nC.constructor()\nState: array = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]\nC.f(19, 8, 19, 8) +// Warning 6328: (214-239): CHC: Assertion violation happens here.\nCounterexample:\narray = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]\nx = 19\ny = 8\nz = 19\nt = 8\n\nTransaction trace:\nC.constructor()\nState: array = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]\nC.f(19, 8, 19, 8) diff --git a/test/libsolidity/smtCheckerTests/types/array_static_3.sol b/test/libsolidity/smtCheckerTests/types/array_static_3.sol index 232d575ad..4d7f87993 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_3.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[10][20][30] array; @@ -12,3 +10,5 @@ contract C assert(array[t][w][v] > 100); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/array_static_3_fail.sol b/test/libsolidity/smtCheckerTests/types/array_static_3_fail.sol index 3cad8770e..8737cec63 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_3_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_3_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[10][20][30] array; @@ -12,5 +10,7 @@ contract C assert(array[t][w][v] > 300); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (301-329): CHC: Assertion violation happens here.\nCounterexample:\narray = [[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 200], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]]\nx = 29\ny = 17\nz = 9\nt = 29\nw = 17\nv = 9\n\nTransaction trace:\nC.constructor()\nState: array = [[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]]\nC.f(29, 17, 9, 29, 17, 9) +// Warning 6328: (268-296): CHC: Assertion violation happens here.\nCounterexample:\narray = [[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 200], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]]\nx = 29\ny = 17\nz = 9\nt = 29\nw = 17\nv = 9\n\nTransaction trace:\nC.constructor()\nState: array = [[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]]\nC.f(29, 17, 9, 29, 17, 9) diff --git a/test/libsolidity/smtCheckerTests/types/array_static_aliasing_memory_5.sol b/test/libsolidity/smtCheckerTests/types/array_static_aliasing_memory_5.sol index b85c5459e..15b7aed31 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_aliasing_memory_5.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_aliasing_memory_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint[2] memory a, uint[2] memory b, uint[2] memory c) public pure { @@ -18,6 +16,8 @@ contract C assert(b[0] == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (500-504): CHC: Out of bounds access happens here. -// Warning 6328: (493-510): CHC: Assertion violation happens here. +// Warning 6368: (467-471): CHC: Out of bounds access happens here. +// Warning 6328: (460-477): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_static_aliasing_storage_5.sol b/test/libsolidity/smtCheckerTests/types/array_static_aliasing_storage_5.sol index 7261d7529..8841942d7 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_aliasing_storage_5.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_aliasing_storage_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[2] b1; @@ -23,10 +21,11 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (198-202): CHC: Out of bounds access happens here. -// Warning 6368: (211-215): CHC: Out of bounds access happens here. -// Warning 6368: (223-228): CHC: Out of bounds access happens here. -// Warning 6368: (347-351): CHC: Out of bounds access happens here. -// Warning 6368: (473-478): CHC: Out of bounds access happens here. +// Warning 6368: (165-169): CHC: Out of bounds access happens here. +// Warning 6368: (178-182): CHC: Out of bounds access happens here. +// Warning 6368: (190-195): CHC: Out of bounds access happens here. +// Warning 6368: (314-318): CHC: Out of bounds access happens here. +// Warning 6368: (440-445): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_1.sol b/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_1.sol index 8f9c3388a..61b7a80f2 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_1.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) singleMap; @@ -26,9 +24,10 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (386-402): CHC: Out of bounds access happens here. -// Warning 6368: (386-405): CHC: Out of bounds access happens here. -// Warning 6368: (496-510): CHC: Out of bounds access happens here. -// Warning 6328: (489-520): CHC: Assertion violation happens here. +// Warning 6368: (353-369): CHC: Out of bounds access happens here. +// Warning 6368: (353-372): CHC: Out of bounds access happens here. +// Warning 6368: (463-477): CHC: Out of bounds access happens here. +// Warning 6328: (456-487): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_2.sol b/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_2.sol index 93bb86d25..1c9b9e23b 100644 --- a/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_2.sol +++ b/test/libsolidity/smtCheckerTests/types/array_static_mapping_aliasing_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) singleMap; @@ -29,12 +27,13 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6368: (347-361): CHC: Out of bounds access happens here. -// Warning 6368: (400-416): CHC: Out of bounds access happens here. -// Warning 6368: (400-419): CHC: Out of bounds access happens here. -// Warning 6368: (530-544): CHC: Out of bounds access happens here. -// Warning 6328: (893-913): CHC: Assertion violation happens here. -// Warning 6368: (969-985): CHC: Out of bounds access might happen here. -// Warning 6368: (969-988): CHC: Out of bounds access might happen here. +// Warning 6368: (314-328): CHC: Out of bounds access happens here. +// Warning 6368: (367-383): CHC: Out of bounds access happens here. +// Warning 6368: (367-386): CHC: Out of bounds access happens here. +// Warning 6368: (497-511): CHC: Out of bounds access happens here. +// Warning 6328: (860-880): CHC: Assertion violation happens here. +// Warning 6368: (936-952): CHC: Out of bounds access might happen here. +// Warning 6368: (936-955): CHC: Out of bounds access might happen here. diff --git a/test/libsolidity/smtCheckerTests/types/array_struct_array_branches_2d.sol b/test/libsolidity/smtCheckerTests/types/array_struct_array_branches_2d.sol index dd12ca087..cc82aa924 100644 --- a/test/libsolidity/smtCheckerTests/types/array_struct_array_branches_2d.sol +++ b/test/libsolidity/smtCheckerTests/types/array_struct_array_branches_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint[][] a; } @@ -18,6 +16,8 @@ contract C */ } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (84-90): Unused function parameter. Remove or comment out the variable name to silence this warning. -// Warning 2072: (108-120): Unused local variable. +// Warning 5667: (51-57): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 2072: (75-87): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/types/bool_int_mixed_1.sol b/test/libsolidity/smtCheckerTests/types/bool_int_mixed_1.sol index d611cc177..bb70c89e5 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_int_mixed_1.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_int_mixed_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool x) public pure { uint a; @@ -7,3 +6,5 @@ contract C { assert(!x || a > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/bool_int_mixed_2.sol b/test/libsolidity/smtCheckerTests/types/bool_int_mixed_2.sol index 24640c5a8..f8a80d434 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_int_mixed_2.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_int_mixed_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool x, uint a) public pure { require(!x || a > 0); @@ -6,3 +5,5 @@ contract C { assert(!x || b > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/bool_int_mixed_3.sol b/test/libsolidity/smtCheckerTests/types/bool_int_mixed_3.sol index f872e82ff..56747445f 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_int_mixed_3.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_int_mixed_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool x, bool y) public pure { uint a; @@ -19,3 +18,5 @@ contract C { assert(!xor_x_y || a > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/bool_simple_1.sol b/test/libsolidity/smtCheckerTests/types/bool_simple_1.sol index e44e8dd27..52b05f3bd 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_simple_1.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_simple_1.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f(bool x) public pure { assert(x); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (90-99): CHC: Assertion violation happens here.\nCounterexample:\n\nx = false\n\nTransaction trace:\nC.constructor()\nC.f(false) +// Warning 6328: (58-67): CHC: Assertion violation happens here.\nCounterexample:\n\nx = false\n\nTransaction trace:\nC.constructor()\nC.f(false) diff --git a/test/libsolidity/smtCheckerTests/types/bool_simple_2.sol b/test/libsolidity/smtCheckerTests/types/bool_simple_2.sol index 50271f2dd..44daa8912 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_simple_2.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_simple_2.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f(bool x, bool y) public pure { assert(x == y); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (98-112): CHC: Assertion violation happens here.\nCounterexample:\n\nx = true\ny = false\n\nTransaction trace:\nC.constructor()\nC.f(true, false) +// Warning 6328: (66-80): CHC: Assertion violation happens here.\nCounterexample:\n\nx = true\ny = false\n\nTransaction trace:\nC.constructor()\nC.f(true, false) diff --git a/test/libsolidity/smtCheckerTests/types/bool_simple_3.sol b/test/libsolidity/smtCheckerTests/types/bool_simple_3.sol index 1d2ab49f7..8524ac5d1 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_simple_3.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_simple_3.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { function f(bool x, bool y) public pure { bool z = x || y; assert(!(x && y) || z); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/bool_simple_4.sol b/test/libsolidity/smtCheckerTests/types/bool_simple_4.sol index c40404a43..f31b31368 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_simple_4.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_simple_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool x) public pure { if(x) { @@ -8,3 +7,5 @@ contract C { } } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/bool_simple_5.sol b/test/libsolidity/smtCheckerTests/types/bool_simple_5.sol index 4cecebbc7..d87a5bfa3 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_simple_5.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_simple_5.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { function f(bool x) public pure { bool y = x; assert(x == y); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/bool_simple_6.sol b/test/libsolidity/smtCheckerTests/types/bool_simple_6.sol index 90350bb64..e29acfe32 100644 --- a/test/libsolidity/smtCheckerTests/types/bool_simple_6.sol +++ b/test/libsolidity/smtCheckerTests/types/bool_simple_6.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bool x) public pure { require(x); @@ -7,3 +6,5 @@ contract C { assert(x || y); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/bytes_1.sol b/test/libsolidity/smtCheckerTests/types/bytes_1.sol index 6958f2953..9dadcca14 100644 --- a/test/libsolidity/smtCheckerTests/types/bytes_1.sol +++ b/test/libsolidity/smtCheckerTests/types/bytes_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes memory b) public pure returns (bytes memory) { @@ -7,5 +5,7 @@ contract C return b; } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (113-127): Unused local variable. +// Warning 2072: (80-94): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/types/bytes_2.sol b/test/libsolidity/smtCheckerTests/types/bytes_2.sol index 202a66bb9..a0ab43bbf 100644 --- a/test/libsolidity/smtCheckerTests/types/bytes_2.sol +++ b/test/libsolidity/smtCheckerTests/types/bytes_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes memory b1, bytes memory b2) public pure { @@ -11,6 +9,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (270-292): CHC: Assertion violation happens here. +// Warning 6328: (237-259): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/bytes_2_fail.sol b/test/libsolidity/smtCheckerTests/types/bytes_2_fail.sol index 47acf4541..6acec4bef 100644 --- a/test/libsolidity/smtCheckerTests/types/bytes_2_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/bytes_2_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes memory b1, bytes memory b2) public pure { @@ -9,6 +7,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (162-184): CHC: Assertion violation happens here. +// Warning 6328: (129-151): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/bytes_length.sol b/test/libsolidity/smtCheckerTests/types/bytes_length.sol index e248165af..e965e9f31 100644 --- a/test/libsolidity/smtCheckerTests/types/bytes_length.sol +++ b/test/libsolidity/smtCheckerTests/types/bytes_length.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes memory x = hex"0123"; @@ -10,4 +8,6 @@ contract C { assert(x.length == 2); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/contract.sol b/test/libsolidity/smtCheckerTests/types/contract.sol index 39b6a024d..0ddc3e650 100644 --- a/test/libsolidity/smtCheckerTests/types/contract.sol +++ b/test/libsolidity/smtCheckerTests/types/contract.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(C c, C d) public pure { @@ -7,6 +5,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (84-98): CHC: Assertion violation happens here. +// Warning 6328: (51-65): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/contract_2.sol b/test/libsolidity/smtCheckerTests/types/contract_2.sol index c9e8c8ded..2357852d5 100644 --- a/test/libsolidity/smtCheckerTests/types/contract_2.sol +++ b/test/libsolidity/smtCheckerTests/types/contract_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract D { uint x; @@ -12,6 +10,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (109-123): CHC: Assertion violation happens here. +// Warning 6328: (76-90): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/contract_3.sol b/test/libsolidity/smtCheckerTests/types/contract_3.sol index 5508a6263..df6d4f0fb 100644 --- a/test/libsolidity/smtCheckerTests/types/contract_3.sol +++ b/test/libsolidity/smtCheckerTests/types/contract_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(C c, C d, C e) public pure { @@ -8,3 +6,5 @@ contract C assert(c == e); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/contract_address_conversion.sol b/test/libsolidity/smtCheckerTests/types/contract_address_conversion.sol index 32092ff37..a0148e876 100644 --- a/test/libsolidity/smtCheckerTests/types/contract_address_conversion.sol +++ b/test/libsolidity/smtCheckerTests/types/contract_address_conversion.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(C c, address a) public pure { @@ -7,6 +5,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (90-113): CHC: Assertion violation happens here. +// Warning 6328: (57-80): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/contract_address_conversion_2.sol b/test/libsolidity/smtCheckerTests/types/contract_address_conversion_2.sol index e37c7acba..f0607ebfe 100644 --- a/test/libsolidity/smtCheckerTests/types/contract_address_conversion_2.sol +++ b/test/libsolidity/smtCheckerTests/types/contract_address_conversion_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(C c, C d) public pure { @@ -9,3 +7,5 @@ contract C assert(a == address(d)); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/data_location_in_function_type.sol b/test/libsolidity/smtCheckerTests/types/data_location_in_function_type.sol index 9aa72ea7d..cbb9bc188 100644 --- a/test/libsolidity/smtCheckerTests/types/data_location_in_function_type.sol +++ b/test/libsolidity/smtCheckerTests/types/data_location_in_function_type.sol @@ -1,5 +1,6 @@ -pragma experimental SMTChecker; library L { struct Nested { uint y; } function c(function(Nested memory) external returns (uint)[] storage) external pure {} } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/enum_explicit_values.sol b/test/libsolidity/smtCheckerTests/types/enum_explicit_values.sol index a474da41f..0e1907039 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_explicit_values.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_explicit_values.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum D { Left, Right } @@ -10,3 +8,5 @@ contract C assert(d != _a); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/enum_explicit_values_2.sol b/test/libsolidity/smtCheckerTests/types/enum_explicit_values_2.sol index 42422b7fb..23a9d20d1 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_explicit_values_2.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_explicit_values_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum D { Left, Right } @@ -10,5 +8,7 @@ contract C assert(d != _a); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (144-159): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\n_a = 0\n\nTransaction trace:\nC.constructor()\nState: d = 0\nC.f(0) +// Warning 6328: (111-126): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\n_a = 0\n\nTransaction trace:\nC.constructor()\nState: d = 0\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/types/enum_in_library.sol b/test/libsolidity/smtCheckerTests/types/enum_in_library.sol index 9c1c3caaa..9b84ebda1 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_in_library.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_in_library.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library L { enum D { Left, Right } @@ -13,3 +11,5 @@ contract C assert(_d == E.Left); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/enum_in_library_2.sol b/test/libsolidity/smtCheckerTests/types/enum_in_library_2.sol index 51a9b2475..ef3f42091 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_in_library_2.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_in_library_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - library L { enum D { Left, Right } @@ -13,5 +11,7 @@ contract C assert(_d == E.Left); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (159-179): CHC: Assertion violation happens here.\nCounterexample:\n\n_d = 1\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (126-146): CHC: Assertion violation happens here.\nCounterexample:\n\n_d = 1\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/types/enum_in_struct.sol b/test/libsolidity/smtCheckerTests/types/enum_in_struct.sol index 179b624fd..e7b2da712 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_in_struct.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_in_struct.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C @@ -10,4 +9,6 @@ contract C assert(s.d == D.Left); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/enum_range.sol b/test/libsolidity/smtCheckerTests/types/enum_range.sol index 144b1886b..0ec3c86cb 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_range.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_range.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum D { Left, Right } @@ -7,3 +5,5 @@ contract C assert(a == D.Left || a == D.Right); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/enum_storage_eq.sol b/test/libsolidity/smtCheckerTests/types/enum_storage_eq.sol index f999f02cb..9a1ab6d32 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_storage_eq.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_storage_eq.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum D { Left, Right } @@ -9,5 +7,7 @@ contract C assert(d != _d); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (115-130): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\n_d = 0\n\nTransaction trace:\nC.constructor()\nState: d = 0\nC.f(0) +// Warning 6328: (82-97): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\n_d = 0\n\nTransaction trace:\nC.constructor()\nState: d = 0\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/types/enum_transitivity.sol b/test/libsolidity/smtCheckerTests/types/enum_transitivity.sol index 8946aae52..71cf88551 100644 --- a/test/libsolidity/smtCheckerTests/types/enum_transitivity.sol +++ b/test/libsolidity/smtCheckerTests/types/enum_transitivity.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { enum D { Left, Right } @@ -10,3 +8,5 @@ contract C assert(d == _b); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/event_with_rational_size_array.sol b/test/libsolidity/smtCheckerTests/types/event_with_rational_size_array.sol index 98dfcec33..982ec2ef6 100644 --- a/test/libsolidity/smtCheckerTests/types/event_with_rational_size_array.sol +++ b/test/libsolidity/smtCheckerTests/types/event_with_rational_size_array.sol @@ -1,2 +1,3 @@ -pragma experimental SMTChecker; contract a { event b(uint[(1 / 1)]); } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_1.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_1.sol index 900dd9529..3fc25a3c3 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_1.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes32 x; @@ -12,7 +10,8 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (96-110): CHC: Assertion violation happens here. -// Warning 6328: (114-130): CHC: Assertion violation happens here. +// Warning 6328: (63-77): CHC: Assertion violation happens here. +// Warning 6328: (81-97): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_2.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_2.sol index 0388174ee..cb8caa3c7 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_2.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { bytes32 x; @@ -11,5 +9,7 @@ contract C return x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (116-130): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f(0)\n C.g() -- internal call +// Warning 6328: (83-97): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\ny = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f(0)\n C.g() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_1.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_1.sol index 76e8c2ead..2aee19042 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_1.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_1.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract c { bytes10[6] data2; function test() public view returns (bytes10 r2) { r2 = data2[4][5]; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_2.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_2.sol index 710aae916..689db06c7 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_2.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(bytes calldata x, uint y) external pure { require(x.length > 10); @@ -8,6 +7,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 5667: (75-81): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 5667: (43-49): Unused function parameter. Remove or comment out the variable name to silence this warning. diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_3.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_3.sol index 6914997bb..941cfd237 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_3.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { bytes16[][] a; constructor() { @@ -29,5 +28,7 @@ contract C { h()[5]; } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (488-494): CHC: Out of bounds access happens here. +// Warning 6368: (456-462): CHC: Out of bounds access happens here. diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_4.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_4.sol index c6fdb936b..ed675ce60 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_4.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes32 x = 0x00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff; @@ -11,5 +9,7 @@ contract C { assert(x[0] == x[23]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (264-285): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 450552876409790643671482431940419874915447411150352389258589821042463539455\nz = 0\no = 255\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (231-252): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 450552876409790643671482431940419874915447411150352389258589821042463539455\nz = 0\no = 255\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_5.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_5.sol index 75069d37f..d2d4956f2 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_5.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes4 x = 0x01020304; @@ -10,7 +8,9 @@ contract C { assert(x[3] == b); // fails } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (120-137): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 16909060\nb = 2\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (171-188): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 16909060\nb = 2\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (201-218): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 16909060\nb = 2\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (87-104): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 16909060\nb = 2\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (138-155): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 16909060\nb = 2\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (168-185): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 16909060\nb = 2\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_6.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_6.sol index 0a0edf864..38e654ea4 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_6.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { bytes4 x = 0x01020304; @@ -9,3 +7,5 @@ contract C { assert(b == b[0][0][0][0][0][0][0][0][0][0][0]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_7.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_7.sol index 9d47088e6..e264cf713 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_7.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_access_7.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint i) public pure { bytes4 x = 0x01020304; @@ -7,6 +5,8 @@ contract C { assert(x[i] == 0x00); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (132-136): CHC: Out of bounds access happens here.\nCounterexample:\n\ni = 4\nx = 16909060\n\nTransaction trace:\nC.constructor()\nC.f(4) -// Warning 6328: (125-145): CHC: Assertion violation happens here.\nCounterexample:\n\ni = 4\nx = 16909060\n\nTransaction trace:\nC.constructor()\nC.f(4) +// Warning 6368: (99-103): CHC: Out of bounds access happens here.\nCounterexample:\n\ni = 4\nx = 16909060\n\nTransaction trace:\nC.constructor()\nC.f(4) +// Warning 6328: (92-112): CHC: Assertion violation happens here.\nCounterexample:\n\ni = 4\nx = 16909060\n\nTransaction trace:\nC.constructor()\nC.f(4) diff --git a/test/libsolidity/smtCheckerTests/types/fixed_bytes_range.sol b/test/libsolidity/smtCheckerTests/types/fixed_bytes_range.sol index 7f2643cd7..5a621ff3e 100644 --- a/test/libsolidity/smtCheckerTests/types/fixed_bytes_range.sol +++ b/test/libsolidity/smtCheckerTests/types/fixed_bytes_range.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes1 b) public pure { @@ -8,3 +6,5 @@ contract C { assert(uint8(b) > 127); // should hold } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/function_in_tuple_1.sol b/test/libsolidity/smtCheckerTests/types/function_in_tuple_1.sol index 1a41149e9..053ac9c6a 100644 --- a/test/libsolidity/smtCheckerTests/types/function_in_tuple_1.sol +++ b/test/libsolidity/smtCheckerTests/types/function_in_tuple_1.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract K { function f() public pure { (abi.encode, 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (76-91): Statement has no effect. +// Warning 6133: (43-58): Statement has no effect. diff --git a/test/libsolidity/smtCheckerTests/types/function_in_tuple_2.sol b/test/libsolidity/smtCheckerTests/types/function_in_tuple_2.sol index f64311922..df15f1e5d 100644 --- a/test/libsolidity/smtCheckerTests/types/function_in_tuple_2.sol +++ b/test/libsolidity/smtCheckerTests/types/function_in_tuple_2.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract K { function f() public pure { (abi.encode, ""); } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (76-92): Statement has no effect. +// Warning 6133: (43-59): Statement has no effect. diff --git a/test/libsolidity/smtCheckerTests/types/function_type_array_as_reference_type.sol b/test/libsolidity/smtCheckerTests/types/function_type_array_as_reference_type.sol index 2500d3ec7..fc913702b 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_array_as_reference_type.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_array_as_reference_type.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct Nested { uint y; } // ensure that we consider array of function pointers as reference type @@ -6,4 +5,6 @@ contract C { function c(function(Nested memory) external returns (uint)[] memory) public pure {} function d(function(Nested memory) external returns (uint)[] calldata) external pure {} } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/function_type_arrays.sol b/test/libsolidity/smtCheckerTests/types/function_type_arrays.sol index a0ebf4379..baa8a1de9 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_arrays.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_arrays.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function(uint) external returns (uint)[] public x; function(uint) internal returns (uint)[10] y; @@ -11,4 +10,6 @@ contract C { a; b; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/function_type_as_argument.sol b/test/libsolidity/smtCheckerTests/types/function_type_as_argument.sol index 0ba33e408..41b483866 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_as_argument.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_as_argument.sol @@ -1,5 +1,6 @@ -pragma experimental SMTChecker; contract C { function f(function(uint) external g) public { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/function_type_call.sol b/test/libsolidity/smtCheckerTests/types/function_type_call.sol index a41bc035c..b4ecead76 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_call.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_call.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function(uint) m_g; function f(function(uint) internal g) internal { @@ -8,6 +7,8 @@ contract C { f(m_g); } } +// ==== +// SMTEngine: all // ---- -// Warning 5729: (121-125): BMC does not yet implement this type of function call. -// Warning 5729: (121-125): BMC does not yet implement this type of function call. +// Warning 5729: (89-93): BMC does not yet implement this type of function call. +// Warning 5729: (89-93): BMC does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/types/function_type_external_address.sol b/test/libsolidity/smtCheckerTests/types/function_type_external_address.sol index 07bcce0a8..cb16bebb6 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_external_address.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_external_address.sol @@ -1,10 +1,11 @@ -pragma experimental SMTChecker; contract C { function f(address a, function(uint) external g) internal pure { address b = g.address; assert(a == b); } } +// ==== +// SMTEngine: all // ---- -// Warning 7650: (128-137): Assertion checker does not yet support this expression. -// Warning 7650: (128-137): Assertion checker does not yet support this expression. +// Warning 7650: (96-105): Assertion checker does not yet support this expression. +// Warning 7650: (96-105): Assertion checker does not yet support this expression. diff --git a/test/libsolidity/smtCheckerTests/types/function_type_members.sol b/test/libsolidity/smtCheckerTests/types/function_type_members.sol index b5f825b2b..3eb2b9814 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_members.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_members.sol @@ -1,10 +1,11 @@ -pragma experimental SMTChecker; contract C { function f(function(uint) external payable g) internal { g.selector; g{gas: 2, value: 3}(4); } } +// ==== +// SMTEngine: all // ---- -// Warning 7650: (108-118): Assertion checker does not yet support this expression. -// Warning 7650: (108-118): Assertion checker does not yet support this expression. +// Warning 7650: (76-86): Assertion checker does not yet support this expression. +// Warning 7650: (76-86): Assertion checker does not yet support this expression. diff --git a/test/libsolidity/smtCheckerTests/types/function_type_nested.sol b/test/libsolidity/smtCheckerTests/types/function_type_nested.sol index 40fa83699..1391361a3 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_nested.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_nested.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function(uint) m_g; function f1(function(uint) internal g1) internal { @@ -11,15 +10,17 @@ contract C { f2(f1); } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (152-197): Assertion checker does not yet support the type of this variable. -// Warning 8364: (212-214): Assertion checker does not yet implement type function (function (uint256)) -// Warning 6031: (255-257): Internal error: Expression undefined for SMT solver. -// Warning 8364: (255-257): Assertion checker does not yet implement type function (function (uint256)) -// Warning 5729: (123-128): BMC does not yet implement this type of function call. -// Warning 8115: (152-197): Assertion checker does not yet support the type of this variable. -// Warning 8364: (212-214): Assertion checker does not yet implement type function (function (uint256)) -// Warning 5729: (212-219): BMC does not yet implement this type of function call. -// Warning 6031: (255-257): Internal error: Expression undefined for SMT solver. -// Warning 8364: (255-257): Assertion checker does not yet implement type function (function (uint256)) -// Warning 5729: (212-219): BMC does not yet implement this type of function call. +// Warning 8115: (120-165): Assertion checker does not yet support the type of this variable. +// Warning 8364: (180-182): Assertion checker does not yet implement type function (function (uint256)) +// Warning 6031: (223-225): Internal error: Expression undefined for SMT solver. +// Warning 8364: (223-225): Assertion checker does not yet implement type function (function (uint256)) +// Warning 5729: (91-96): BMC does not yet implement this type of function call. +// Warning 8115: (120-165): Assertion checker does not yet support the type of this variable. +// Warning 8364: (180-182): Assertion checker does not yet implement type function (function (uint256)) +// Warning 5729: (180-187): BMC does not yet implement this type of function call. +// Warning 6031: (223-225): Internal error: Expression undefined for SMT solver. +// Warning 8364: (223-225): Assertion checker does not yet implement type function (function (uint256)) +// Warning 5729: (180-187): BMC does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/types/function_type_nested_return.sol b/test/libsolidity/smtCheckerTests/types/function_type_nested_return.sol index ad2d02fa9..e07abfdd0 100644 --- a/test/libsolidity/smtCheckerTests/types/function_type_nested_return.sol +++ b/test/libsolidity/smtCheckerTests/types/function_type_nested_return.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function(uint) m_g; function r() internal view returns (function(uint)) { @@ -14,17 +13,19 @@ contract C { f2(f1); } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (224-269): Assertion checker does not yet support the type of this variable. -// Warning 8364: (284-286): Assertion checker does not yet implement type function (function (uint256)) -// Warning 1695: (287-288): Assertion checker does not yet support this global variable. -// Warning 6031: (327-329): Internal error: Expression undefined for SMT solver. -// Warning 8364: (327-329): Assertion checker does not yet implement type function (function (uint256)) -// Warning 5729: (195-200): BMC does not yet implement this type of function call. -// Warning 8115: (224-269): Assertion checker does not yet support the type of this variable. -// Warning 8364: (284-286): Assertion checker does not yet implement type function (function (uint256)) -// Warning 1695: (287-288): Assertion checker does not yet support this global variable. -// Warning 5729: (284-291): BMC does not yet implement this type of function call. -// Warning 6031: (327-329): Internal error: Expression undefined for SMT solver. -// Warning 8364: (327-329): Assertion checker does not yet implement type function (function (uint256)) -// Warning 5729: (284-291): BMC does not yet implement this type of function call. +// Warning 8115: (192-237): Assertion checker does not yet support the type of this variable. +// Warning 8364: (252-254): Assertion checker does not yet implement type function (function (uint256)) +// Warning 1695: (255-256): Assertion checker does not yet support this global variable. +// Warning 6031: (295-297): Internal error: Expression undefined for SMT solver. +// Warning 8364: (295-297): Assertion checker does not yet implement type function (function (uint256)) +// Warning 5729: (163-168): BMC does not yet implement this type of function call. +// Warning 8115: (192-237): Assertion checker does not yet support the type of this variable. +// Warning 8364: (252-254): Assertion checker does not yet implement type function (function (uint256)) +// Warning 1695: (255-256): Assertion checker does not yet support this global variable. +// Warning 5729: (252-259): BMC does not yet implement this type of function call. +// Warning 6031: (295-297): Internal error: Expression undefined for SMT solver. +// Warning 8364: (295-297): Assertion checker does not yet implement type function (function (uint256)) +// Warning 5729: (252-259): BMC does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/types/mapping_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_1.sol index 4d71ff384..b457ddd14 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -8,3 +6,5 @@ contract C assert(x == map[2]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/mapping_1_fail.sol b/test/libsolidity/smtCheckerTests/types/mapping_1_fail.sol index c41172020..d72f62be9 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -9,5 +7,7 @@ contract C assert(x != map[2]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (134-153): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 3\n\nTransaction trace:\nC.constructor()\nC.f(3) +// Warning 6328: (101-120): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 3\n\nTransaction trace:\nC.constructor()\nC.f(3) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_2.sol b/test/libsolidity/smtCheckerTests/types/mapping_2.sol index 58e1ef9b9..81a36e550 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_2.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => bool) map; @@ -7,5 +5,7 @@ contract C assert(x != map[2]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (111-130): CHC: Assertion violation happens here.\nCounterexample:\n\nx = false\n\nTransaction trace:\nC.constructor()\nC.f(false) +// Warning 6328: (78-97): CHC: Assertion violation happens here.\nCounterexample:\n\nx = false\n\nTransaction trace:\nC.constructor()\nC.f(false) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_2d_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_2d_1.sol index 3afab9550..1ea1168a0 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_2d_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_2d_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => uint)) map; @@ -9,4 +7,6 @@ contract C assert(x == map[13][14]); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/mapping_2d_1_fail.sol b/test/libsolidity/smtCheckerTests/types/mapping_2d_1_fail.sol index a301198c5..57178c417 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_2d_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_2d_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => uint)) map; @@ -9,5 +7,7 @@ contract C assert(x == map[13][14]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (154-178): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 41\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (121-145): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 41\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_3.sol b/test/libsolidity/smtCheckerTests/types/mapping_3.sol index 985ed3a3e..9b7009a17 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_3.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -10,3 +8,5 @@ contract C assert(map[2] == x); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/mapping_3d_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_3d_1.sol index b2a90c913..baa4b00fd 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_3d_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_3d_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => mapping (uint => uint))) map; @@ -9,4 +7,6 @@ contract C assert(x == map[13][14][15]); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/mapping_3d_1_fail.sol b/test/libsolidity/smtCheckerTests/types/mapping_3d_1_fail.sol index e5e75786f..9bcbc133b 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_3d_1_fail.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_3d_1_fail.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => mapping (uint => mapping (uint => uint))) map; @@ -9,5 +7,7 @@ contract C assert(x == map[13][14][15]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (176-204): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 41\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (143-171): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 41\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_4.sol b/test/libsolidity/smtCheckerTests/types/mapping_4.sol index fc098ba1b..8f94c4071 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_4.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (bool => bool) map; @@ -9,4 +7,5 @@ contract C } } // ==== +// SMTEngine: all // SMTSolvers: z3 diff --git a/test/libsolidity/smtCheckerTests/types/mapping_5.sol b/test/libsolidity/smtCheckerTests/types/mapping_5.sol index c8f60b672..c22947780 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_5.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (address => uint) map; @@ -7,5 +5,7 @@ contract C assert(x != map[a]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (125-144): CHC: Assertion violation happens here.\nCounterexample:\n\na = 38\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(38, 0) +// Warning 6328: (92-111): CHC: Assertion violation happens here.\nCounterexample:\n\na = 38\nx = 0\n\nTransaction trace:\nC.constructor()\nC.f(38, 0) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_aliasing_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_aliasing_1.sol index 098f25e30..36c6f843e 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_aliasing_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_aliasing_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) a; @@ -16,6 +14,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (266-286): CHC: Assertion violation happens here. +// Warning 6328: (233-253): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/mapping_aliasing_2.sol b/test/libsolidity/smtCheckerTests/types/mapping_aliasing_2.sol index 05613cef7..79c03a7d5 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_aliasing_2.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_aliasing_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) a; @@ -31,7 +29,8 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (397-417): CHC: Assertion violation happens here. -// Warning 6328: (463-481): CHC: Assertion violation happens here. +// Warning 6328: (364-384): CHC: Assertion violation happens here. +// Warning 6328: (430-448): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/mapping_and_array_of_functions.sol b/test/libsolidity/smtCheckerTests/types/mapping_and_array_of_functions.sol index a10559ece..fecd43070 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_and_array_of_functions.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_and_array_of_functions.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract test { mapping (address => function() internal returns (uint)) a; mapping (address => function() external) b; mapping (address => function() external[]) c; function() external[] d; } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol index 589e6eed6..f14978b83 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_as_local_var_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { mapping(uint => uint) x; mapping(uint => uint) y; @@ -15,6 +13,8 @@ contract c { assert(a[2] == y[2] && a[2] != x[2]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (288-324): CHC: Assertion violation happens here.\nCounterexample:\n\ncond = true\n\nTransaction trace:\nc.constructor()\nc.f(true) -// Warning 6328: (336-372): CHC: Assertion violation happens here.\nCounterexample:\n\ncond = false\n\nTransaction trace:\nc.constructor()\nc.f(false) +// Warning 6328: (255-291): CHC: Assertion violation happens here.\nCounterexample:\n\ncond = true\n\nTransaction trace:\nc.constructor()\nc.f(true) +// Warning 6328: (303-339): CHC: Assertion violation happens here.\nCounterexample:\n\ncond = false\n\nTransaction trace:\nc.constructor()\nc.f(false) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol index 76c34fe51..670b08354 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_as_parameter_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract c { mapping(uint => uint) x; function f(mapping(uint => uint) storage map, uint index, uint value) internal { @@ -12,6 +10,7 @@ contract c { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (289-306): CHC: Assertion violation happens here. +// Warning 6328: (256-273): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_1.sol index 188bc59a8..26fcd7cdc 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -8,3 +6,5 @@ contract C assert(map[x] == map[y]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_2.sol b/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_2.sol index 7c9e79b2c..0290d31e1 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_2.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_equal_keys_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (uint => uint) map; @@ -8,5 +6,7 @@ contract C assert(map[x] == map[y]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (119-133): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nC.f(0, 1) +// Warning 6328: (86-100): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 1\n\nTransaction trace:\nC.constructor()\nC.f(0, 1) diff --git a/test/libsolidity/smtCheckerTests/types/mapping_struct_assignment.sol b/test/libsolidity/smtCheckerTests/types/mapping_struct_assignment.sol index ae1da3202..88c07f183 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_struct_assignment.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_struct_assignment.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { struct S { @@ -10,5 +9,7 @@ contract C smap[y] = S(v); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (140-144): BMC: Condition is always false. +// Warning 6838: (108-112): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/types/mapping_unsupported_key_type_1.sol b/test/libsolidity/smtCheckerTests/types/mapping_unsupported_key_type_1.sol index d524a0da5..3b3a468af 100644 --- a/test/libsolidity/smtCheckerTests/types/mapping_unsupported_key_type_1.sol +++ b/test/libsolidity/smtCheckerTests/types/mapping_unsupported_key_type_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { mapping (string => uint) map; @@ -8,4 +6,6 @@ contract C assert(x == map[s]); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/no_effect_statements.sol b/test/libsolidity/smtCheckerTests/types/no_effect_statements.sol index 779fb13f6..bc7cadee0 100644 --- a/test/libsolidity/smtCheckerTests/types/no_effect_statements.sol +++ b/test/libsolidity/smtCheckerTests/types/no_effect_statements.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract test { struct s { uint a; uint b;} function f() pure public returns (bytes1) { @@ -9,14 +8,16 @@ contract test { uint[7]; } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (118-124): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6133: (130-131): Statement has no effect. -// Warning 6133: (135-141): Statement has no effect. -// Warning 6133: (145-149): Statement has no effect. -// Warning 6133: (153-157): Statement has no effect. -// Warning 6133: (161-168): Statement has no effect. -// Warning 8364: (145-149): Assertion checker does not yet implement type type(struct test.s memory[7] memory) -// Warning 8364: (161-168): Assertion checker does not yet implement type type(uint256[7] memory) -// Warning 8364: (145-149): Assertion checker does not yet implement type type(struct test.s memory[7] memory) -// Warning 8364: (161-168): Assertion checker does not yet implement type type(uint256[7] memory) +// Warning 6321: (86-92): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6133: (98-99): Statement has no effect. +// Warning 6133: (103-109): Statement has no effect. +// Warning 6133: (113-117): Statement has no effect. +// Warning 6133: (121-125): Statement has no effect. +// Warning 6133: (129-136): Statement has no effect. +// Warning 8364: (113-117): Assertion checker does not yet implement type type(struct test.s memory[7] memory) +// Warning 8364: (129-136): Assertion checker does not yet implement type type(uint256[7] memory) +// Warning 8364: (113-117): Assertion checker does not yet implement type type(struct test.s memory[7] memory) +// Warning 8364: (129-136): Assertion checker does not yet implement type type(uint256[7] memory) diff --git a/test/libsolidity/smtCheckerTests/types/rational_large_1.sol b/test/libsolidity/smtCheckerTests/types/rational_large_1.sol index b80ee66cb..a7d969185 100644 --- a/test/libsolidity/smtCheckerTests/types/rational_large_1.sol +++ b/test/libsolidity/smtCheckerTests/types/rational_large_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract c { function f() public pure returns (uint) { uint x = 8e130%9; @@ -6,6 +5,8 @@ contract c { assert(x != 8); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (80-84): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (128-142): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\nx = 8\n\nTransaction trace:\nc.constructor()\nc.f() +// Warning 6321: (48-52): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (96-110): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\nx = 8\n\nTransaction trace:\nc.constructor()\nc.f() diff --git a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_1.sol b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_1.sol index 15e9c4dfd..35ebda1ee 100644 --- a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_1.sol +++ b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_1.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { uint[][] a; function f(uint[1] memory x) public { a.push(x); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_2.sol b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_2.sol index 1164df384..c29124b8d 100644 --- a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_2.sol +++ b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { uint[][] a; function f(uint[1][] memory x) public { @@ -6,3 +5,5 @@ contract C { a.push(x[2]); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_3.sol b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_3.sol index 09b8a9773..6f4ce48f6 100644 --- a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_3.sol +++ b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract D { bytes16[] inner; bytes32[][] data; @@ -7,3 +6,5 @@ contract D { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_4.sol b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_4.sol index cbfd162ca..31acb449f 100644 --- a/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_4.sol +++ b/test/libsolidity/smtCheckerTests/types/static_array_implicit_push_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract D { int16[] inner; int[][] data; @@ -7,3 +6,5 @@ contract D { } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/storage_value_vars_1.sol b/test/libsolidity/smtCheckerTests/types/storage_value_vars_1.sol index d96ed1ceb..acdaf3ae0 100644 --- a/test/libsolidity/smtCheckerTests/types/storage_value_vars_1.sol +++ b/test/libsolidity/smtCheckerTests/types/storage_value_vars_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { address a; @@ -18,5 +17,7 @@ contract C assert(a > 0x0000000000000000000000000000000000000000 && b); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (362-421): CHC: Assertion violation happens here.\nCounterexample:\na = 512, b = false, c = 0\nx = 1\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = false, c = 0\nC.f(1) +// Warning 6328: (330-389): CHC: Assertion violation happens here.\nCounterexample:\na = 512, b = false, c = 0\nx = 1\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = false, c = 0\nC.f(1) diff --git a/test/libsolidity/smtCheckerTests/types/storage_value_vars_2.sol b/test/libsolidity/smtCheckerTests/types/storage_value_vars_2.sol index e84f4f1a9..77ef26488 100644 --- a/test/libsolidity/smtCheckerTests/types/storage_value_vars_2.sol +++ b/test/libsolidity/smtCheckerTests/types/storage_value_vars_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { address a; @@ -8,5 +7,7 @@ contract C assert(c > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (123-136): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = false, c = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = false, c = 0\nC.f() +// Warning 6328: (91-104): CHC: Assertion violation happens here.\nCounterexample:\na = 0, b = false, c = 0\n\nTransaction trace:\nC.constructor()\nState: a = 0, b = false, c = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/storage_value_vars_3.sol b/test/libsolidity/smtCheckerTests/types/storage_value_vars_3.sol index 39049b99e..5a855aaf6 100644 --- a/test/libsolidity/smtCheckerTests/types/storage_value_vars_3.sol +++ b/test/libsolidity/smtCheckerTests/types/storage_value_vars_3.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public { @@ -23,3 +22,5 @@ contract C bool b; uint c; } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/storage_value_vars_4.sol b/test/libsolidity/smtCheckerTests/types/storage_value_vars_4.sol index 03a80c845..2f3c977b4 100644 --- a/test/libsolidity/smtCheckerTests/types/storage_value_vars_4.sol +++ b/test/libsolidity/smtCheckerTests/types/storage_value_vars_4.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public view { @@ -6,5 +5,7 @@ contract C } uint c; } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (84-97): CHC: Assertion violation happens here.\nCounterexample:\nc = 0\n\nTransaction trace:\nC.constructor()\nState: c = 0\nC.f() +// Warning 6328: (52-65): CHC: Assertion violation happens here.\nCounterexample:\nc = 0\n\nTransaction trace:\nC.constructor()\nState: c = 0\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/string_1.sol b/test/libsolidity/smtCheckerTests/types/string_1.sol index 8b2ad44b0..8209f9928 100644 --- a/test/libsolidity/smtCheckerTests/types/string_1.sol +++ b/test/libsolidity/smtCheckerTests/types/string_1.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f(string memory s1, string memory s2) public pure { assert(bytes(s1).length == bytes(s2).length); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (110-154): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = [26, 26, 26, 26, 26, 26, 26, 9, 26, 26, 26, 26, 26, 14, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26]\ns2 = [18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 15, 18, 18, 18, 18, 18, 22, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18]\n\nTransaction trace:\nC.constructor()\nC.f([26, 26, 26, 26, 26, 26, 26, 9, 26, 26, 26, 26, 26, 14, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26], [18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 15, 18, 18, 18, 18, 18, 22, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18]) +// Warning 6328: (77-121): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f(s1, s2) diff --git a/test/libsolidity/smtCheckerTests/types/string_2.sol b/test/libsolidity/smtCheckerTests/types/string_2.sol index 15664c32e..633a0bcf0 100644 --- a/test/libsolidity/smtCheckerTests/types/string_2.sol +++ b/test/libsolidity/smtCheckerTests/types/string_2.sol @@ -1,10 +1,10 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { string memory s = "Hello World"; } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (76-91): Unused local variable. +// Warning 2072: (43-58): Unused local variable. diff --git a/test/libsolidity/smtCheckerTests/types/string_length.sol b/test/libsolidity/smtCheckerTests/types/string_length.sol index 632eada19..86390c32b 100644 --- a/test/libsolidity/smtCheckerTests/types/string_length.sol +++ b/test/libsolidity/smtCheckerTests/types/string_length.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { string memory x = "Hello World"; @@ -15,4 +13,6 @@ contract C { assert(bytes(y).length == 11); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_1.sol b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_1.sol index 25ca88489..8015d2a1e 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_1.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes32 _x) public pure { require(_x == "test"); @@ -9,5 +7,7 @@ contract C { assert(_x == z); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (175-190): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) +// Warning 6328: (142-157): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_2.sol b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_2.sol index 555f1228f..c534ce93b 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_2.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes32 _x) public pure { require(_x == "test"); @@ -8,5 +6,7 @@ contract C { assert(_x == z); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (176-191): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) +// Warning 6328: (143-158): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_3.sol b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_3.sol index d940e6063..b6fe29658 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_3.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes32 _x) public pure { require(_x == "test"); @@ -10,5 +8,7 @@ contract C { assert(_x == z); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (186-201): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) +// Warning 6328: (153-168): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_4.sol b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_4.sol index c96863e12..8514d785d 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_4.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() internal pure returns (bytes32, bytes16) { return ("test", "testz"); @@ -14,5 +12,7 @@ contract C { assert(_x == z); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (261-276): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568)\n C.g() -- internal call +// Warning 6328: (228-243): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568)\n C.g() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_5.sol b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_5.sol index e32c28613..9586b7b3e 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_assignment_5.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_assignment_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() internal pure returns (bytes32, bytes16) { return ("test", "testz"); @@ -12,5 +10,7 @@ contract C { assert(_x == z); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (251-266): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568)\n C.g() -- internal call +// Warning 6328: (218-233): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 154717211199090701642289212291190620160\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568)\n C.g() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_comparison_1.sol b/test/libsolidity/smtCheckerTests/types/string_literal_comparison_1.sol index 62f84f0f5..72c4b500d 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_comparison_1.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_comparison_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes32 _x) public pure { require(_x == "test"); @@ -9,5 +7,7 @@ contract C { assert(y == "testx"); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (170-190): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 52647538817385212172903286807934654968315727694643370704309751478220717293568\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) +// Warning 6328: (137-157): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538817385212172903286807934654968315727694643370704309751478220717293568\ny = 52647538817385212172903286807934654968315727694643370704309751478220717293568\nz = 52647538817385212172903286807934654968315727694643370704309751478220717293568\n\nTransaction trace:\nC.constructor()\nC.f(52647538817385212172903286807934654968315727694643370704309751478220717293568) diff --git a/test/libsolidity/smtCheckerTests/types/string_literal_comparison_2.sol b/test/libsolidity/smtCheckerTests/types/string_literal_comparison_2.sol index 8c9b23539..24a2652d8 100644 --- a/test/libsolidity/smtCheckerTests/types/string_literal_comparison_2.sol +++ b/test/libsolidity/smtCheckerTests/types/string_literal_comparison_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(bytes32 _x) public pure { require(_x != "test"); @@ -9,6 +7,8 @@ contract C { assert(y != "testx"); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (147-166): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 0\ny = 0\nz = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) -// Warning 6328: (170-190): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538830022687173130149211684818290356179572910782152375644828738034597888\ny = 52647538830022687173130149211684818290356179572910782152375644828738034597888\nz = 52647538830022687173130149211684818290356179572910782152375644828738034597888\n\nTransaction trace:\nC.constructor()\nC.f(52647538830022687173130149211684818290356179572910782152375644828738034597888) +// Warning 6328: (114-133): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 0\ny = 0\nz = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (137-157): CHC: Assertion violation happens here.\nCounterexample:\n\n_x = 52647538830022687173130149211684818290356179572910782152375644828738034597888\ny = 52647538830022687173130149211684818290356179572910782152375644828738034597888\nz = 52647538830022687173130149211684818290356179572910782152375644828738034597888\n\nTransaction trace:\nC.constructor()\nC.f(52647538830022687173130149211684818290356179572910782152375644828738034597888) diff --git a/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_safe.sol b/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_safe.sol index e767eb5ca..be82f4c8a 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_safe.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_safe.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -31,3 +30,5 @@ contract C { assert(s1[1].ts[4].a[5] == 6); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_unsafe.sol b/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_unsafe.sol index 89ed8896b..a6ec06ba1 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_unsafe.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_memory_unsafe.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -32,5 +31,7 @@ contract C { //assert(s1[0].ts[3].y == s2.ts[3].y); } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (183-194): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 5667: (151-162): Unused function parameter. Remove or comment out the variable name to silence this warning. diff --git a/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_storage_safe.sol b/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_storage_safe.sol index 45a2d4650..425cba6a0 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_storage_safe.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/array_struct_array_struct_storage_safe.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -51,3 +50,5 @@ contract C { s1.pop(); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_memory.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_memory.sol index 5748823ac..c596fcdf0 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_memory.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_memory.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -18,8 +17,9 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (208-228): CHC: Assertion violation happens here. -// Warning 6328: (232-252): CHC: Assertion violation happens here. -// Warning 6328: (402-438): CHC: Assertion violation happens here. +// Warning 6328: (176-196): CHC: Assertion violation happens here. +// Warning 6328: (200-220): CHC: Assertion violation happens here. +// Warning 6328: (370-406): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_storage.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_storage.sol index 5191e9daf..4c13699e2 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_storage.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_aliasing_storage.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -25,5 +23,7 @@ contract C { s2.x = _x; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (402-438): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 0, a: []}, s2 = {x: 0, a: []}\nb = false\ns3 = {x: 42, a: []}\n\nTransaction trace:\nC.constructor()\nState: s1 = {x: 0, a: []}, s2 = {x: 0, a: []}\nC.f(false) +// Warning 6328: (369-405): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 0, a: []}, s2 = {x: 0, a: []}\nb = false\ns3 = {x: 42, a: []}\n\nTransaction trace:\nC.constructor()\nState: s1 = {x: 0, a: []}, s2 = {x: 0, a: []}\nC.f(false) diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_safe.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_safe.sol index ca7f5125e..e1936cdf9 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_safe.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_safe.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -29,3 +28,5 @@ contract C { assert(s1.ts[4].a[5] == 6); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_1.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_1.sol index 2f3a523b2..6721630a5 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -29,9 +28,11 @@ contract C { assert(s1.ts[4].a[5] != 6); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (228-245): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 0, a: []}, a: [], ts: []}\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (263-282): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [], ts: []}\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (325-345): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: []}\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (389-412): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: [{y: 0, a: []}, {y: 0, a: []}, {y: 0, a: []}, {y: 5, a: []}, {y: 0, a: []}, {y: 0, a: []}]}\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (467-493): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: [{y: 0, a: []}, {y: 0, a: []}, {y: 0, a: []}, {y: 5, a: []}, {y: 0, a: [0, 0, 0, 0, 0, 6]}, {y: 0, a: []}]}\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (196-213): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 0, a: []}, a: [], ts: []}\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (231-250): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [], ts: []}\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (293-313): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: []}\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (357-380): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: [{y: 0, a: []}, {y: 0, a: []}, {y: 0, a: []}, {y: 5, a: []}, {y: 0, a: []}, {y: 0, a: []}]}\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (435-461): CHC: Assertion violation happens here.\nCounterexample:\n\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: [{y: 0, a: []}, {y: 0, a: []}, {y: 0, a: []}, {y: 5, a: []}, {y: 0, a: [0, 0, 0, 0, 0, 6]}, {y: 0, a: []}]}\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_2.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_2.sol index c9b236e74..d34eb47ed 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_2.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_memory_unsafe_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -35,5 +34,7 @@ contract C { assert(s1.ts[4].a[5] == s2.ts[4].a[5]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (836-874): CHC: Assertion violation happens here. +// Warning 6328: (804-842): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_safe.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_safe.sol index 514935f13..29261bab0 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_safe.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_safe.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct T { uint y; @@ -39,3 +37,5 @@ contract C { assert(s1.ts[4].a[5] == 6); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_unsafe_1.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_unsafe_1.sol index 30344f25c..d1686e8c0 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_unsafe_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_array_struct_array_storage_unsafe_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct T { uint y; @@ -41,10 +39,10 @@ contract C { } } // ==== -// SMTIgnoreCex: yes +// SMTEngine: all // ---- -// Warning 6328: (181-198): CHC: Assertion violation happens here. -// Warning 6328: (216-235): CHC: Assertion violation happens here. -// Warning 6328: (299-319): CHC: Assertion violation happens here. -// Warning 6328: (437-460): CHC: Assertion violation happens here. -// Warning 6328: (611-637): CHC: Assertion violation happens here. +// Warning 6328: (148-165): CHC: Assertion violation happens here. +// Warning 6328: (183-202): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 2, t: {y: 3, a: []}, a: [], ts: []}\n\nTransaction trace:\nC.constructor()\nState: s1 = {x: 0, t: {y: 0, a: []}, a: [], ts: []}\nC.f() +// Warning 6328: (266-286): CHC: Assertion violation happens here. +// Warning 6328: (404-427): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: [{y: 0, a: []}, {y: 0, a: []}, {y: 0, a: []}, {y: 5, a: []}, {y: 0, a: []}, {y: 0, a: []}]}\n\nTransaction trace:\nC.constructor()\nState: s1 = {x: 0, t: {y: 0, a: []}, a: [], ts: []}\nC.f() +// Warning 6328: (578-604): CHC: Assertion violation happens here.\nCounterexample:\ns1 = {x: 2, t: {y: 3, a: []}, a: [0, 0, 4], ts: [{y: 0, a: []}, {y: 0, a: []}, {y: 0, a: []}, {y: 5, a: []}, {y: 0, a: [0, 0, 0, 0, 0, 6]}, {y: 0, a: []}]}\n\nTransaction trace:\nC.constructor()\nState: s1 = {x: 0, t: {y: 0, a: []}, a: [], ts: []}\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args.sol index fd2ba18e7..91bd56fc9 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -19,5 +17,7 @@ contract C { assert(outer.s.x == 42); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (265-288): CHC: Assertion violation happens here.\nCounterexample:\n\ninner = {x: 43}\nouter = {s: {x: 43}, y: 512}\n\nTransaction trace:\nC.constructor()\nC.test() +// Warning 6328: (232-255): CHC: Assertion violation happens here.\nCounterexample:\n\ninner = {x: 43}\nouter = {s: {x: 43}, y: 512}\n\nTransaction trace:\nC.constructor()\nC.test() diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args_2.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args_2.sol index 9ec7425b1..6a1dd2995 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args_2.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_named_args_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -16,5 +14,7 @@ contract C { assert(s.x == 0 || s.y == 0 || s.z == 0); // should fail } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (224-264): CHC: Assertion violation happens here.\nCounterexample:\n\ns = {x: 3, y: 2, z: 1}\n\nTransaction trace:\nC.constructor()\nC.test() +// Warning 6328: (191-231): CHC: Assertion violation happens here.\nCounterexample:\n\ns = {x: 3, y: 2, z: 1}\n\nTransaction trace:\nC.constructor()\nC.test() diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_1.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_1.sol index 1265adbb9..236c89740 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract Test { struct RecursiveStruct { RecursiveStruct[] vals; @@ -7,7 +6,9 @@ contract Test { RecursiveStruct[1] memory val = [ RecursiveStruct(new RecursiveStruct[](42)) ]; } } +// ==== +// SMTEngine: all // ---- -// Warning 2072: (136-165): Unused local variable. -// Warning 8364: (170-212): Assertion checker does not yet implement type struct Test.RecursiveStruct memory -// Warning 8364: (170-212): Assertion checker does not yet implement type struct Test.RecursiveStruct memory +// Warning 2072: (104-133): Unused local variable. +// Warning 8364: (138-180): Assertion checker does not yet implement type struct Test.RecursiveStruct memory +// Warning 8364: (138-180): Assertion checker does not yet implement type struct Test.RecursiveStruct memory diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_2.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_2.sol index 4905e95d6..232ff8c10 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_2.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_constructor_recursive_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract Test { struct RecursiveStruct { uint x; @@ -9,13 +8,15 @@ contract Test { assert(val.x == 1); } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (146-172): Assertion checker does not yet support the type of this variable. -// Warning 8364: (175-220): Assertion checker does not yet implement type struct Test.RecursiveStruct memory -// Warning 7650: (231-236): Assertion checker does not yet support this expression. -// Warning 8364: (231-234): Assertion checker does not yet implement type struct Test.RecursiveStruct memory -// Warning 6328: (224-242): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nTest.constructor()\nTest.func() -// Warning 8115: (146-172): Assertion checker does not yet support the type of this variable. -// Warning 8364: (175-220): Assertion checker does not yet implement type struct Test.RecursiveStruct memory -// Warning 7650: (231-236): Assertion checker does not yet support this expression. -// Warning 8364: (231-234): Assertion checker does not yet implement type struct Test.RecursiveStruct memory +// Warning 8115: (114-140): Assertion checker does not yet support the type of this variable. +// Warning 8364: (143-188): Assertion checker does not yet implement type struct Test.RecursiveStruct memory +// Warning 7650: (199-204): Assertion checker does not yet support this expression. +// Warning 8364: (199-202): Assertion checker does not yet implement type struct Test.RecursiveStruct memory +// Warning 6328: (192-210): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nTest.constructor()\nTest.func() +// Warning 8115: (114-140): Assertion checker does not yet support the type of this variable. +// Warning 8364: (143-188): Assertion checker does not yet implement type struct Test.RecursiveStruct memory +// Warning 7650: (199-204): Assertion checker does not yet support this expression. +// Warning 8364: (199-202): Assertion checker does not yet implement type struct Test.RecursiveStruct memory diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_delete_memory.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_delete_memory.sol index e63ea49f5..b19721725 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_delete_memory.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_delete_memory.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -14,7 +13,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (184-204): CHC: Assertion violation happens here. -// Warning 6328: (208-242): CHC: Assertion violation happens here. +// Warning 6328: (152-172): CHC: Assertion violation happens here. +// Warning 6328: (176-210): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_delete_storage.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_delete_storage.sol index be21014e8..5c00b306c 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_delete_storage.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_delete_storage.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -19,7 +18,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (240-260): CHC: Assertion violation happens here. -// Warning 6328: (264-298): CHC: Assertion violation happens here. +// Warning 6328: (208-228): CHC: Assertion violation happens here. +// Warning 6328: (232-266): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_mapping.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_mapping.sol index d5ffe6615..0ebb38c3d 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_mapping.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -15,4 +13,6 @@ contract C { s1.m[a] = b; } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor.sol index 18ec523f7..c3bb77400 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -19,5 +17,7 @@ contract C { assert(outer.s.x == 42); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (252-275): CHC: Assertion violation happens here.\nCounterexample:\n\ninner = {x: 43}\nouter = {s: {x: 43}, y: 512}\n\nTransaction trace:\nC.constructor()\nC.test() +// Warning 6328: (219-242): CHC: Assertion violation happens here.\nCounterexample:\n\ninner = {x: 43}\nouter = {s: {x: 43}, y: 512}\n\nTransaction trace:\nC.constructor()\nC.test() diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor_named_args.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor_named_args.sol index 7fae9133d..7efd669d8 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor_named_args.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_nested_constructor_named_args.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct B { uint b1; } struct A { uint a1; B a2; } @@ -8,3 +6,5 @@ contract C { assert(a.a1 == 1 && a.a2.b1 == 2); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_nested_temporary.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_nested_temporary.sol index 9cc180219..5d5b6b0a0 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_nested_temporary.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_nested_temporary.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -15,4 +13,6 @@ contract C { assert(T(S(42), 1).s.x == 42); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_1.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_1.sol index f41385248..a6882dd40 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -12,26 +10,28 @@ contract C { assert(s1.a.length == s2.a.length); } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 7650: (131-135): Assertion checker does not yet support this expression. -// Warning 8364: (131-133): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (139-143): Assertion checker does not yet support this expression. -// Warning 8364: (139-141): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (155-159): Assertion checker does not yet support this expression. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-174): Assertion checker does not yet support this expression. -// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref -// Warning 6328: (124-144): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (148-182): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 7650: (131-135): Assertion checker does not yet support this expression. -// Warning 8364: (131-133): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (139-143): Assertion checker does not yet support this expression. -// Warning 8364: (139-141): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (155-159): Assertion checker does not yet support this expression. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-174): Assertion checker does not yet support this expression. -// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (98-102): Assertion checker does not yet support this expression. +// Warning 8364: (98-100): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (106-110): Assertion checker does not yet support this expression. +// Warning 8364: (106-108): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (122-126): Assertion checker does not yet support this expression. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-141): Assertion checker does not yet support this expression. +// Warning 8364: (137-139): Assertion checker does not yet implement type struct C.S storage ref +// Warning 6328: (91-111): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (115-149): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (98-102): Assertion checker does not yet support this expression. +// Warning 8364: (98-100): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (106-110): Assertion checker does not yet support this expression. +// Warning 8364: (106-108): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (122-126): Assertion checker does not yet support this expression. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-141): Assertion checker does not yet support this expression. +// Warning 8364: (137-139): Assertion checker does not yet implement type struct C.S storage ref diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_2.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_2.sol index 734ca9d02..43895c661 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_2.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -21,95 +19,97 @@ contract C { s2.a[0].x = 43; } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 7650: (131-135): Assertion checker does not yet support this expression. -// Warning 8364: (131-133): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (139-143): Assertion checker does not yet support this expression. -// Warning 8364: (139-141): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (155-159): Assertion checker does not yet support this expression. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-174): Assertion checker does not yet support this expression. -// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (193-202): Assertion checker does not yet support this expression. -// Warning 7650: (193-197): Assertion checker does not yet support this expression. -// Warning 8364: (193-195): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (193-200): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (206-215): Assertion checker does not yet support this expression. -// Warning 7650: (206-210): Assertion checker does not yet support this expression. -// Warning 8364: (206-208): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (206-213): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (246-250): Assertion checker does not yet support this expression. -// Warning 8364: (246-248): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (246-250): Assertion checker does not support recursive structs. -// Warning 7650: (259-263): Assertion checker does not yet support this expression. -// Warning 8364: (259-261): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (259-263): Assertion checker does not support recursive structs. -// Warning 7650: (272-276): Assertion checker does not yet support this expression. -// Warning 8364: (272-274): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (272-283): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (272-276): Assertion checker does not support recursive structs. +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (98-102): Assertion checker does not yet support this expression. +// Warning 8364: (98-100): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (106-110): Assertion checker does not yet support this expression. +// Warning 8364: (106-108): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (122-126): Assertion checker does not yet support this expression. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-141): Assertion checker does not yet support this expression. +// Warning 8364: (137-139): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (160-169): Assertion checker does not yet support this expression. +// Warning 7650: (160-164): Assertion checker does not yet support this expression. +// Warning 8364: (160-162): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (160-167): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (173-182): Assertion checker does not yet support this expression. +// Warning 7650: (173-177): Assertion checker does not yet support this expression. +// Warning 8364: (173-175): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (173-180): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (213-217): Assertion checker does not yet support this expression. +// Warning 8364: (213-215): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (213-217): Assertion checker does not support recursive structs. +// Warning 7650: (226-230): Assertion checker does not yet support this expression. +// Warning 8364: (226-228): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (226-230): Assertion checker does not support recursive structs. +// Warning 7650: (239-243): Assertion checker does not yet support this expression. +// Warning 8364: (239-241): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (239-250): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (239-243): Assertion checker does not support recursive structs. +// Warning 7650: (254-258): Assertion checker does not yet support this expression. +// Warning 8364: (254-256): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (254-265): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (254-258): Assertion checker does not support recursive structs. +// Warning 7650: (269-278): Assertion checker does not yet support this expression. +// Warning 7650: (269-273): Assertion checker does not yet support this expression. +// Warning 8364: (269-271): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (269-276): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (269-278): Assertion checker does not support recursive structs. +// Warning 7650: (287-296): Assertion checker does not yet support this expression. // Warning 7650: (287-291): Assertion checker does not yet support this expression. // Warning 8364: (287-289): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (287-298): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (287-291): Assertion checker does not support recursive structs. -// Warning 7650: (302-311): Assertion checker does not yet support this expression. -// Warning 7650: (302-306): Assertion checker does not yet support this expression. -// Warning 8364: (302-304): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (302-309): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (302-311): Assertion checker does not support recursive structs. -// Warning 7650: (320-329): Assertion checker does not yet support this expression. -// Warning 7650: (320-324): Assertion checker does not yet support this expression. -// Warning 8364: (320-322): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (320-327): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (320-329): Assertion checker does not support recursive structs. -// Warning 6328: (124-144): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (148-182): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (193-200): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (206-213): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (186-216): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (302-309): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (320-327): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 7650: (131-135): Assertion checker does not yet support this expression. -// Warning 8364: (131-133): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (139-143): Assertion checker does not yet support this expression. -// Warning 8364: (139-141): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (155-159): Assertion checker does not yet support this expression. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-174): Assertion checker does not yet support this expression. -// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (193-202): Assertion checker does not yet support this expression. -// Warning 7650: (193-197): Assertion checker does not yet support this expression. -// Warning 8364: (193-195): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (193-200): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (206-215): Assertion checker does not yet support this expression. -// Warning 7650: (206-210): Assertion checker does not yet support this expression. -// Warning 8364: (206-208): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (206-213): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (246-250): Assertion checker does not yet support this expression. -// Warning 8364: (246-248): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (246-250): Assertion checker does not support recursive structs. -// Warning 7650: (259-263): Assertion checker does not yet support this expression. -// Warning 8364: (259-261): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (259-263): Assertion checker does not support recursive structs. -// Warning 7650: (272-276): Assertion checker does not yet support this expression. -// Warning 8364: (272-274): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (272-283): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (272-276): Assertion checker does not support recursive structs. +// Warning 8364: (287-294): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (287-296): Assertion checker does not support recursive structs. +// Warning 6328: (91-111): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (115-149): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (160-167): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (173-180): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (153-183): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (269-276): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (287-294): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (98-102): Assertion checker does not yet support this expression. +// Warning 8364: (98-100): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (106-110): Assertion checker does not yet support this expression. +// Warning 8364: (106-108): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (122-126): Assertion checker does not yet support this expression. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-141): Assertion checker does not yet support this expression. +// Warning 8364: (137-139): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (160-169): Assertion checker does not yet support this expression. +// Warning 7650: (160-164): Assertion checker does not yet support this expression. +// Warning 8364: (160-162): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (160-167): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (173-182): Assertion checker does not yet support this expression. +// Warning 7650: (173-177): Assertion checker does not yet support this expression. +// Warning 8364: (173-175): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (173-180): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (213-217): Assertion checker does not yet support this expression. +// Warning 8364: (213-215): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (213-217): Assertion checker does not support recursive structs. +// Warning 7650: (226-230): Assertion checker does not yet support this expression. +// Warning 8364: (226-228): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (226-230): Assertion checker does not support recursive structs. +// Warning 7650: (239-243): Assertion checker does not yet support this expression. +// Warning 8364: (239-241): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (239-250): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (239-243): Assertion checker does not support recursive structs. +// Warning 7650: (254-258): Assertion checker does not yet support this expression. +// Warning 8364: (254-256): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (254-265): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (254-258): Assertion checker does not support recursive structs. +// Warning 7650: (269-278): Assertion checker does not yet support this expression. +// Warning 7650: (269-273): Assertion checker does not yet support this expression. +// Warning 8364: (269-271): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (269-276): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (269-278): Assertion checker does not support recursive structs. +// Warning 7650: (287-296): Assertion checker does not yet support this expression. // Warning 7650: (287-291): Assertion checker does not yet support this expression. // Warning 8364: (287-289): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (287-298): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (287-291): Assertion checker does not support recursive structs. -// Warning 7650: (302-311): Assertion checker does not yet support this expression. -// Warning 7650: (302-306): Assertion checker does not yet support this expression. -// Warning 8364: (302-304): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (302-309): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (302-311): Assertion checker does not support recursive structs. -// Warning 7650: (320-329): Assertion checker does not yet support this expression. -// Warning 7650: (320-324): Assertion checker does not yet support this expression. -// Warning 8364: (320-322): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (320-327): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (320-329): Assertion checker does not support recursive structs. +// Warning 8364: (287-294): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (287-296): Assertion checker does not support recursive structs. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_3.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_3.sol index 63a86cfde..67740db93 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_3.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -34,198 +32,200 @@ contract C { s2.a[0].a[0].x = 44; } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 7650: (131-135): Assertion checker does not yet support this expression. -// Warning 8364: (131-133): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (139-143): Assertion checker does not yet support this expression. -// Warning 8364: (139-141): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (155-159): Assertion checker does not yet support this expression. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-174): Assertion checker does not yet support this expression. -// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (194-198): Assertion checker does not yet support this expression. -// Warning 8364: (194-196): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (222-226): Assertion checker does not yet support this expression. -// Warning 8364: (222-224): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (249-258): Assertion checker does not yet support this expression. -// Warning 7650: (249-253): Assertion checker does not yet support this expression. -// Warning 8364: (249-251): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (249-256): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (262-271): Assertion checker does not yet support this expression. -// Warning 7650: (262-266): Assertion checker does not yet support this expression. -// Warning 8364: (262-264): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (262-269): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (98-102): Assertion checker does not yet support this expression. +// Warning 8364: (98-100): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (106-110): Assertion checker does not yet support this expression. +// Warning 8364: (106-108): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (122-126): Assertion checker does not yet support this expression. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-141): Assertion checker does not yet support this expression. +// Warning 8364: (137-139): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (161-165): Assertion checker does not yet support this expression. +// Warning 8364: (161-163): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (189-193): Assertion checker does not yet support this expression. +// Warning 8364: (189-191): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (216-225): Assertion checker does not yet support this expression. +// Warning 7650: (216-220): Assertion checker does not yet support this expression. +// Warning 8364: (216-218): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (216-223): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (229-238): Assertion checker does not yet support this expression. +// Warning 7650: (229-233): Assertion checker does not yet support this expression. +// Warning 8364: (229-231): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (229-236): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (251-260): Assertion checker does not yet support this expression. +// Warning 7650: (251-255): Assertion checker does not yet support this expression. +// Warning 8364: (251-253): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (251-258): Assertion checker does not yet implement type struct C.S storage ref // Warning 7650: (284-293): Assertion checker does not yet support this expression. // Warning 7650: (284-288): Assertion checker does not yet support this expression. // Warning 8364: (284-286): Assertion checker does not yet implement type struct C.S storage ref // Warning 8364: (284-291): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (317-326): Assertion checker does not yet support this expression. -// Warning 7650: (317-321): Assertion checker does not yet support this expression. -// Warning 8364: (317-319): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (317-324): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (349-358): Assertion checker does not yet support this expression. -// Warning 7650: (349-353): Assertion checker does not yet support this expression. -// Warning 8364: (349-351): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (349-356): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (369-378): Assertion checker does not yet support this expression. -// Warning 7650: (369-373): Assertion checker does not yet support this expression. -// Warning 8364: (369-371): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (369-376): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (582-586): Assertion checker does not yet support this expression. -// Warning 8364: (582-584): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (582-586): Assertion checker does not support recursive structs. -// Warning 7650: (595-599): Assertion checker does not yet support this expression. -// Warning 8364: (595-597): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (595-599): Assertion checker does not support recursive structs. -// Warning 7650: (608-612): Assertion checker does not yet support this expression. -// Warning 8364: (608-610): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (608-619): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (608-612): Assertion checker does not support recursive structs. +// Warning 7650: (316-325): Assertion checker does not yet support this expression. +// Warning 7650: (316-320): Assertion checker does not yet support this expression. +// Warning 8364: (316-318): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (316-323): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (336-345): Assertion checker does not yet support this expression. +// Warning 7650: (336-340): Assertion checker does not yet support this expression. +// Warning 8364: (336-338): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (336-343): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (549-553): Assertion checker does not yet support this expression. +// Warning 8364: (549-551): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (549-553): Assertion checker does not support recursive structs. +// Warning 7650: (562-566): Assertion checker does not yet support this expression. +// Warning 8364: (562-564): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (562-566): Assertion checker does not support recursive structs. +// Warning 7650: (575-579): Assertion checker does not yet support this expression. +// Warning 8364: (575-577): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (575-586): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (575-579): Assertion checker does not support recursive structs. +// Warning 7650: (590-594): Assertion checker does not yet support this expression. +// Warning 8364: (590-592): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (590-601): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (590-594): Assertion checker does not support recursive structs. +// Warning 7650: (605-614): Assertion checker does not yet support this expression. +// Warning 7650: (605-609): Assertion checker does not yet support this expression. +// Warning 8364: (605-607): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (605-612): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (605-614): Assertion checker does not support recursive structs. +// Warning 7650: (623-632): Assertion checker does not yet support this expression. // Warning 7650: (623-627): Assertion checker does not yet support this expression. // Warning 8364: (623-625): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (623-634): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (623-627): Assertion checker does not support recursive structs. -// Warning 7650: (638-647): Assertion checker does not yet support this expression. -// Warning 7650: (638-642): Assertion checker does not yet support this expression. -// Warning 8364: (638-640): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (638-645): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (638-647): Assertion checker does not support recursive structs. -// Warning 7650: (656-665): Assertion checker does not yet support this expression. -// Warning 7650: (656-660): Assertion checker does not yet support this expression. -// Warning 8364: (656-658): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (656-663): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (656-665): Assertion checker does not support recursive structs. -// Warning 7650: (674-683): Assertion checker does not yet support this expression. -// Warning 7650: (674-678): Assertion checker does not yet support this expression. -// Warning 8364: (674-676): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (674-681): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (674-690): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (674-683): Assertion checker does not support recursive structs. -// Warning 7650: (694-703): Assertion checker does not yet support this expression. -// Warning 7650: (694-698): Assertion checker does not yet support this expression. -// Warning 8364: (694-696): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (694-701): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (694-710): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (694-703): Assertion checker does not support recursive structs. -// Warning 7650: (714-728): Assertion checker does not yet support this expression. -// Warning 7650: (714-723): Assertion checker does not yet support this expression. -// Warning 7650: (714-718): Assertion checker does not yet support this expression. -// Warning 8364: (714-716): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (714-721): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (714-726): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (714-728): Assertion checker does not support recursive structs. -// Warning 7650: (737-751): Assertion checker does not yet support this expression. -// Warning 7650: (737-746): Assertion checker does not yet support this expression. -// Warning 7650: (737-741): Assertion checker does not yet support this expression. -// Warning 8364: (737-739): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (737-744): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (737-749): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (737-751): Assertion checker does not support recursive structs. -// Warning 6328: (124-144): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (148-182): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (249-256): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (262-269): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (242-272): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 8364: (623-630): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (623-632): Assertion checker does not support recursive structs. +// Warning 7650: (641-650): Assertion checker does not yet support this expression. +// Warning 7650: (641-645): Assertion checker does not yet support this expression. +// Warning 8364: (641-643): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (641-648): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (641-657): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (641-650): Assertion checker does not support recursive structs. +// Warning 7650: (661-670): Assertion checker does not yet support this expression. +// Warning 7650: (661-665): Assertion checker does not yet support this expression. +// Warning 8364: (661-663): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (661-668): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (661-677): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (661-670): Assertion checker does not support recursive structs. +// Warning 7650: (681-695): Assertion checker does not yet support this expression. +// Warning 7650: (681-690): Assertion checker does not yet support this expression. +// Warning 7650: (681-685): Assertion checker does not yet support this expression. +// Warning 8364: (681-683): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (681-688): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (681-693): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (681-695): Assertion checker does not support recursive structs. +// Warning 7650: (704-718): Assertion checker does not yet support this expression. +// Warning 7650: (704-713): Assertion checker does not yet support this expression. +// Warning 7650: (704-708): Assertion checker does not yet support this expression. +// Warning 8364: (704-706): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (704-711): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (704-716): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (704-718): Assertion checker does not support recursive structs. +// Warning 6328: (91-111): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (115-149): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (216-223): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (229-236): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (209-239): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (251-258): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() // Warning 6368: (284-291): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (317-324): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (349-356): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (369-376): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (342-386): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (638-645): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (656-663): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (674-681): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (694-701): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (714-721): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (714-726): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (737-744): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6368: (737-749): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 7650: (131-135): Assertion checker does not yet support this expression. -// Warning 8364: (131-133): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (139-143): Assertion checker does not yet support this expression. -// Warning 8364: (139-141): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (155-159): Assertion checker does not yet support this expression. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-174): Assertion checker does not yet support this expression. -// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (194-198): Assertion checker does not yet support this expression. -// Warning 8364: (194-196): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (222-226): Assertion checker does not yet support this expression. -// Warning 8364: (222-224): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (249-258): Assertion checker does not yet support this expression. -// Warning 7650: (249-253): Assertion checker does not yet support this expression. -// Warning 8364: (249-251): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (249-256): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (262-271): Assertion checker does not yet support this expression. -// Warning 7650: (262-266): Assertion checker does not yet support this expression. -// Warning 8364: (262-264): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (262-269): Assertion checker does not yet implement type struct C.S storage ref +// Warning 6368: (316-323): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (336-343): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (309-353): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (605-612): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (623-630): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (641-648): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (661-668): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (681-688): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (681-693): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (704-711): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6368: (704-716): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (98-102): Assertion checker does not yet support this expression. +// Warning 8364: (98-100): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (106-110): Assertion checker does not yet support this expression. +// Warning 8364: (106-108): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (122-126): Assertion checker does not yet support this expression. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-141): Assertion checker does not yet support this expression. +// Warning 8364: (137-139): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (161-165): Assertion checker does not yet support this expression. +// Warning 8364: (161-163): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (189-193): Assertion checker does not yet support this expression. +// Warning 8364: (189-191): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (216-225): Assertion checker does not yet support this expression. +// Warning 7650: (216-220): Assertion checker does not yet support this expression. +// Warning 8364: (216-218): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (216-223): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (229-238): Assertion checker does not yet support this expression. +// Warning 7650: (229-233): Assertion checker does not yet support this expression. +// Warning 8364: (229-231): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (229-236): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (251-260): Assertion checker does not yet support this expression. +// Warning 7650: (251-255): Assertion checker does not yet support this expression. +// Warning 8364: (251-253): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (251-258): Assertion checker does not yet implement type struct C.S storage ref // Warning 7650: (284-293): Assertion checker does not yet support this expression. // Warning 7650: (284-288): Assertion checker does not yet support this expression. // Warning 8364: (284-286): Assertion checker does not yet implement type struct C.S storage ref // Warning 8364: (284-291): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (317-326): Assertion checker does not yet support this expression. -// Warning 7650: (317-321): Assertion checker does not yet support this expression. -// Warning 8364: (317-319): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (317-324): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (349-358): Assertion checker does not yet support this expression. -// Warning 7650: (349-353): Assertion checker does not yet support this expression. -// Warning 8364: (349-351): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (349-356): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (369-378): Assertion checker does not yet support this expression. -// Warning 7650: (369-373): Assertion checker does not yet support this expression. -// Warning 8364: (369-371): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (369-376): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (582-586): Assertion checker does not yet support this expression. -// Warning 8364: (582-584): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (582-586): Assertion checker does not support recursive structs. -// Warning 7650: (595-599): Assertion checker does not yet support this expression. -// Warning 8364: (595-597): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (595-599): Assertion checker does not support recursive structs. -// Warning 7650: (608-612): Assertion checker does not yet support this expression. -// Warning 8364: (608-610): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (608-619): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (608-612): Assertion checker does not support recursive structs. +// Warning 7650: (316-325): Assertion checker does not yet support this expression. +// Warning 7650: (316-320): Assertion checker does not yet support this expression. +// Warning 8364: (316-318): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (316-323): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (336-345): Assertion checker does not yet support this expression. +// Warning 7650: (336-340): Assertion checker does not yet support this expression. +// Warning 8364: (336-338): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (336-343): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (549-553): Assertion checker does not yet support this expression. +// Warning 8364: (549-551): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (549-553): Assertion checker does not support recursive structs. +// Warning 7650: (562-566): Assertion checker does not yet support this expression. +// Warning 8364: (562-564): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (562-566): Assertion checker does not support recursive structs. +// Warning 7650: (575-579): Assertion checker does not yet support this expression. +// Warning 8364: (575-577): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (575-586): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (575-579): Assertion checker does not support recursive structs. +// Warning 7650: (590-594): Assertion checker does not yet support this expression. +// Warning 8364: (590-592): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (590-601): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (590-594): Assertion checker does not support recursive structs. +// Warning 7650: (605-614): Assertion checker does not yet support this expression. +// Warning 7650: (605-609): Assertion checker does not yet support this expression. +// Warning 8364: (605-607): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (605-612): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (605-614): Assertion checker does not support recursive structs. +// Warning 7650: (623-632): Assertion checker does not yet support this expression. // Warning 7650: (623-627): Assertion checker does not yet support this expression. // Warning 8364: (623-625): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (623-634): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (623-627): Assertion checker does not support recursive structs. -// Warning 7650: (638-647): Assertion checker does not yet support this expression. -// Warning 7650: (638-642): Assertion checker does not yet support this expression. -// Warning 8364: (638-640): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (638-645): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (638-647): Assertion checker does not support recursive structs. -// Warning 7650: (656-665): Assertion checker does not yet support this expression. -// Warning 7650: (656-660): Assertion checker does not yet support this expression. -// Warning 8364: (656-658): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (656-663): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (656-665): Assertion checker does not support recursive structs. -// Warning 7650: (674-683): Assertion checker does not yet support this expression. -// Warning 7650: (674-678): Assertion checker does not yet support this expression. -// Warning 8364: (674-676): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (674-681): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (674-690): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (674-683): Assertion checker does not support recursive structs. -// Warning 7650: (694-703): Assertion checker does not yet support this expression. -// Warning 7650: (694-698): Assertion checker does not yet support this expression. -// Warning 8364: (694-696): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (694-701): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (694-710): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (694-703): Assertion checker does not support recursive structs. -// Warning 7650: (714-728): Assertion checker does not yet support this expression. -// Warning 7650: (714-723): Assertion checker does not yet support this expression. -// Warning 7650: (714-718): Assertion checker does not yet support this expression. -// Warning 8364: (714-716): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (714-721): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (714-726): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (714-728): Assertion checker does not support recursive structs. -// Warning 7650: (737-751): Assertion checker does not yet support this expression. -// Warning 7650: (737-746): Assertion checker does not yet support this expression. -// Warning 7650: (737-741): Assertion checker does not yet support this expression. -// Warning 8364: (737-739): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (737-744): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (737-749): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (737-751): Assertion checker does not support recursive structs. +// Warning 8364: (623-630): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (623-632): Assertion checker does not support recursive structs. +// Warning 7650: (641-650): Assertion checker does not yet support this expression. +// Warning 7650: (641-645): Assertion checker does not yet support this expression. +// Warning 8364: (641-643): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (641-648): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (641-657): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (641-650): Assertion checker does not support recursive structs. +// Warning 7650: (661-670): Assertion checker does not yet support this expression. +// Warning 7650: (661-665): Assertion checker does not yet support this expression. +// Warning 8364: (661-663): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (661-668): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (661-677): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (661-670): Assertion checker does not support recursive structs. +// Warning 7650: (681-695): Assertion checker does not yet support this expression. +// Warning 7650: (681-690): Assertion checker does not yet support this expression. +// Warning 7650: (681-685): Assertion checker does not yet support this expression. +// Warning 8364: (681-683): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (681-688): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (681-693): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (681-695): Assertion checker does not support recursive structs. +// Warning 7650: (704-718): Assertion checker does not yet support this expression. +// Warning 7650: (704-713): Assertion checker does not yet support this expression. +// Warning 7650: (704-708): Assertion checker does not yet support this expression. +// Warning 8364: (704-706): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (704-711): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (704-716): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (704-718): Assertion checker does not support recursive structs. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_4.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_4.sol index 00b79fe2b..f455754ed 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_4.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_4.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -18,74 +16,75 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 8115: (135-147): Assertion checker does not yet support the type of this variable. -// Warning 8115: (166-178): Assertion checker does not yet support the type of this variable. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (160-162): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (150-162): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 8364: (186-188): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (191-193): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (181-193): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (204-208): Assertion checker does not yet support this expression. -// Warning 8364: (204-206): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (212-216): Assertion checker does not yet support this expression. -// Warning 8364: (212-214): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (220-224): Assertion checker does not yet support this expression. -// Warning 8364: (220-222): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (228-232): Assertion checker does not yet support this expression. -// Warning 8364: (228-230): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 8115: (102-114): Assertion checker does not yet support the type of this variable. +// Warning 8115: (133-145): Assertion checker does not yet support the type of this variable. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (127-129): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (117-129): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 8364: (153-155): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (158-160): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (148-160): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (171-175): Assertion checker does not yet support this expression. +// Warning 8364: (171-173): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (179-183): Assertion checker does not yet support this expression. +// Warning 8364: (179-181): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (187-191): Assertion checker does not yet support this expression. +// Warning 8364: (187-189): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (195-199): Assertion checker does not yet support this expression. +// Warning 8364: (195-197): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (211-215): Assertion checker does not yet support this expression. +// Warning 8364: (211-213): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (219-223): Assertion checker does not yet support this expression. +// Warning 8364: (219-221): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (227-231): Assertion checker does not yet support this expression. +// Warning 8364: (227-229): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (235-239): Assertion checker does not yet support this expression. +// Warning 8364: (235-237): Assertion checker does not yet implement type struct C.S storage ref // Warning 7650: (244-248): Assertion checker does not yet support this expression. // Warning 8364: (244-246): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (252-256): Assertion checker does not yet support this expression. -// Warning 8364: (252-254): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (260-264): Assertion checker does not yet support this expression. -// Warning 8364: (260-262): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (268-272): Assertion checker does not yet support this expression. -// Warning 8364: (268-270): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (277-281): Assertion checker does not yet support this expression. -// Warning 8364: (277-279): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 4375: (277-281): Assertion checker does not support recursive structs. -// Warning 7650: (366-370): Assertion checker does not yet support this expression. -// Warning 8364: (366-368): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (380-384): Assertion checker does not yet support this expression. -// Warning 8364: (380-382): Assertion checker does not yet implement type struct C.S storage ref -// Warning 6328: (197-233): CHC: Assertion violation happens here. -// Warning 6328: (237-273): CHC: Assertion violation happens here. -// Warning 6328: (359-391): CHC: Assertion violation happens here. -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. -// Warning 8115: (135-147): Assertion checker does not yet support the type of this variable. -// Warning 8115: (166-178): Assertion checker does not yet support the type of this variable. -// Warning 8364: (155-157): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (160-162): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (150-162): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 8364: (186-188): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (191-193): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (181-193): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (204-208): Assertion checker does not yet support this expression. -// Warning 8364: (204-206): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (212-216): Assertion checker does not yet support this expression. -// Warning 8364: (212-214): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (220-224): Assertion checker does not yet support this expression. -// Warning 8364: (220-222): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (228-232): Assertion checker does not yet support this expression. -// Warning 8364: (228-230): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (244-248): Assertion checker does not support recursive structs. +// Warning 7650: (333-337): Assertion checker does not yet support this expression. +// Warning 8364: (333-335): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (347-351): Assertion checker does not yet support this expression. +// Warning 8364: (347-349): Assertion checker does not yet implement type struct C.S storage ref +// Warning 6328: (164-200): CHC: Assertion violation happens here. +// Warning 6328: (204-240): CHC: Assertion violation happens here. +// Warning 6328: (326-358): CHC: Assertion violation happens here. +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 8115: (102-114): Assertion checker does not yet support the type of this variable. +// Warning 8115: (133-145): Assertion checker does not yet support the type of this variable. +// Warning 8364: (122-124): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (127-129): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (117-129): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 8364: (153-155): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (158-160): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (148-160): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (171-175): Assertion checker does not yet support this expression. +// Warning 8364: (171-173): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (179-183): Assertion checker does not yet support this expression. +// Warning 8364: (179-181): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (187-191): Assertion checker does not yet support this expression. +// Warning 8364: (187-189): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (195-199): Assertion checker does not yet support this expression. +// Warning 8364: (195-197): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (211-215): Assertion checker does not yet support this expression. +// Warning 8364: (211-213): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (219-223): Assertion checker does not yet support this expression. +// Warning 8364: (219-221): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (227-231): Assertion checker does not yet support this expression. +// Warning 8364: (227-229): Assertion checker does not yet implement type struct C.S storage pointer +// Warning 7650: (235-239): Assertion checker does not yet support this expression. +// Warning 8364: (235-237): Assertion checker does not yet implement type struct C.S storage ref // Warning 7650: (244-248): Assertion checker does not yet support this expression. // Warning 8364: (244-246): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (252-256): Assertion checker does not yet support this expression. -// Warning 8364: (252-254): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (260-264): Assertion checker does not yet support this expression. -// Warning 8364: (260-262): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 7650: (268-272): Assertion checker does not yet support this expression. -// Warning 8364: (268-270): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (277-281): Assertion checker does not yet support this expression. -// Warning 8364: (277-279): Assertion checker does not yet implement type struct C.S storage pointer -// Warning 4375: (277-281): Assertion checker does not support recursive structs. -// Warning 7650: (366-370): Assertion checker does not yet support this expression. -// Warning 8364: (366-368): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (380-384): Assertion checker does not yet support this expression. -// Warning 8364: (380-382): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (244-248): Assertion checker does not support recursive structs. +// Warning 7650: (333-337): Assertion checker does not yet support this expression. +// Warning 8364: (333-335): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (347-351): Assertion checker does not yet support this expression. +// Warning 8364: (347-349): Assertion checker does not yet implement type struct C.S storage ref diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_5.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_5.sol index 24aca9542..9bd76dce2 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_5.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_5.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -15,25 +13,27 @@ contract C { assert(sa2[0][0].a.length == sa[0].a.length); } } +// ==== +// SMTEngine: all // ---- -// Warning 8364: (126-135): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (153-166): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-181): Assertion checker does not yet support this expression. -// Warning 8364: (170-179): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (170-188): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (170-181): Assertion checker does not support recursive structs. -// Warning 7650: (199-210): Assertion checker does not yet support this expression. -// Warning 8364: (199-208): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (221-228): Assertion checker does not yet support this expression. -// Warning 8364: (221-226): Assertion checker does not yet implement type struct C.S storage ref -// Warning 6328: (192-236): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 8364: (126-135): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (153-166): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (170-181): Assertion checker does not yet support this expression. -// Warning 8364: (170-179): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (170-188): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (170-181): Assertion checker does not support recursive structs. -// Warning 7650: (199-210): Assertion checker does not yet support this expression. -// Warning 8364: (199-208): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (221-228): Assertion checker does not yet support this expression. -// Warning 8364: (221-226): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (93-102): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (120-133): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-148): Assertion checker does not yet support this expression. +// Warning 8364: (137-146): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (137-155): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (137-148): Assertion checker does not support recursive structs. +// Warning 7650: (166-177): Assertion checker does not yet support this expression. +// Warning 8364: (166-175): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (188-195): Assertion checker does not yet support this expression. +// Warning 8364: (188-193): Assertion checker does not yet implement type struct C.S storage ref +// Warning 6328: (159-203): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 8364: (93-102): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (120-133): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (137-148): Assertion checker does not yet support this expression. +// Warning 8364: (137-146): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (137-155): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (137-148): Assertion checker does not support recursive structs. +// Warning 7650: (166-177): Assertion checker does not yet support this expression. +// Warning 8364: (166-175): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (188-195): Assertion checker does not yet support this expression. +// Warning 8364: (188-193): Assertion checker does not yet implement type struct C.S storage ref diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_6.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_6.sol index 855854bb4..81a999457 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_6.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_6.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -20,9 +18,20 @@ contract C { assert(s1.x == 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (86-90): Assertion checker does not yet support this expression. +// Warning 8364: (86-88): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (86-90): Assertion checker does not support recursive structs. +// Warning 7650: (101-105): Assertion checker does not yet support this expression. +// Warning 8364: (101-103): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (101-105): Assertion checker does not support recursive structs. +// Warning 7650: (109-113): Assertion checker does not yet support this expression. +// Warning 8364: (109-111): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (109-113): Assertion checker does not support recursive structs. // Warning 7650: (119-123): Assertion checker does not yet support this expression. // Warning 8364: (119-121): Assertion checker does not yet implement type struct C.S storage ref // Warning 4375: (119-123): Assertion checker does not support recursive structs. @@ -32,36 +41,36 @@ contract C { // Warning 7650: (142-146): Assertion checker does not yet support this expression. // Warning 8364: (142-144): Assertion checker does not yet implement type struct C.S storage ref // Warning 4375: (142-146): Assertion checker does not support recursive structs. -// Warning 7650: (152-156): Assertion checker does not yet support this expression. -// Warning 8364: (152-154): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (152-156): Assertion checker does not support recursive structs. +// Warning 7650: (159-163): Assertion checker does not yet support this expression. +// Warning 8364: (159-161): Assertion checker does not yet implement type struct C.S storage ref // Warning 7650: (167-171): Assertion checker does not yet support this expression. // Warning 8364: (167-169): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (167-171): Assertion checker does not support recursive structs. -// Warning 7650: (175-179): Assertion checker does not yet support this expression. -// Warning 8364: (175-177): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (175-179): Assertion checker does not support recursive structs. -// Warning 7650: (192-196): Assertion checker does not yet support this expression. -// Warning 8364: (192-194): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (200-204): Assertion checker does not yet support this expression. -// Warning 8364: (200-202): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (220-224): Assertion checker does not yet support this expression. -// Warning 8364: (220-222): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (235-239): Assertion checker does not yet support this expression. -// Warning 8364: (235-237): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (258-260): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (271-275): Assertion checker does not yet support this expression. -// Warning 8364: (271-273): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4984: (132-138): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 4984: (142-148): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 3944: (165-171): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 3944: (175-181): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 4984: (200-208): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (185-209): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (213-247): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (264-281): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 8115: (81-85): Assertion checker does not yet support the type of this variable. -// Warning 8115: (88-92): Assertion checker does not yet support the type of this variable. +// Warning 7650: (187-191): Assertion checker does not yet support this expression. +// Warning 8364: (187-189): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (202-206): Assertion checker does not yet support this expression. +// Warning 8364: (202-204): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (225-227): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (238-242): Assertion checker does not yet support this expression. +// Warning 8364: (238-240): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4984: (99-105): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 4984: (109-115): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 3944: (132-138): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 3944: (142-148): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 4984: (167-175): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (152-176): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (180-214): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (231-248): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 8115: (48-52): Assertion checker does not yet support the type of this variable. +// Warning 8115: (55-59): Assertion checker does not yet support the type of this variable. +// Warning 7650: (86-90): Assertion checker does not yet support this expression. +// Warning 8364: (86-88): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (86-90): Assertion checker does not support recursive structs. +// Warning 7650: (101-105): Assertion checker does not yet support this expression. +// Warning 8364: (101-103): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (101-105): Assertion checker does not support recursive structs. +// Warning 7650: (109-113): Assertion checker does not yet support this expression. +// Warning 8364: (109-111): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (109-113): Assertion checker does not support recursive structs. // Warning 7650: (119-123): Assertion checker does not yet support this expression. // Warning 8364: (119-121): Assertion checker does not yet implement type struct C.S storage ref // Warning 4375: (119-123): Assertion checker does not support recursive structs. @@ -71,23 +80,14 @@ contract C { // Warning 7650: (142-146): Assertion checker does not yet support this expression. // Warning 8364: (142-144): Assertion checker does not yet implement type struct C.S storage ref // Warning 4375: (142-146): Assertion checker does not support recursive structs. -// Warning 7650: (152-156): Assertion checker does not yet support this expression. -// Warning 8364: (152-154): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (152-156): Assertion checker does not support recursive structs. +// Warning 7650: (159-163): Assertion checker does not yet support this expression. +// Warning 8364: (159-161): Assertion checker does not yet implement type struct C.S storage ref // Warning 7650: (167-171): Assertion checker does not yet support this expression. // Warning 8364: (167-169): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (167-171): Assertion checker does not support recursive structs. -// Warning 7650: (175-179): Assertion checker does not yet support this expression. -// Warning 8364: (175-177): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (175-179): Assertion checker does not support recursive structs. -// Warning 7650: (192-196): Assertion checker does not yet support this expression. -// Warning 8364: (192-194): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (200-204): Assertion checker does not yet support this expression. -// Warning 8364: (200-202): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (220-224): Assertion checker does not yet support this expression. -// Warning 8364: (220-222): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (235-239): Assertion checker does not yet support this expression. -// Warning 8364: (235-237): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (258-260): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (271-275): Assertion checker does not yet support this expression. -// Warning 8364: (271-273): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (187-191): Assertion checker does not yet support this expression. +// Warning 8364: (187-189): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (202-206): Assertion checker does not yet support this expression. +// Warning 8364: (202-204): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (225-227): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (238-242): Assertion checker does not yet support this expression. +// Warning 8364: (238-240): Assertion checker does not yet implement type struct C.S storage ref diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_1.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_1.sol index a51919014..b88ebb88e 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -16,26 +14,28 @@ contract C { assert(s1.a.length == s2.a.length); } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (115-119): Assertion checker does not yet support the type of this variable. -// Warning 8115: (122-126): Assertion checker does not yet support the type of this variable. -// Warning 7650: (165-169): Assertion checker does not yet support this expression. -// Warning 8364: (165-167): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (173-177): Assertion checker does not yet support this expression. -// Warning 8364: (173-175): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (189-193): Assertion checker does not yet support this expression. -// Warning 8364: (189-191): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (204-208): Assertion checker does not yet support this expression. -// Warning 8364: (204-206): Assertion checker does not yet implement type struct C.S storage ref -// Warning 6328: (158-178): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (182-216): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 8115: (115-119): Assertion checker does not yet support the type of this variable. -// Warning 8115: (122-126): Assertion checker does not yet support the type of this variable. -// Warning 7650: (165-169): Assertion checker does not yet support this expression. -// Warning 8364: (165-167): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (173-177): Assertion checker does not yet support this expression. -// Warning 8364: (173-175): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (189-193): Assertion checker does not yet support this expression. -// Warning 8364: (189-191): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (204-208): Assertion checker does not yet support this expression. -// Warning 8364: (204-206): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8115: (82-86): Assertion checker does not yet support the type of this variable. +// Warning 8115: (89-93): Assertion checker does not yet support the type of this variable. +// Warning 7650: (132-136): Assertion checker does not yet support this expression. +// Warning 8364: (132-134): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (140-144): Assertion checker does not yet support this expression. +// Warning 8364: (140-142): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (156-160): Assertion checker does not yet support this expression. +// Warning 8364: (156-158): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (171-175): Assertion checker does not yet support this expression. +// Warning 8364: (171-173): Assertion checker does not yet implement type struct C.S storage ref +// Warning 6328: (125-145): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (149-183): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 8115: (82-86): Assertion checker does not yet support the type of this variable. +// Warning 8115: (89-93): Assertion checker does not yet support the type of this variable. +// Warning 7650: (132-136): Assertion checker does not yet support this expression. +// Warning 8364: (132-134): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (140-144): Assertion checker does not yet support this expression. +// Warning 8364: (140-142): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (156-160): Assertion checker does not yet support this expression. +// Warning 8364: (156-158): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (171-175): Assertion checker does not yet support this expression. +// Warning 8364: (171-173): Assertion checker does not yet implement type struct C.S storage ref diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_2.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_2.sol index 63558ea54..c8e3af0ee 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_2.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_recursive_indirect_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -19,79 +17,81 @@ contract C { assert(s1.a[0].a[0].x == s2.a[0].a[0].x); } } +// ==== +// SMTEngine: all // ---- -// Warning 8115: (115-119): Assertion checker does not yet support the type of this variable. -// Warning 8115: (122-126): Assertion checker does not yet support the type of this variable. -// Warning 7650: (153-157): Assertion checker does not yet support this expression. -// Warning 8364: (153-155): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (153-164): Assertion checker does not yet implement type struct C.T storage ref -// Warning 4375: (153-157): Assertion checker does not support recursive structs. -// Warning 7650: (168-172): Assertion checker does not yet support this expression. -// Warning 8364: (168-170): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (168-179): Assertion checker does not yet implement type struct C.T storage ref -// Warning 4375: (168-172): Assertion checker does not support recursive structs. -// Warning 7650: (183-192): Assertion checker does not yet support this expression. -// Warning 7650: (183-187): Assertion checker does not yet support this expression. -// Warning 8364: (183-185): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (183-190): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (183-199): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (183-192): Assertion checker does not support recursive structs. -// Warning 7650: (203-212): Assertion checker does not yet support this expression. -// Warning 7650: (203-207): Assertion checker does not yet support this expression. -// Warning 8364: (203-205): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (203-210): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (203-219): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (203-212): Assertion checker does not support recursive structs. -// Warning 7650: (230-244): Assertion checker does not yet support this expression. -// Warning 7650: (230-239): Assertion checker does not yet support this expression. -// Warning 7650: (230-234): Assertion checker does not yet support this expression. -// Warning 8364: (230-232): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (230-237): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (230-242): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (248-262): Assertion checker does not yet support this expression. -// Warning 7650: (248-257): Assertion checker does not yet support this expression. -// Warning 7650: (248-252): Assertion checker does not yet support this expression. -// Warning 8364: (248-250): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (248-255): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (248-260): Assertion checker does not yet implement type struct C.S storage ref -// Warning 6368: (183-190): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (203-210): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (230-237): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (230-242): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (248-255): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6368: (248-260): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (223-263): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 8115: (115-119): Assertion checker does not yet support the type of this variable. -// Warning 8115: (122-126): Assertion checker does not yet support the type of this variable. -// Warning 7650: (153-157): Assertion checker does not yet support this expression. -// Warning 8364: (153-155): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (153-164): Assertion checker does not yet implement type struct C.T storage ref -// Warning 4375: (153-157): Assertion checker does not support recursive structs. -// Warning 7650: (168-172): Assertion checker does not yet support this expression. -// Warning 8364: (168-170): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (168-179): Assertion checker does not yet implement type struct C.T storage ref -// Warning 4375: (168-172): Assertion checker does not support recursive structs. -// Warning 7650: (183-192): Assertion checker does not yet support this expression. -// Warning 7650: (183-187): Assertion checker does not yet support this expression. -// Warning 8364: (183-185): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (183-190): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (183-199): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (183-192): Assertion checker does not support recursive structs. -// Warning 7650: (203-212): Assertion checker does not yet support this expression. -// Warning 7650: (203-207): Assertion checker does not yet support this expression. -// Warning 8364: (203-205): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (203-210): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (203-219): Assertion checker does not yet implement type struct C.S storage ref -// Warning 4375: (203-212): Assertion checker does not support recursive structs. -// Warning 7650: (230-244): Assertion checker does not yet support this expression. -// Warning 7650: (230-239): Assertion checker does not yet support this expression. -// Warning 7650: (230-234): Assertion checker does not yet support this expression. -// Warning 8364: (230-232): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (230-237): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (230-242): Assertion checker does not yet implement type struct C.S storage ref -// Warning 7650: (248-262): Assertion checker does not yet support this expression. -// Warning 7650: (248-257): Assertion checker does not yet support this expression. -// Warning 7650: (248-252): Assertion checker does not yet support this expression. -// Warning 8364: (248-250): Assertion checker does not yet implement type struct C.S storage ref -// Warning 8364: (248-255): Assertion checker does not yet implement type struct C.T storage ref -// Warning 8364: (248-260): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8115: (82-86): Assertion checker does not yet support the type of this variable. +// Warning 8115: (89-93): Assertion checker does not yet support the type of this variable. +// Warning 7650: (120-124): Assertion checker does not yet support this expression. +// Warning 8364: (120-122): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (120-131): Assertion checker does not yet implement type struct C.T storage ref +// Warning 4375: (120-124): Assertion checker does not support recursive structs. +// Warning 7650: (135-139): Assertion checker does not yet support this expression. +// Warning 8364: (135-137): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (135-146): Assertion checker does not yet implement type struct C.T storage ref +// Warning 4375: (135-139): Assertion checker does not support recursive structs. +// Warning 7650: (150-159): Assertion checker does not yet support this expression. +// Warning 7650: (150-154): Assertion checker does not yet support this expression. +// Warning 8364: (150-152): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (150-157): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (150-166): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (150-159): Assertion checker does not support recursive structs. +// Warning 7650: (170-179): Assertion checker does not yet support this expression. +// Warning 7650: (170-174): Assertion checker does not yet support this expression. +// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (170-177): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (170-186): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (170-179): Assertion checker does not support recursive structs. +// Warning 7650: (197-211): Assertion checker does not yet support this expression. +// Warning 7650: (197-206): Assertion checker does not yet support this expression. +// Warning 7650: (197-201): Assertion checker does not yet support this expression. +// Warning 8364: (197-199): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (197-204): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (197-209): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (215-229): Assertion checker does not yet support this expression. +// Warning 7650: (215-224): Assertion checker does not yet support this expression. +// Warning 7650: (215-219): Assertion checker does not yet support this expression. +// Warning 8364: (215-217): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (215-222): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (215-227): Assertion checker does not yet implement type struct C.S storage ref +// Warning 6368: (150-157): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (170-177): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (197-204): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (197-209): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (215-222): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6368: (215-227): CHC: Out of bounds access happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (190-230): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 8115: (82-86): Assertion checker does not yet support the type of this variable. +// Warning 8115: (89-93): Assertion checker does not yet support the type of this variable. +// Warning 7650: (120-124): Assertion checker does not yet support this expression. +// Warning 8364: (120-122): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (120-131): Assertion checker does not yet implement type struct C.T storage ref +// Warning 4375: (120-124): Assertion checker does not support recursive structs. +// Warning 7650: (135-139): Assertion checker does not yet support this expression. +// Warning 8364: (135-137): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (135-146): Assertion checker does not yet implement type struct C.T storage ref +// Warning 4375: (135-139): Assertion checker does not support recursive structs. +// Warning 7650: (150-159): Assertion checker does not yet support this expression. +// Warning 7650: (150-154): Assertion checker does not yet support this expression. +// Warning 8364: (150-152): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (150-157): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (150-166): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (150-159): Assertion checker does not support recursive structs. +// Warning 7650: (170-179): Assertion checker does not yet support this expression. +// Warning 7650: (170-174): Assertion checker does not yet support this expression. +// Warning 8364: (170-172): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (170-177): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (170-186): Assertion checker does not yet implement type struct C.S storage ref +// Warning 4375: (170-179): Assertion checker does not support recursive structs. +// Warning 7650: (197-211): Assertion checker does not yet support this expression. +// Warning 7650: (197-206): Assertion checker does not yet support this expression. +// Warning 7650: (197-201): Assertion checker does not yet support this expression. +// Warning 8364: (197-199): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (197-204): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (197-209): Assertion checker does not yet implement type struct C.S storage ref +// Warning 7650: (215-229): Assertion checker does not yet support this expression. +// Warning 7650: (215-224): Assertion checker does not yet support this expression. +// Warning 7650: (215-219): Assertion checker does not yet support this expression. +// Warning 8364: (215-217): Assertion checker does not yet implement type struct C.S storage ref +// Warning 8364: (215-222): Assertion checker does not yet implement type struct C.T storage ref +// Warning 8364: (215-227): Assertion checker does not yet implement type struct C.S storage ref diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_return.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_return.sol index e9e8311ea..a96f0323f 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_return.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_return.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -17,5 +15,7 @@ contract C { assert(s2.a[3] == 43); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (289-310): CHC: Assertion violation happens here.\nCounterexample:\n\ns2 = {x: 42, a: [0, 0, 43, 0, 0]}\n\nTransaction trace:\nC.constructor()\nC.f()\n C.s() -- internal call +// Warning 6328: (256-277): CHC: Assertion violation happens here.\nCounterexample:\n\ns2 = {x: 42, a: [0, 0, 43, 0, 0]}\n\nTransaction trace:\nC.constructor()\nC.f()\n C.s() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_state_constructor.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_state_constructor.sol index 46237c934..7c31c616c 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_state_constructor.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_state_constructor.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -12,4 +10,6 @@ contract C { assert(s.x == 42); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_state_var.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_state_var.sol index a480b0a78..ed3aa001d 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_state_var.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_state_var.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -15,6 +13,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (213-237): CHC: Assertion violation happens here. +// Warning 6328: (180-204): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_1.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_1.sol index 50c9ede93..e3dcb0184 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -21,7 +19,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2529: (121-130): CHC: Empty array "pop" happens here. -// Warning 6328: (230-254): CHC: Assertion violation happens here. +// Warning 2529: (88-97): CHC: Empty array "pop" happens here. +// Warning 6328: (197-221): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_2.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_2.sol index a50072b12..748159516 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_2.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_state_var_array_pop_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; @@ -18,7 +16,8 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 2529: (133-142): CHC: Empty array "pop" happens here. -// Warning 6328: (189-213): CHC: Assertion violation happens here. +// Warning 2529: (100-109): CHC: Empty array "pop" happens here. +// Warning 6328: (156-180): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_temporary.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_temporary.sol index b6451dd2a..a4f3a4d42 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_temporary.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_temporary.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -10,4 +8,6 @@ contract C { assert(S(42).x == 42); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_unary_add.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_unary_add.sol index 643df8657..8bd6de794 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_unary_add.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_unary_add.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -15,6 +14,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (225-245): CHC: Assertion violation happens here. +// Warning 6328: (193-213): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct/struct_unary_sub.sol b/test/libsolidity/smtCheckerTests/types/struct/struct_unary_sub.sol index 90ecc159d..7ce618a0e 100644 --- a/test/libsolidity/smtCheckerTests/types/struct/struct_unary_sub.sol +++ b/test/libsolidity/smtCheckerTests/types/struct/struct_unary_sub.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; pragma abicoder v2; contract C { @@ -16,6 +15,7 @@ contract C { } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (240-260): CHC: Assertion violation happens here. +// Warning 6328: (208-228): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/struct_1.sol b/test/libsolidity/smtCheckerTests/types/struct_1.sol index 37035c806..1a24decc3 100644 --- a/test/libsolidity/smtCheckerTests/types/struct_1.sol +++ b/test/libsolidity/smtCheckerTests/types/struct_1.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { @@ -14,4 +12,6 @@ contract C assert(smap[y].x == smem.x); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/struct_array_branches_1d.sol b/test/libsolidity/smtCheckerTests/types/struct_array_branches_1d.sol index 3cffa35bf..07c67d97c 100644 --- a/test/libsolidity/smtCheckerTests/types/struct_array_branches_1d.sol +++ b/test/libsolidity/smtCheckerTests/types/struct_array_branches_1d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint[] a; } @@ -14,3 +12,5 @@ contract C assert(c.a[0] > 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/struct_array_branches_2d.sol b/test/libsolidity/smtCheckerTests/types/struct_array_branches_2d.sol index a8178c9be..0da530799 100644 --- a/test/libsolidity/smtCheckerTests/types/struct_array_branches_2d.sol +++ b/test/libsolidity/smtCheckerTests/types/struct_array_branches_2d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint[][] a; } @@ -15,6 +13,8 @@ contract C assert(c.a[0][0] > 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 6368: (249-258): CHC: Out of bounds access might happen here. -// Warning 6328: (242-263): CHC: Assertion violation might happen here. +// Warning 6368: (216-225): CHC: Out of bounds access might happen here. +// Warning 6328: (209-230): CHC: Assertion violation might happen here. diff --git a/test/libsolidity/smtCheckerTests/types/struct_array_branches_3d.sol b/test/libsolidity/smtCheckerTests/types/struct_array_branches_3d.sol index fd095cd61..dbd498327 100644 --- a/test/libsolidity/smtCheckerTests/types/struct_array_branches_3d.sol +++ b/test/libsolidity/smtCheckerTests/types/struct_array_branches_3d.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint[][][] a; } @@ -22,5 +20,7 @@ contract C */ } } +// ==== +// SMTEngine: all // ---- -// Warning 5667: (86-92): Unused function parameter. Remove or comment out the variable name to silence this warning. +// Warning 5667: (53-59): Unused function parameter. Remove or comment out the variable name to silence this warning. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_1_chain_1.sol b/test/libsolidity/smtCheckerTests/types/tuple_1_chain_1.sol index b4db4cfd2..72fd765f4 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_1_chain_1.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_1_chain_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function i() public pure returns (uint d) { if (0==0) @@ -6,5 +5,7 @@ contract C { assert(d == 13); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (96-100): BMC: Condition is always true. +// Warning 6838: (64-68): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_1_chain_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_1_chain_2.sol index 4ad41dd1f..084c637b9 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_1_chain_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_1_chain_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function i() public pure returns (uint d) { if (0==0) @@ -6,5 +5,7 @@ contract C { assert(d == 13); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (96-100): BMC: Condition is always true. +// Warning 6838: (64-68): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_1_chain_n.sol b/test/libsolidity/smtCheckerTests/types/tuple_1_chain_n.sol index 85a1fe8fe..1f8151920 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_1_chain_n.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_1_chain_n.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function i() public pure returns (uint d) { if (0==0) @@ -6,5 +5,7 @@ contract C { assert(d == 13); } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (96-100): BMC: Condition is always true. +// Warning 6838: (64-68): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_array_pop_1.sol b/test/libsolidity/smtCheckerTests/types/tuple_array_pop_1.sol index 0dbd3c6fd..45a26a31a 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_array_pop_1.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_array_pop_1.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { int[] a; function f() public { (a).pop();} } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (78-87): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (46-55): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_array_pop_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_array_pop_2.sol index 93b1c1ca4..a1946258e 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_array_pop_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_array_pop_2.sol @@ -1,7 +1,8 @@ -pragma experimental SMTChecker; contract C { int[] a; function f() public { (((((a))))).pop();} } +// ==== +// SMTEngine: all // ---- -// Warning 2529: (78-95): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() +// Warning 2529: (46-63): CHC: Empty array "pop" happens here.\nCounterexample:\na = []\n\nTransaction trace:\nC.constructor()\nState: a = []\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_assignment.sol b/test/libsolidity/smtCheckerTests/types/tuple_assignment.sol index b6f9e2bf4..cd1949d2e 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_assignment.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_assignment.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() public pure { @@ -10,4 +8,6 @@ contract C assert(y == 4); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/tuple_assignment_array.sol b/test/libsolidity/smtCheckerTests/types/tuple_assignment_array.sol index 15b2d4a87..5334cb93a 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_assignment_array.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_assignment_array.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; @@ -13,3 +11,5 @@ contract C assert(a[y] == 4); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/tuple_assignment_array_empty.sol b/test/libsolidity/smtCheckerTests/types/tuple_assignment_array_empty.sol index 13d5527e4..e5f062b57 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_assignment_array_empty.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_assignment_array_empty.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint[] a; @@ -16,6 +14,7 @@ contract C } } // ==== +// SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (231-248): CHC: Assertion violation happens here. +// Warning 6328: (198-215): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_assignment_compound.sol b/test/libsolidity/smtCheckerTests/types/tuple_assignment_compound.sol index 6f1016268..03a5a22db 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_assignment_compound.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_assignment_compound.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { @@ -9,5 +7,7 @@ contract C assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (122-136): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4\nb = 3\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (89-103): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4\nb = 3\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_assignment_empty.sol b/test/libsolidity/smtCheckerTests/types/tuple_assignment_empty.sol index c1652dcc9..7e7795ea1 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_assignment_empty.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_assignment_empty.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() public pure { @@ -10,5 +8,7 @@ contract C assert(y == 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (132-146): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 0\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6328: (99-113): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 0\n\nTransaction trace:\nC.constructor()\nC.g() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_assignment_multiple_calls.sol b/test/libsolidity/smtCheckerTests/types/tuple_assignment_multiple_calls.sol index 60897f5c5..83b7f2039 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_assignment_multiple_calls.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_assignment_multiple_calls.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) public pure returns (uint, uint) { @@ -12,3 +10,5 @@ contract C assert(a == c && b == d); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/tuple_declarations.sol b/test/libsolidity/smtCheckerTests/types/tuple_declarations.sol index 2f09308d1..f0956bfd4 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_declarations.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_declarations.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() public pure { @@ -8,4 +6,6 @@ contract C assert(y == 4); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/tuple_declarations_empty.sol b/test/libsolidity/smtCheckerTests/types/tuple_declarations_empty.sol index 3d31aa361..13d91a5f3 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_declarations_empty.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_declarations_empty.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function g() public pure { @@ -7,3 +5,5 @@ contract C assert(x == 2); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/tuple_declarations_function.sol b/test/libsolidity/smtCheckerTests/types/tuple_declarations_function.sol index 424786635..7f88f30ff 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_declarations_function.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_declarations_function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() internal pure returns (uint, bool, uint) { @@ -15,3 +13,5 @@ contract C assert(y == 999); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_2.sol index a36209646..15ca65c86 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint x) internal pure returns (uint, bool, uint) { @@ -14,4 +12,6 @@ contract C assert(y == 999); } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_empty.sol b/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_empty.sol index 1efc84d13..1772aa995 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_empty.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_declarations_function_empty.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() internal pure returns (uint, bool, uint) { @@ -13,5 +11,7 @@ contract C assert(!b); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (224-234): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call +// Warning 6328: (191-201): CHC: Assertion violation happens here.\nCounterexample:\n\nb = true\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_1.sol b/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_1.sol index 1826982b9..f3f5121a2 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_1.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_1.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure returns(int) { int a; @@ -7,6 +6,8 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (79-82): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (157-171): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 2\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6321: (47-50): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (125-139): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 2\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_2.sol index b1b0cc9ba..51b40dda1 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_different_count_assignment_2.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f() public pure returns(int) { int a; @@ -7,6 +6,8 @@ contract C { assert(a == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (79-82): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. -// Warning 6328: (159-173): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 2\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6321: (47-50): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6328: (127-141): CHC: Assertion violation happens here.\nCounterexample:\n\n = 0\na = 2\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_1.sol b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_1.sol index 1a0f36319..b358a2032 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_1.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_1.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f2() public pure returns(int) { int a; ((, a)) = (1, 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (80-83): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (48-51): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_2.sol index 1807864e6..cf34d34a8 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_2.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f2() public pure returns(int) { int a; (((, a),)) = ((1, 2), 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (80-83): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (48-51): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_3.sol b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_3.sol index 03ce76ea6..051c582de 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_3.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_3.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f2() public pure returns(int) { int a; (((((((, a),)))))) = ((1, 2), 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (80-83): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (48-51): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_4.sol b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_4.sol index d97216f13..7f7185b11 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_4.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_4.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f2() public pure returns(int) { int a; ((((((, a)))),)) = ((1, 2), 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (80-83): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (48-51): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_5.sol b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_5.sol index b6ac3a5c1..d757bebde 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_5.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_5.sol @@ -1,9 +1,10 @@ -pragma experimental SMTChecker; contract C { function f2() public pure returns(int) { int a; ((((((((((((, a))))))),))))) = ((1, 2), 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 6321: (80-83): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. +// Warning 6321: (48-51): Unnamed return variable can remain unassigned. Add an explicit return with value to all non-reverting code paths or name the variable. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_6.sol b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_6.sol index 83b2db4df..3edeae19d 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_6.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_6.sol @@ -1,6 +1,7 @@ -pragma experimental SMTChecker; contract C { function f() public pure { (((,))) = ((2),3); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_7.sol b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_7.sol index fc4a4053f..adf8bddf2 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_7.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_extra_parens_7.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function g() internal pure returns (uint, uint) { return (2, 3); @@ -10,6 +9,8 @@ contract C { assert(y == 3); } } +// ==== +// SMTEngine: all // ---- -// Warning 4588: (142-161): Assertion checker does not yet implement this type of function call. -// Warning 4588: (142-161): Assertion checker does not yet implement this type of function call. +// Warning 4588: (110-129): Assertion checker does not yet implement this type of function call. +// Warning 4588: (110-129): Assertion checker does not yet implement this type of function call. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_function.sol b/test/libsolidity/smtCheckerTests/types/tuple_function.sol index 32868ab75..ef3ad0102 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_function.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_function.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() internal pure returns (uint, uint) { @@ -13,6 +11,8 @@ contract C assert(y == 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (182-196): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 3\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call -// Warning 6328: (200-214): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 3\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call +// Warning 6328: (149-163): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 3\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call +// Warning 6328: (167-181): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 3\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/tuple_function_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_function_2.sol index cdf4c103f..bbd92a90a 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_function_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_function_2.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() internal pure returns (uint, uint) { @@ -13,5 +11,7 @@ contract C assert(y == 4); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (199-213): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call +// Warning 6328: (166-180): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 2\ny = 0\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/tuple_function_3.sol b/test/libsolidity/smtCheckerTests/types/tuple_function_3.sol index f68ed1330..92181fe36 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_function_3.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_function_3.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() internal pure returns (uint, bool, uint) { @@ -15,6 +13,8 @@ contract C assert(!b); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (205-219): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call -// Warning 6328: (223-237): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call +// Warning 6328: (172-186): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call +// Warning 6328: (190-204): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 0\nb = false\n\nTransaction trace:\nC.constructor()\nC.g()\n C.f() -- internal call diff --git a/test/libsolidity/smtCheckerTests/types/tuple_return_branch.sol b/test/libsolidity/smtCheckerTests/types/tuple_return_branch.sol index 2642c979a..aea54fb1e 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_return_branch.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_return_branch.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { struct S { uint x; } @@ -15,4 +13,6 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/types/tuple_single_element_1.sol b/test/libsolidity/smtCheckerTests/types/tuple_single_element_1.sol index c76a9d751..5501f7527 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_single_element_1.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_single_element_1.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { (("", 2)); } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (76-85): Statement has no effect. +// Warning 6133: (43-52): Statement has no effect. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_single_element_2.sol b/test/libsolidity/smtCheckerTests/types/tuple_single_element_2.sol index 08dfa3ef0..a856d53d1 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_single_element_2.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_single_element_2.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { (("", "")); } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (76-86): Statement has no effect. +// Warning 6133: (43-53): Statement has no effect. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_single_non_tuple_element.sol b/test/libsolidity/smtCheckerTests/types/tuple_single_non_tuple_element.sol index 850170d52..c02e0f786 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_single_non_tuple_element.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_single_non_tuple_element.sol @@ -1,9 +1,9 @@ -pragma experimental SMTChecker; - contract C { function f() public pure { (2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (76-79): Statement has no effect. +// Warning 6133: (43-46): Statement has no effect. diff --git a/test/libsolidity/smtCheckerTests/types/tuple_tuple.sol b/test/libsolidity/smtCheckerTests/types/tuple_tuple.sol index c12e56a2d..f11687cdb 100644 --- a/test/libsolidity/smtCheckerTests/types/tuple_tuple.sol +++ b/test/libsolidity/smtCheckerTests/types/tuple_tuple.sol @@ -1,6 +1,7 @@ -pragma experimental SMTChecker; contract C { function f3() public pure { ((, ), ) = ((7, 8), 9); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/types/type_expression_array_2d.sol b/test/libsolidity/smtCheckerTests/types/type_expression_array_2d.sol index 22f6c9c07..661060047 100644 --- a/test/libsolidity/smtCheckerTests/types/type_expression_array_2d.sol +++ b/test/libsolidity/smtCheckerTests/types/type_expression_array_2d.sol @@ -1,12 +1,13 @@ -pragma experimental SMTChecker; contract C { function f() public pure { int[][]; } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (73-80): Statement has no effect. -// Warning 8364: (73-78): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (73-80): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (73-78): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (73-80): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 6133: (41-48): Statement has no effect. +// Warning 8364: (41-46): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (41-48): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (41-46): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (41-48): Assertion checker does not yet implement type type(int256[] memory[] memory) diff --git a/test/libsolidity/smtCheckerTests/types/type_expression_array_3d.sol b/test/libsolidity/smtCheckerTests/types/type_expression_array_3d.sol index 51869fb3f..e37f181ea 100644 --- a/test/libsolidity/smtCheckerTests/types/type_expression_array_3d.sol +++ b/test/libsolidity/smtCheckerTests/types/type_expression_array_3d.sol @@ -1,14 +1,15 @@ -pragma experimental SMTChecker; contract C { function f() public pure { int[][][]; } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (73-82): Statement has no effect. -// Warning 8364: (73-78): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (73-80): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (73-82): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) -// Warning 8364: (73-78): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (73-80): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (73-82): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) +// Warning 6133: (41-50): Statement has no effect. +// Warning 8364: (41-46): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (41-48): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (41-50): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) +// Warning 8364: (41-46): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (41-48): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (41-50): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) diff --git a/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_2d.sol b/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_2d.sol index b34dd2a56..751d2b82a 100644 --- a/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_2d.sol +++ b/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_2d.sol @@ -1,14 +1,15 @@ -pragma experimental SMTChecker; contract C { function f() public pure { (int[][]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (73-82): Statement has no effect. -// Warning 8364: (74-79): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (74-81): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (73-82): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (74-79): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (74-81): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (73-82): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 6133: (41-50): Statement has no effect. +// Warning 8364: (42-47): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (42-49): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (41-50): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (42-47): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (42-49): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (41-50): Assertion checker does not yet implement type type(int256[] memory[] memory) diff --git a/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_3d.sol b/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_3d.sol index dfa4a4661..a1f29dad6 100644 --- a/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_3d.sol +++ b/test/libsolidity/smtCheckerTests/types/type_expression_tuple_array_3d.sol @@ -1,16 +1,17 @@ -pragma experimental SMTChecker; contract C { function f() public pure { (int[][][]); } } +// ==== +// SMTEngine: all // ---- -// Warning 6133: (73-84): Statement has no effect. -// Warning 8364: (74-79): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (74-81): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (74-83): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) -// Warning 8364: (73-84): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) -// Warning 8364: (74-79): Assertion checker does not yet implement type type(int256[] memory) -// Warning 8364: (74-81): Assertion checker does not yet implement type type(int256[] memory[] memory) -// Warning 8364: (74-83): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) -// Warning 8364: (73-84): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) +// Warning 6133: (41-52): Statement has no effect. +// Warning 8364: (42-47): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (42-49): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (42-51): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) +// Warning 8364: (41-52): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) +// Warning 8364: (42-47): Assertion checker does not yet implement type type(int256[] memory) +// Warning 8364: (42-49): Assertion checker does not yet implement type type(int256[] memory[] memory) +// Warning 8364: (42-51): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) +// Warning 8364: (41-52): Assertion checker does not yet implement type type(int256[] memory[] memory[] memory) diff --git a/test/libsolidity/smtCheckerTests/types/type_interfaceid.sol b/test/libsolidity/smtCheckerTests/types/type_interfaceid.sol index c7f2ece82..7b5bae6bc 100644 --- a/test/libsolidity/smtCheckerTests/types/type_interfaceid.sol +++ b/test/libsolidity/smtCheckerTests/types/type_interfaceid.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - interface I1 { } @@ -27,6 +25,8 @@ contract C { assert(type(I2).interfaceId == type(I3).interfaceId); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (449-501): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() -// Warning 6328: (536-588): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.h() +// Warning 6328: (416-468): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.g() +// Warning 6328: (503-555): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.h() diff --git a/test/libsolidity/smtCheckerTests/types/type_meta_unsupported.sol b/test/libsolidity/smtCheckerTests/types/type_meta_unsupported.sol index 58e6c213f..778f0181d 100644 --- a/test/libsolidity/smtCheckerTests/types/type_meta_unsupported.sol +++ b/test/libsolidity/smtCheckerTests/types/type_meta_unsupported.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract A { } @@ -10,13 +8,15 @@ contract C { assert(type(A).runtimeCode.length != 0); } } +// ==== +// SMTEngine: all // ---- -// Warning 7507: (105-117): Assertion checker does not yet support this expression. -// Warning 7507: (142-162): Assertion checker does not yet support this expression. -// Warning 7507: (186-205): Assertion checker does not yet support this expression. -// Warning 6328: (92-131): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (135-175): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (179-218): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 7507: (105-117): Assertion checker does not yet support this expression. -// Warning 7507: (142-162): Assertion checker does not yet support this expression. -// Warning 7507: (186-205): Assertion checker does not yet support this expression. +// Warning 7507: (72-84): Assertion checker does not yet support this expression. +// Warning 7507: (109-129): Assertion checker does not yet support this expression. +// Warning 7507: (153-172): Assertion checker does not yet support this expression. +// Warning 6328: (59-98): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (102-142): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (146-185): CHC: Assertion violation happens here.\nCounterexample:\n\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 7507: (72-84): Assertion checker does not yet support this expression. +// Warning 7507: (109-129): Assertion checker does not yet support this expression. +// Warning 7507: (153-172): Assertion checker does not yet support this expression. diff --git a/test/libsolidity/smtCheckerTests/types/type_minmax.sol b/test/libsolidity/smtCheckerTests/types/type_minmax.sol index 740bd22fa..cc9e3c319 100644 --- a/test/libsolidity/smtCheckerTests/types/type_minmax.sol +++ b/test/libsolidity/smtCheckerTests/types/type_minmax.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(uint a) public pure { assert(a <= type(uint).max); @@ -80,5 +78,7 @@ contract C { assert(uint256_max == 2**256-1); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (211-240): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4294967296\n\nTransaction trace:\nC.constructor()\nC.f(4294967296) +// Warning 6328: (178-207): CHC: Assertion violation happens here.\nCounterexample:\n\na = 4294967296\n\nTransaction trace:\nC.constructor()\nC.f(4294967296) diff --git a/test/libsolidity/smtCheckerTests/types/unused_mapping.sol b/test/libsolidity/smtCheckerTests/types/unused_mapping.sol index 01905a36e..b1c1ec0f3 100644 --- a/test/libsolidity/smtCheckerTests/types/unused_mapping.sol +++ b/test/libsolidity/smtCheckerTests/types/unused_mapping.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint x; uint y; @@ -16,3 +14,5 @@ contract C { //assert(y == x); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/unchecked/block_inside_unchecked.sol b/test/libsolidity/smtCheckerTests/unchecked/block_inside_unchecked.sol index d91df2226..e5237123d 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/block_inside_unchecked.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/block_inside_unchecked.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f() public pure returns (uint y) { unchecked{{ @@ -10,3 +8,5 @@ contract C { assert(y == 0); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/unchecked/check_var_init.sol b/test/libsolidity/smtCheckerTests/unchecked/check_var_init.sol index 3ecfa49fc..805409c01 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/check_var_init.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/check_var_init.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { uint public x = msg.value - 10; // can underflow constructor() payable {} @@ -15,6 +13,8 @@ contract D { } } } +// ==== +// SMTEngine: all // ---- -// Warning 3944: (66-80): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() -// Warning 3944: (193-207): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f()\n D.h() -- internal call +// Warning 3944: (33-47): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor() +// Warning 3944: (160-174): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f()\n D.h() -- internal call diff --git a/test/libsolidity/smtCheckerTests/unchecked/checked_called_by_unchecked.sol b/test/libsolidity/smtCheckerTests/unchecked/checked_called_by_unchecked.sol index 3a2dc6ce9..cb795f9c0 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/checked_called_by_unchecked.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/checked_called_by_unchecked.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function add(uint16 a, uint16 b) public pure returns (uint16) { return a + b; // can overflow @@ -9,5 +7,7 @@ contract C { unchecked { return add(a, b) + c; } // add can still overflow, `+ c` can't } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (129-134): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 1\nb = 65535\n = 0\n\nTransaction trace:\nC.constructor()\nC.add(1, 65535) +// Warning 4984: (96-101): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 1\nb = 65535\n = 0\n\nTransaction trace:\nC.constructor()\nC.add(1, 65535) diff --git a/test/libsolidity/smtCheckerTests/unchecked/checked_modifier_called_by_unchecked.sol b/test/libsolidity/smtCheckerTests/unchecked/checked_modifier_called_by_unchecked.sol index 2a47fbeed..d60c50e97 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/checked_modifier_called_by_unchecked.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/checked_modifier_called_by_unchecked.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier add(uint16 a, uint16 b) { unchecked { a + b; } // overflow not reported @@ -10,5 +8,7 @@ contract C { return b + c; // can overflow } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (258-263): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65535\nb = 1\nc = 65535\n = 0\na = 65535\nb = 1\n\nTransaction trace:\nC.constructor()\nC.f(65535, 1, 65535) +// Warning 4984: (225-230): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65535\nb = 1\nc = 65535\n = 0\na = 65535\nb = 1\n\nTransaction trace:\nC.constructor()\nC.f(65535, 1, 65535) diff --git a/test/libsolidity/smtCheckerTests/unchecked/flipping_sign_tests.sol b/test/libsolidity/smtCheckerTests/unchecked/flipping_sign_tests.sol index 4aaaf82e6..8a7405c54 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/flipping_sign_tests.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/flipping_sign_tests.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract test { function f() public pure returns (bool) { int256 x = -2**255; @@ -8,5 +6,7 @@ contract test { return true; } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (143-158): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\ntest.constructor()\ntest.f() +// Warning 6328: (110-125): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\ntest.constructor()\ntest.f() diff --git a/test/libsolidity/smtCheckerTests/unchecked/inc_dec.sol b/test/libsolidity/smtCheckerTests/unchecked/inc_dec.sol index 2e5a07ece..32295d5fd 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/inc_dec.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/inc_dec.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function o() public pure { uint x = type(uint).max; @@ -25,3 +23,5 @@ contract C { assert(x == type(int).max); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/unchecked/signed_mod.sol b/test/libsolidity/smtCheckerTests/unchecked/signed_mod.sol index c85f3e120..736b506e1 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/signed_mod.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/signed_mod.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function f(int a, int b) public pure returns (int) { return a % b; // can div by 0 @@ -13,6 +11,8 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (118-123): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) -// Warning 4984: (275-281): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\n_check = true\n = 0\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\nC.constructor()\nC.g(true) +// Warning 4281: (85-90): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0) +// Warning 4984: (242-248): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\n_check = true\n = 0\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\nC.constructor()\nC.g(true) diff --git a/test/libsolidity/smtCheckerTests/unchecked/unchecked_called_by_checked.sol b/test/libsolidity/smtCheckerTests/unchecked/unchecked_called_by_checked.sol index bdc6aa1e6..12081e639 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/unchecked_called_by_checked.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/unchecked_called_by_checked.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function add(uint16 a, uint16 b) public pure returns (uint16) { unchecked { @@ -11,5 +9,7 @@ contract C { return add(a, 0x100) + 0x100; // should overflow on `+ 0x100` } } +// ==== +// SMTEngine: all // ---- -// Warning 4984: (273-294): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65024\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(65024)\n C.add(65024, 256) -- internal call +// Warning 4984: (240-261): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65024\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(65024)\n C.add(65024, 256) -- internal call diff --git a/test/libsolidity/smtCheckerTests/unchecked/unchecked_div_by_zero.sol b/test/libsolidity/smtCheckerTests/unchecked/unchecked_div_by_zero.sol index 6d8bdeea6..cabf58251 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/unchecked_div_by_zero.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/unchecked_div_by_zero.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { function div(uint256 a, uint256 b) public pure returns (uint256) { // Does not disable div by zero check @@ -15,6 +13,8 @@ contract C { } } } +// ==== +// SMTEngine: all // ---- -// Warning 4281: (202-207): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.div(0, 0) -// Warning 4281: (382-387): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.mod(0, 0) +// Warning 4281: (169-174): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.div(0, 0) +// Warning 4281: (349-354): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.mod(0, 0) diff --git a/test/libsolidity/smtCheckerTests/unchecked/unchecked_double_with_modifier.sol b/test/libsolidity/smtCheckerTests/unchecked/unchecked_double_with_modifier.sol index 6edf98d2f..55931bfa9 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/unchecked_double_with_modifier.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/unchecked_double_with_modifier.sol @@ -1,5 +1,3 @@ -pragma experimental SMTChecker; - contract C { modifier m() { @@ -15,4 +13,6 @@ contract C { } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/unchecked/unchecked_function_call_with_unchecked_block.sol b/test/libsolidity/smtCheckerTests/unchecked/unchecked_function_call_with_unchecked_block.sol index e6a087fa0..ebb6912cf 100644 --- a/test/libsolidity/smtCheckerTests/unchecked/unchecked_function_call_with_unchecked_block.sol +++ b/test/libsolidity/smtCheckerTests/unchecked/unchecked_function_call_with_unchecked_block.sol @@ -1,4 +1,3 @@ -pragma experimental SMTChecker; contract C { function f(uint x) internal pure { unchecked { @@ -10,5 +9,7 @@ contract C { unchecked { f(x); } } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (117-130): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor()\nC.g(0)\n C.f(0) -- internal call +// Warning 6328: (85-98): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor()\nC.g(0)\n C.f(0) -- internal call diff --git a/test/libsolidity/smtCheckerTests/verification_target/constant_condition_1.sol b/test/libsolidity/smtCheckerTests/verification_target/constant_condition_1.sol index 86e9e0d7c..9511566b0 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/constant_condition_1.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/constant_condition_1.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { if (x >= 0) { revert(); } } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (94-100): BMC: Condition is always true. +// Warning 6838: (62-68): BMC: Condition is always true. diff --git a/test/libsolidity/smtCheckerTests/verification_target/constant_condition_2.sol b/test/libsolidity/smtCheckerTests/verification_target/constant_condition_2.sol index a09d00cea..f3e14f241 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/constant_condition_2.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/constant_condition_2.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f(uint x) public pure { if (x >= 10) { if (x < 10) { revert(); } } } } +// ==== +// SMTEngine: all // ---- -// Warning 6838: (109-115): BMC: Condition is always false. +// Warning 6838: (77-83): BMC: Condition is always false. diff --git a/test/libsolidity/smtCheckerTests/verification_target/constant_condition_3.sol b/test/libsolidity/smtCheckerTests/verification_target/constant_condition_3.sol index 709fcb1b4..6dfcaff77 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/constant_condition_3.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/constant_condition_3.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; // a plain literal constant is fine contract C { function f(uint) public pure { if (true) { revert(); } } } +// ==== +// SMTEngine: all // ---- diff --git a/test/libsolidity/smtCheckerTests/verification_target/no_target_for_abstract_constract.sol b/test/libsolidity/smtCheckerTests/verification_target/no_target_for_abstract_constract.sol index 590ee6be6..3d820150e 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/no_target_for_abstract_constract.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/no_target_for_abstract_constract.sol @@ -1,7 +1,7 @@ -pragma experimental SMTChecker; - abstract contract A { function f() public pure { assert(false); // A cannot be deployed so this should not be reported } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/verification_target/no_target_for_constructor_of_abstract_constract.sol b/test/libsolidity/smtCheckerTests/verification_target/no_target_for_constructor_of_abstract_constract.sol index 0f176def4..28391614c 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/no_target_for_constructor_of_abstract_constract.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/no_target_for_constructor_of_abstract_constract.sol @@ -1,7 +1,7 @@ -pragma experimental SMTChecker; - abstract contract A { constructor() { assert(false); // A cannot be deployed, so this should not be reported } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/verification_target/simple_assert.sol b/test/libsolidity/smtCheckerTests/verification_target/simple_assert.sol index 13e2a08a7..aa1abfff6 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/simple_assert.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/simple_assert.sol @@ -1,6 +1,7 @@ -pragma experimental SMTChecker; contract C { function f(uint a) public pure { assert(a == 2); } } +// ==== +// SMTEngine: all // ---- -// Warning 6328: (82-96): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) +// Warning 6328: (50-64): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0\n\nTransaction trace:\nC.constructor()\nC.f(0) diff --git a/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require.sol b/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require.sol index b66ae2457..e0ff91f47 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require.sol @@ -1,4 +1,5 @@ -pragma experimental SMTChecker; contract C { function f(uint a) public pure { require(a < 10); assert(a < 20); } } +// ==== +// SMTEngine: all \ No newline at end of file diff --git a/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require_message.sol b/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require_message.sol index e2fcac7b6..2c0d0c6a7 100644 --- a/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require_message.sol +++ b/test/libsolidity/smtCheckerTests/verification_target/simple_assert_with_require_message.sol @@ -1,8 +1,9 @@ -pragma experimental SMTChecker; contract C { function f(uint a) public pure { require(a < 10, "Input number is too large."); assert(a < 20); } } +// ==== +// SMTEngine: all // ---- From c43ae609389a4cdfa5669edc5cc589cc5e85b385 Mon Sep 17 00:00:00 2001 From: Leonardo Alt Date: Wed, 31 Mar 2021 17:12:31 +0200 Subject: [PATCH 4/7] Changelog --- Changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Changelog.md b/Changelog.md index b1ee85e26..a86365bfc 100644 --- a/Changelog.md +++ b/Changelog.md @@ -10,6 +10,7 @@ Compiler Features: * Analysis: Properly detect circular references to the bytecode of other contracts across all function calls. * Commandline Interface: Model checker option ``--model-checker-targets`` also accepts ``outOfBounds``. * Low-Level Inliner: Inline ordinary jumps to small blocks and jumps to small blocks that terminate. + * SMTChecker: Deprecate ``pragma experimental SMTChecker;`` and set default model checker engine to ``none``. * SMTChecker: Report local variables in CHC counterexamples. * SMTChecker: Report out of bounds index access for arrays and fixed bytes. * Standard JSON: Model checker option ``settings.modelChecker.targets`` also accepts ``outOfBounds``. From d89be74e4a7cd6fec8b6bb34690921fd117b95ae Mon Sep 17 00:00:00 2001 From: Leonardo Alt Date: Wed, 31 Mar 2021 17:20:30 +0200 Subject: [PATCH 5/7] Update docs --- docs/smtchecker.rst | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/docs/smtchecker.rst b/docs/smtchecker.rst index 9849738a1..737c92836 100644 --- a/docs/smtchecker.rst +++ b/docs/smtchecker.rst @@ -39,8 +39,17 @@ The potential warnings that the SMTChecker reports are: - `` happens here.``. This means that the SMTChecker proved that a certain property fails. A counterexample may be given, however in complex situations it may also not show a counterexample. This result may also be a false positive in certain cases, when the SMT encoding adds abstractions for Solidity code that is either hard or impossible to express. - `` might happen here``. This means that the solver could not prove either case within the given timeout. Since the result is unknown, the SMTChecker reports the potential failure for soundness. This may be solved by increasing the query timeout, but the problem might also simply be too hard for the engine to solve. -It is currently an experimental feature, therefore in order to use it you need -to enable it via :ref:`a pragma directive`. +To enable the SMTChecker, you must select :ref:`which engine should run`, +where the default is no engine. Selecting the engine enables the SMTChecker on all files. + +.. note:: + + Prior to Solidity 0.8.4, the default way to enable the SMTChecker was via + ``pragma experimental SMTChecker;`` and only the contracts containing the + pragma would be analyzed. That pragma has been deprecated, and although it + still enables the SMTChecker for backwards compatibility, it will be removed + in Solidity 0.9.0. Note also that now using the pragma even in a single file + enables the SMTChecker for all files. .. note:: The lack of warnings for a verification target represents an undisputed @@ -62,9 +71,8 @@ Overflow .. code-block:: Solidity + // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0; - pragma experimental SMTChecker; - // This may report a warning if no SMT solver is available. contract Overflow { uint immutable x; @@ -110,9 +118,8 @@ the SMTChecker proves that no overflow is reachable (by not reporting warnings): .. code-block:: Solidity + // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0; - pragma experimental SMTChecker; - // This may report a warning if no SMT solver is available. contract Overflow { uint immutable x; @@ -149,9 +156,8 @@ definition to see what results come out! .. code-block:: Solidity + // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0; - pragma experimental SMTChecker; - // This may report a warning if no SMT solver is available. contract Monotonic { function f(uint _x) internal pure returns (uint) { @@ -172,9 +178,8 @@ equal every element in the array. .. code-block:: Solidity + // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0; - pragma experimental SMTChecker; - // This may report a warning if no SMT solver is available. contract Max { function max(uint[] memory _a) public pure returns (uint) { @@ -206,9 +211,8 @@ For example, changing the code to .. code-block:: Solidity + // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0; - pragma experimental SMTChecker; - // This may report a warning if no SMT solver is available. contract Max { function max(uint[] memory _a) public pure returns (uint) { @@ -259,10 +263,8 @@ below. .. code-block:: Solidity + // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0; - pragma experimental SMTChecker; - // This may report a warning if no SMT solver is available. - contract Robot { int x = 0; @@ -361,9 +363,8 @@ anything, including reenter the caller contract. .. code-block:: Solidity + // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0; - pragma experimental SMTChecker; - // This may report a warning if no SMT solver is available. interface Unknown { function run() external; @@ -469,6 +470,8 @@ A common subset of targets might be, for example: There is no precise heuristic on how and when to split verification targets, but it can be useful especially when dealing with large contracts. +.. _smtchecker_engines: + Model Checking Engines ====================== @@ -624,8 +627,6 @@ not mean loss of proving power. // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0; - pragma experimental SMTChecker; - // This may report a warning if no SMT solver is available. contract Recover { @@ -673,8 +674,6 @@ types. // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.0; - pragma experimental SMTChecker; - // This will report a warning contract Aliasing { From ad10bee8f0924944f4547ff0b4afd79557ef0b83 Mon Sep 17 00:00:00 2001 From: Leonardo Alt Date: Wed, 31 Mar 2021 17:31:23 +0200 Subject: [PATCH 6/7] update command line tests --- .../cmdlineTests/model_checker_engine_all/err | 4 +- .../model_checker_engine_all/input.sol | 1 - .../cmdlineTests/model_checker_engine_bmc/err | 4 +- .../model_checker_engine_bmc/input.sol | 1 - .../cmdlineTests/model_checker_engine_chc/err | 4 +- .../model_checker_engine_chc/input.sol | 1 - .../model_checker_engine_none/input.sol | 1 - .../model_checker_targets_all/args | 2 +- .../model_checker_targets_all/err | 36 +- .../model_checker_targets_all/input.sol | 1 - .../model_checker_targets_all_bmc/err | 28 +- .../model_checker_targets_all_bmc/input.sol | 1 - .../model_checker_targets_all_chc/err | 28 +- .../model_checker_targets_all_chc/input.sol | 1 - .../model_checker_targets_assert_bmc/err | 4 +- .../input.sol | 1 - .../model_checker_targets_assert_chc/err | 4 +- .../input.sol | 1 - .../model_checker_targets_balance_bmc/err | 4 +- .../input.sol | 1 - .../input.sol | 1 - .../err | 4 +- .../input.sol | 1 - .../input.sol | 1 - .../model_checker_targets_div_by_zero_bmc/err | 8 +- .../input.sol | 1 - .../model_checker_targets_div_by_zero_chc/err | 8 +- .../input.sol | 1 - .../model_checker_targets_error/args | 2 +- .../model_checker_targets_error/input.sol | 1 - .../input.sol | 1 - .../err | 4 +- .../input.sol | 1 - .../model_checker_targets_overflow_bmc/err | 4 +- .../input.sol | 1 - .../model_checker_targets_overflow_chc/err | 4 +- .../input.sol | 1 - .../input.sol | 1 - .../model_checker_targets_pop_empty_chc/err | 4 +- .../input.sol | 1 - .../model_checker_targets_underflow_bmc/err | 4 +- .../input.sol | 1 - .../model_checker_targets_underflow_chc/err | 4 +- .../input.sol | 1 - .../err | 12 +- .../input.sol | 1 - .../err | 12 +- .../input.sol | 1 - .../err | 8 +- .../input.sol | 1 - .../err | 8 +- .../input.sol | 1 - .../model_checker_timeout_all/args | 2 +- .../model_checker_timeout_all/err | 16 +- .../model_checker_timeout_all/input.sol | 1 - .../model_checker_timeout_bmc/err | 8 +- .../model_checker_timeout_bmc/input.sol | 1 - .../model_checker_timeout_chc/err | 8 +- .../model_checker_timeout_chc/input.sol | 1 - .../input.json | 2 +- .../output.json | 2 +- .../input.json | 2 +- .../output.json | 14 +- .../input.json | 2 +- .../output.json | 2 +- .../input.json | 2 +- .../input.json | 3 +- .../output.json | 136 +-- .../input.json | 2 +- .../output.json | 388 ++++----- .../input.json | 2 +- .../output.json | 12 +- .../input.json | 2 +- .../output.json | 56 +- .../input.json | 2 +- .../output.json | 2 +- .../input.json | 2 +- .../output.json | 56 +- .../input.json | 2 +- .../input.json | 2 +- .../output.json | 34 +- .../input.json | 2 +- .../input.json | 2 +- .../output.json | 58 +- .../input.json | 2 +- .../output.json | 2 +- .../input.json | 2 +- .../input.json | 2 +- .../output.json | 2 +- .../input.json | 2 +- .../output.json | 58 +- .../input.json | 2 +- .../output.json | 2 +- .../input.json | 2 +- .../input.json | 2 +- .../output.json | 2 +- .../input.json | 2 +- .../output.json | 58 +- .../input.json | 2 +- .../output.json | 2 +- .../input.json | 2 +- .../output.json | 230 ++--- .../input.json | 2 +- .../output.json | 6 +- .../input.json | 2 +- .../output.json | 116 +-- .../input.json | 2 +- .../output.json | 4 +- .../input.json | 3 +- .../input.json | 3 +- .../output.json | 242 +++--- .../input.json | 2 +- .../output.json | 806 +++++++++--------- .../input.json | 2 +- .../output.json | 2 +- .../input.json | 2 +- .../input.json | 3 +- 117 files changed, 1302 insertions(+), 1329 deletions(-) diff --git a/test/cmdlineTests/model_checker_engine_all/err b/test/cmdlineTests/model_checker_engine_all/err index 09da49d00..12614fd55 100644 --- a/test/cmdlineTests/model_checker_engine_all/err +++ b/test/cmdlineTests/model_checker_engine_all/err @@ -6,7 +6,7 @@ x = 0 Transaction trace: test.constructor() test.f(0) - --> model_checker_engine_all/input.sol:6:3: + --> model_checker_engine_all/input.sol:5:3: | -6 | assert(x > 0); +5 | assert(x > 0); | ^^^^^^^^^^^^^ diff --git a/test/cmdlineTests/model_checker_engine_all/input.sol b/test/cmdlineTests/model_checker_engine_all/input.sol index 166416c06..d29659d11 100644 --- a/test/cmdlineTests/model_checker_engine_all/input.sol +++ b/test/cmdlineTests/model_checker_engine_all/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { function f(uint x) public pure { assert(x > 0); diff --git a/test/cmdlineTests/model_checker_engine_bmc/err b/test/cmdlineTests/model_checker_engine_bmc/err index 82d3b6e0a..ed46539d6 100644 --- a/test/cmdlineTests/model_checker_engine_bmc/err +++ b/test/cmdlineTests/model_checker_engine_bmc/err @@ -1,7 +1,7 @@ Warning: BMC: Assertion violation happens here. - --> model_checker_engine_bmc/input.sol:6:3: + --> model_checker_engine_bmc/input.sol:5:3: | -6 | assert(x > 0); +5 | assert(x > 0); | ^^^^^^^^^^^^^ Note: Counterexample: x = 0 diff --git a/test/cmdlineTests/model_checker_engine_bmc/input.sol b/test/cmdlineTests/model_checker_engine_bmc/input.sol index 166416c06..d29659d11 100644 --- a/test/cmdlineTests/model_checker_engine_bmc/input.sol +++ b/test/cmdlineTests/model_checker_engine_bmc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { function f(uint x) public pure { assert(x > 0); diff --git a/test/cmdlineTests/model_checker_engine_chc/err b/test/cmdlineTests/model_checker_engine_chc/err index 8b7a18182..95198fa20 100644 --- a/test/cmdlineTests/model_checker_engine_chc/err +++ b/test/cmdlineTests/model_checker_engine_chc/err @@ -6,7 +6,7 @@ x = 0 Transaction trace: test.constructor() test.f(0) - --> model_checker_engine_chc/input.sol:6:3: + --> model_checker_engine_chc/input.sol:5:3: | -6 | assert(x > 0); +5 | assert(x > 0); | ^^^^^^^^^^^^^ diff --git a/test/cmdlineTests/model_checker_engine_chc/input.sol b/test/cmdlineTests/model_checker_engine_chc/input.sol index 166416c06..d29659d11 100644 --- a/test/cmdlineTests/model_checker_engine_chc/input.sol +++ b/test/cmdlineTests/model_checker_engine_chc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { function f(uint x) public pure { assert(x > 0); diff --git a/test/cmdlineTests/model_checker_engine_none/input.sol b/test/cmdlineTests/model_checker_engine_none/input.sol index 8727d4b40..f1fb96386 100644 --- a/test/cmdlineTests/model_checker_engine_none/input.sol +++ b/test/cmdlineTests/model_checker_engine_none/input.sol @@ -1,7 +1,6 @@ // Removed to yield a warning, otherwise CI test fails with the expectation // "no output requested" //pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { function f(uint x) public pure { assert(x > 0); diff --git a/test/cmdlineTests/model_checker_targets_all/args b/test/cmdlineTests/model_checker_targets_all/args index 007ae6a21..aac8a1a27 100644 --- a/test/cmdlineTests/model_checker_targets_all/args +++ b/test/cmdlineTests/model_checker_targets_all/args @@ -1 +1 @@ ---model-checker-targets all +--model-checker-engine all --model-checker-targets all diff --git a/test/cmdlineTests/model_checker_targets_all/err b/test/cmdlineTests/model_checker_targets_all/err index ed6b1fae1..6313a8833 100644 --- a/test/cmdlineTests/model_checker_targets_all/err +++ b/test/cmdlineTests/model_checker_targets_all/err @@ -8,9 +8,9 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 0) - --> model_checker_targets_all/input.sol:8:3: + --> model_checker_targets_all/input.sol:7:3: | -8 | --x; +7 | --x; | ^^^ Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here. @@ -23,9 +23,9 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 2) - --> model_checker_targets_all/input.sol:9:3: + --> model_checker_targets_all/input.sol:8:3: | -9 | x + type(uint).max; +8 | x + type(uint).max; | ^^^^^^^^^^^^^^^^^^ Warning: CHC: Division by zero happens here. @@ -38,10 +38,10 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 1) - --> model_checker_targets_all/input.sol:10:3: - | -10 | 2 / x; - | ^^^^^ + --> model_checker_targets_all/input.sol:9:3: + | +9 | 2 / x; + | ^^^^^ Warning: CHC: Assertion violation happens here. Counterexample: @@ -53,9 +53,9 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 1) - --> model_checker_targets_all/input.sol:12:3: + --> model_checker_targets_all/input.sol:11:3: | -12 | assert(x > 0); +11 | assert(x > 0); | ^^^^^^^^^^^^^ Warning: CHC: Empty array "pop" happens here. @@ -68,9 +68,9 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 1) - --> model_checker_targets_all/input.sol:13:3: + --> model_checker_targets_all/input.sol:12:3: | -13 | arr.pop(); +12 | arr.pop(); | ^^^^^^^^^ Warning: CHC: Out of bounds access happens here. @@ -83,22 +83,22 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 1) - --> model_checker_targets_all/input.sol:14:3: + --> model_checker_targets_all/input.sol:13:3: | -14 | arr[x]; +13 | arr[x]; | ^^^^^^ Warning: BMC: Condition is always true. - --> model_checker_targets_all/input.sol:7:11: + --> model_checker_targets_all/input.sol:6:11: | -7 | require(x >= 0); +6 | require(x >= 0); | ^^^^^^ Note: Callstack: Warning: BMC: Insufficient funds happens here. - --> model_checker_targets_all/input.sol:11:3: + --> model_checker_targets_all/input.sol:10:3: | -11 | a.transfer(x); +10 | a.transfer(x); | ^^^^^^^^^^^^^ Note: Counterexample: a = 0 diff --git a/test/cmdlineTests/model_checker_targets_all/input.sol b/test/cmdlineTests/model_checker_targets_all/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_all/input.sol +++ b/test/cmdlineTests/model_checker_targets_all/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_all_bmc/err b/test/cmdlineTests/model_checker_targets_all_bmc/err index b37fef965..27a51a67b 100644 --- a/test/cmdlineTests/model_checker_targets_all_bmc/err +++ b/test/cmdlineTests/model_checker_targets_all_bmc/err @@ -1,14 +1,14 @@ Warning: BMC: Condition is always true. - --> model_checker_targets_all_bmc/input.sol:7:11: + --> model_checker_targets_all_bmc/input.sol:6:11: | -7 | require(x >= 0); +6 | require(x >= 0); | ^^^^^^ Note: Callstack: Warning: BMC: Underflow (resulting value less than 0) happens here. - --> model_checker_targets_all_bmc/input.sol:8:3: + --> model_checker_targets_all_bmc/input.sol:7:3: | -8 | --x; +7 | --x; | ^^^ Note: Counterexample: = (- 1) @@ -19,9 +19,9 @@ Note: Callstack: Note: Warning: BMC: Overflow (resulting value larger than 2**256 - 1) happens here. - --> model_checker_targets_all_bmc/input.sol:9:3: + --> model_checker_targets_all_bmc/input.sol:8:3: | -9 | x + type(uint).max; +8 | x + type(uint).max; | ^^^^^^^^^^^^^^^^^^ Note: Counterexample: = 2**256 @@ -32,10 +32,10 @@ Note: Callstack: Note: Warning: BMC: Division by zero happens here. - --> model_checker_targets_all_bmc/input.sol:10:3: - | -10 | 2 / x; - | ^^^^^ + --> model_checker_targets_all_bmc/input.sol:9:3: + | +9 | 2 / x; + | ^^^^^ Note: Counterexample: = 0 a = 0 @@ -45,9 +45,9 @@ Note: Callstack: Note: Warning: BMC: Insufficient funds happens here. - --> model_checker_targets_all_bmc/input.sol:11:3: + --> model_checker_targets_all_bmc/input.sol:10:3: | -11 | a.transfer(x); +10 | a.transfer(x); | ^^^^^^^^^^^^^ Note: Counterexample: a = 0 @@ -57,9 +57,9 @@ Note: Callstack: Note: Warning: BMC: Assertion violation happens here. - --> model_checker_targets_all_bmc/input.sol:12:3: + --> model_checker_targets_all_bmc/input.sol:11:3: | -12 | assert(x > 0); +11 | assert(x > 0); | ^^^^^^^^^^^^^ Note: Counterexample: a = 0 diff --git a/test/cmdlineTests/model_checker_targets_all_bmc/input.sol b/test/cmdlineTests/model_checker_targets_all_bmc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_all_bmc/input.sol +++ b/test/cmdlineTests/model_checker_targets_all_bmc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_all_chc/err b/test/cmdlineTests/model_checker_targets_all_chc/err index 0c1ad1b45..1484e7f2d 100644 --- a/test/cmdlineTests/model_checker_targets_all_chc/err +++ b/test/cmdlineTests/model_checker_targets_all_chc/err @@ -8,9 +8,9 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 0) - --> model_checker_targets_all_chc/input.sol:8:3: + --> model_checker_targets_all_chc/input.sol:7:3: | -8 | --x; +7 | --x; | ^^^ Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here. @@ -23,9 +23,9 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 2) - --> model_checker_targets_all_chc/input.sol:9:3: + --> model_checker_targets_all_chc/input.sol:8:3: | -9 | x + type(uint).max; +8 | x + type(uint).max; | ^^^^^^^^^^^^^^^^^^ Warning: CHC: Division by zero happens here. @@ -38,10 +38,10 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 1) - --> model_checker_targets_all_chc/input.sol:10:3: - | -10 | 2 / x; - | ^^^^^ + --> model_checker_targets_all_chc/input.sol:9:3: + | +9 | 2 / x; + | ^^^^^ Warning: CHC: Assertion violation happens here. Counterexample: @@ -53,9 +53,9 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 1) - --> model_checker_targets_all_chc/input.sol:12:3: + --> model_checker_targets_all_chc/input.sol:11:3: | -12 | assert(x > 0); +11 | assert(x > 0); | ^^^^^^^^^^^^^ Warning: CHC: Empty array "pop" happens here. @@ -68,9 +68,9 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 1) - --> model_checker_targets_all_chc/input.sol:13:3: + --> model_checker_targets_all_chc/input.sol:12:3: | -13 | arr.pop(); +12 | arr.pop(); | ^^^^^^^^^ Warning: CHC: Out of bounds access happens here. @@ -83,7 +83,7 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 1) - --> model_checker_targets_all_chc/input.sol:14:3: + --> model_checker_targets_all_chc/input.sol:13:3: | -14 | arr[x]; +13 | arr[x]; | ^^^^^^ diff --git a/test/cmdlineTests/model_checker_targets_all_chc/input.sol b/test/cmdlineTests/model_checker_targets_all_chc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_all_chc/input.sol +++ b/test/cmdlineTests/model_checker_targets_all_chc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_assert_bmc/err b/test/cmdlineTests/model_checker_targets_assert_bmc/err index c21561bc7..90486bf79 100644 --- a/test/cmdlineTests/model_checker_targets_assert_bmc/err +++ b/test/cmdlineTests/model_checker_targets_assert_bmc/err @@ -1,7 +1,7 @@ Warning: BMC: Assertion violation happens here. - --> model_checker_targets_assert_bmc/input.sol:12:3: + --> model_checker_targets_assert_bmc/input.sol:11:3: | -12 | assert(x > 0); +11 | assert(x > 0); | ^^^^^^^^^^^^^ Note: Counterexample: a = 0 diff --git a/test/cmdlineTests/model_checker_targets_assert_bmc/input.sol b/test/cmdlineTests/model_checker_targets_assert_bmc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_assert_bmc/input.sol +++ b/test/cmdlineTests/model_checker_targets_assert_bmc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_assert_chc/err b/test/cmdlineTests/model_checker_targets_assert_chc/err index 826b0cb87..a7b73b418 100644 --- a/test/cmdlineTests/model_checker_targets_assert_chc/err +++ b/test/cmdlineTests/model_checker_targets_assert_chc/err @@ -8,7 +8,7 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 1) - --> model_checker_targets_assert_chc/input.sol:12:3: + --> model_checker_targets_assert_chc/input.sol:11:3: | -12 | assert(x > 0); +11 | assert(x > 0); | ^^^^^^^^^^^^^ diff --git a/test/cmdlineTests/model_checker_targets_assert_chc/input.sol b/test/cmdlineTests/model_checker_targets_assert_chc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_assert_chc/input.sol +++ b/test/cmdlineTests/model_checker_targets_assert_chc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_balance_bmc/err b/test/cmdlineTests/model_checker_targets_balance_bmc/err index 595020aa7..39a8aac56 100644 --- a/test/cmdlineTests/model_checker_targets_balance_bmc/err +++ b/test/cmdlineTests/model_checker_targets_balance_bmc/err @@ -1,7 +1,7 @@ Warning: BMC: Insufficient funds happens here. - --> model_checker_targets_balance_bmc/input.sol:11:3: + --> model_checker_targets_balance_bmc/input.sol:10:3: | -11 | a.transfer(x); +10 | a.transfer(x); | ^^^^^^^^^^^^^ Note: Counterexample: a = 0 diff --git a/test/cmdlineTests/model_checker_targets_balance_bmc/input.sol b/test/cmdlineTests/model_checker_targets_balance_bmc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_balance_bmc/input.sol +++ b/test/cmdlineTests/model_checker_targets_balance_bmc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_balance_chc/input.sol b/test/cmdlineTests/model_checker_targets_balance_chc/input.sol index 62018cf06..8ec052a21 100644 --- a/test/cmdlineTests/model_checker_targets_balance_chc/input.sol +++ b/test/cmdlineTests/model_checker_targets_balance_chc/input.sol @@ -1,5 +1,4 @@ pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_constant_condition_bmc/err b/test/cmdlineTests/model_checker_targets_constant_condition_bmc/err index cf73966f9..6a376dd7e 100644 --- a/test/cmdlineTests/model_checker_targets_constant_condition_bmc/err +++ b/test/cmdlineTests/model_checker_targets_constant_condition_bmc/err @@ -1,6 +1,6 @@ Warning: BMC: Condition is always true. - --> model_checker_targets_constant_condition_bmc/input.sol:7:11: + --> model_checker_targets_constant_condition_bmc/input.sol:6:11: | -7 | require(x >= 0); +6 | require(x >= 0); | ^^^^^^ Note: Callstack: diff --git a/test/cmdlineTests/model_checker_targets_constant_condition_bmc/input.sol b/test/cmdlineTests/model_checker_targets_constant_condition_bmc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_constant_condition_bmc/input.sol +++ b/test/cmdlineTests/model_checker_targets_constant_condition_bmc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_constant_condition_chc/input.sol b/test/cmdlineTests/model_checker_targets_constant_condition_chc/input.sol index 62018cf06..8ec052a21 100644 --- a/test/cmdlineTests/model_checker_targets_constant_condition_chc/input.sol +++ b/test/cmdlineTests/model_checker_targets_constant_condition_chc/input.sol @@ -1,5 +1,4 @@ pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_div_by_zero_bmc/err b/test/cmdlineTests/model_checker_targets_div_by_zero_bmc/err index 865eabba7..bcf2c0c83 100644 --- a/test/cmdlineTests/model_checker_targets_div_by_zero_bmc/err +++ b/test/cmdlineTests/model_checker_targets_div_by_zero_bmc/err @@ -1,8 +1,8 @@ Warning: BMC: Division by zero happens here. - --> model_checker_targets_div_by_zero_bmc/input.sol:10:3: - | -10 | 2 / x; - | ^^^^^ + --> model_checker_targets_div_by_zero_bmc/input.sol:9:3: + | +9 | 2 / x; + | ^^^^^ Note: Counterexample: = 0 a = 0 diff --git a/test/cmdlineTests/model_checker_targets_div_by_zero_bmc/input.sol b/test/cmdlineTests/model_checker_targets_div_by_zero_bmc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_div_by_zero_bmc/input.sol +++ b/test/cmdlineTests/model_checker_targets_div_by_zero_bmc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_div_by_zero_chc/err b/test/cmdlineTests/model_checker_targets_div_by_zero_chc/err index 75821bdf4..4318a501e 100644 --- a/test/cmdlineTests/model_checker_targets_div_by_zero_chc/err +++ b/test/cmdlineTests/model_checker_targets_div_by_zero_chc/err @@ -8,7 +8,7 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 1) - --> model_checker_targets_div_by_zero_chc/input.sol:10:3: - | -10 | 2 / x; - | ^^^^^ + --> model_checker_targets_div_by_zero_chc/input.sol:9:3: + | +9 | 2 / x; + | ^^^^^ diff --git a/test/cmdlineTests/model_checker_targets_div_by_zero_chc/input.sol b/test/cmdlineTests/model_checker_targets_div_by_zero_chc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_div_by_zero_chc/input.sol +++ b/test/cmdlineTests/model_checker_targets_div_by_zero_chc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_error/args b/test/cmdlineTests/model_checker_targets_error/args index b88522f64..19eb05363 100644 --- a/test/cmdlineTests/model_checker_targets_error/args +++ b/test/cmdlineTests/model_checker_targets_error/args @@ -1 +1 @@ ---model-checker-targets aaa,bbb +--model-checker-engine all --model-checker-targets aaa,bbb diff --git a/test/cmdlineTests/model_checker_targets_error/input.sol b/test/cmdlineTests/model_checker_targets_error/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_error/input.sol +++ b/test/cmdlineTests/model_checker_targets_error/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_out_of_bounds_bmc/input.sol b/test/cmdlineTests/model_checker_targets_out_of_bounds_bmc/input.sol index 62018cf06..8ec052a21 100644 --- a/test/cmdlineTests/model_checker_targets_out_of_bounds_bmc/input.sol +++ b/test/cmdlineTests/model_checker_targets_out_of_bounds_bmc/input.sol @@ -1,5 +1,4 @@ pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_out_of_bounds_chc/err b/test/cmdlineTests/model_checker_targets_out_of_bounds_chc/err index e021a3f23..661ae5b79 100644 --- a/test/cmdlineTests/model_checker_targets_out_of_bounds_chc/err +++ b/test/cmdlineTests/model_checker_targets_out_of_bounds_chc/err @@ -8,7 +8,7 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 1) - --> model_checker_targets_out_of_bounds_chc/input.sol:14:3: + --> model_checker_targets_out_of_bounds_chc/input.sol:13:3: | -14 | arr[x]; +13 | arr[x]; | ^^^^^^ diff --git a/test/cmdlineTests/model_checker_targets_out_of_bounds_chc/input.sol b/test/cmdlineTests/model_checker_targets_out_of_bounds_chc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_out_of_bounds_chc/input.sol +++ b/test/cmdlineTests/model_checker_targets_out_of_bounds_chc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_overflow_bmc/err b/test/cmdlineTests/model_checker_targets_overflow_bmc/err index 833fe3c80..f2f475c30 100644 --- a/test/cmdlineTests/model_checker_targets_overflow_bmc/err +++ b/test/cmdlineTests/model_checker_targets_overflow_bmc/err @@ -1,7 +1,7 @@ Warning: BMC: Overflow (resulting value larger than 2**256 - 1) happens here. - --> model_checker_targets_overflow_bmc/input.sol:9:3: + --> model_checker_targets_overflow_bmc/input.sol:8:3: | -9 | x + type(uint).max; +8 | x + type(uint).max; | ^^^^^^^^^^^^^^^^^^ Note: Counterexample: = 2**256 diff --git a/test/cmdlineTests/model_checker_targets_overflow_bmc/input.sol b/test/cmdlineTests/model_checker_targets_overflow_bmc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_overflow_bmc/input.sol +++ b/test/cmdlineTests/model_checker_targets_overflow_bmc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_overflow_chc/err b/test/cmdlineTests/model_checker_targets_overflow_chc/err index d72cea1da..fca12d076 100644 --- a/test/cmdlineTests/model_checker_targets_overflow_chc/err +++ b/test/cmdlineTests/model_checker_targets_overflow_chc/err @@ -8,7 +8,7 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 2) - --> model_checker_targets_overflow_chc/input.sol:9:3: + --> model_checker_targets_overflow_chc/input.sol:8:3: | -9 | x + type(uint).max; +8 | x + type(uint).max; | ^^^^^^^^^^^^^^^^^^ diff --git a/test/cmdlineTests/model_checker_targets_overflow_chc/input.sol b/test/cmdlineTests/model_checker_targets_overflow_chc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_overflow_chc/input.sol +++ b/test/cmdlineTests/model_checker_targets_overflow_chc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_pop_empty_bmc/input.sol b/test/cmdlineTests/model_checker_targets_pop_empty_bmc/input.sol index 62018cf06..8ec052a21 100644 --- a/test/cmdlineTests/model_checker_targets_pop_empty_bmc/input.sol +++ b/test/cmdlineTests/model_checker_targets_pop_empty_bmc/input.sol @@ -1,5 +1,4 @@ pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_pop_empty_chc/err b/test/cmdlineTests/model_checker_targets_pop_empty_chc/err index 2d6b24851..7ec616853 100644 --- a/test/cmdlineTests/model_checker_targets_pop_empty_chc/err +++ b/test/cmdlineTests/model_checker_targets_pop_empty_chc/err @@ -8,7 +8,7 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 1) - --> model_checker_targets_pop_empty_chc/input.sol:13:3: + --> model_checker_targets_pop_empty_chc/input.sol:12:3: | -13 | arr.pop(); +12 | arr.pop(); | ^^^^^^^^^ diff --git a/test/cmdlineTests/model_checker_targets_pop_empty_chc/input.sol b/test/cmdlineTests/model_checker_targets_pop_empty_chc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_pop_empty_chc/input.sol +++ b/test/cmdlineTests/model_checker_targets_pop_empty_chc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_underflow_bmc/err b/test/cmdlineTests/model_checker_targets_underflow_bmc/err index 01d4e0e66..2162bec3a 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_bmc/err +++ b/test/cmdlineTests/model_checker_targets_underflow_bmc/err @@ -1,7 +1,7 @@ Warning: BMC: Underflow (resulting value less than 0) happens here. - --> model_checker_targets_underflow_bmc/input.sol:8:3: + --> model_checker_targets_underflow_bmc/input.sol:7:3: | -8 | --x; +7 | --x; | ^^^ Note: Counterexample: = (- 1) diff --git a/test/cmdlineTests/model_checker_targets_underflow_bmc/input.sol b/test/cmdlineTests/model_checker_targets_underflow_bmc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_bmc/input.sol +++ b/test/cmdlineTests/model_checker_targets_underflow_bmc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_underflow_chc/err b/test/cmdlineTests/model_checker_targets_underflow_chc/err index f621f7055..ac56c82b5 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_chc/err +++ b/test/cmdlineTests/model_checker_targets_underflow_chc/err @@ -8,7 +8,7 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 0) - --> model_checker_targets_underflow_chc/input.sol:8:3: + --> model_checker_targets_underflow_chc/input.sol:7:3: | -8 | --x; +7 | --x; | ^^^ diff --git a/test/cmdlineTests/model_checker_targets_underflow_chc/input.sol b/test/cmdlineTests/model_checker_targets_underflow_chc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_chc/input.sol +++ b/test/cmdlineTests/model_checker_targets_underflow_chc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_bmc/err b/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_bmc/err index bef3639f3..9712b8cb7 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_bmc/err +++ b/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_bmc/err @@ -1,7 +1,7 @@ Warning: BMC: Underflow (resulting value less than 0) happens here. - --> model_checker_targets_underflow_overflow_assert_bmc/input.sol:8:3: + --> model_checker_targets_underflow_overflow_assert_bmc/input.sol:7:3: | -8 | --x; +7 | --x; | ^^^ Note: Counterexample: = (- 1) @@ -12,9 +12,9 @@ Note: Callstack: Note: Warning: BMC: Overflow (resulting value larger than 2**256 - 1) happens here. - --> model_checker_targets_underflow_overflow_assert_bmc/input.sol:9:3: + --> model_checker_targets_underflow_overflow_assert_bmc/input.sol:8:3: | -9 | x + type(uint).max; +8 | x + type(uint).max; | ^^^^^^^^^^^^^^^^^^ Note: Counterexample: = 2**256 @@ -25,9 +25,9 @@ Note: Callstack: Note: Warning: BMC: Assertion violation happens here. - --> model_checker_targets_underflow_overflow_assert_bmc/input.sol:12:3: + --> model_checker_targets_underflow_overflow_assert_bmc/input.sol:11:3: | -12 | assert(x > 0); +11 | assert(x > 0); | ^^^^^^^^^^^^^ Note: Counterexample: a = 0 diff --git a/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_bmc/input.sol b/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_bmc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_bmc/input.sol +++ b/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_bmc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_chc/err b/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_chc/err index 4c43fb023..25680bc15 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_chc/err +++ b/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_chc/err @@ -8,9 +8,9 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 0) - --> model_checker_targets_underflow_overflow_assert_chc/input.sol:8:3: + --> model_checker_targets_underflow_overflow_assert_chc/input.sol:7:3: | -8 | --x; +7 | --x; | ^^^ Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here. @@ -23,9 +23,9 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 2) - --> model_checker_targets_underflow_overflow_assert_chc/input.sol:9:3: + --> model_checker_targets_underflow_overflow_assert_chc/input.sol:8:3: | -9 | x + type(uint).max; +8 | x + type(uint).max; | ^^^^^^^^^^^^^^^^^^ Warning: CHC: Assertion violation happens here. @@ -38,7 +38,7 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 1) - --> model_checker_targets_underflow_overflow_assert_chc/input.sol:12:3: + --> model_checker_targets_underflow_overflow_assert_chc/input.sol:11:3: | -12 | assert(x > 0); +11 | assert(x > 0); | ^^^^^^^^^^^^^ diff --git a/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_chc/input.sol b/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_chc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_chc/input.sol +++ b/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_chc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_underflow_overflow_bmc/err b/test/cmdlineTests/model_checker_targets_underflow_overflow_bmc/err index a41062c31..f3675ac5a 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_overflow_bmc/err +++ b/test/cmdlineTests/model_checker_targets_underflow_overflow_bmc/err @@ -1,7 +1,7 @@ Warning: BMC: Underflow (resulting value less than 0) happens here. - --> model_checker_targets_underflow_overflow_bmc/input.sol:8:3: + --> model_checker_targets_underflow_overflow_bmc/input.sol:7:3: | -8 | --x; +7 | --x; | ^^^ Note: Counterexample: = (- 1) @@ -12,9 +12,9 @@ Note: Callstack: Note: Warning: BMC: Overflow (resulting value larger than 2**256 - 1) happens here. - --> model_checker_targets_underflow_overflow_bmc/input.sol:9:3: + --> model_checker_targets_underflow_overflow_bmc/input.sol:8:3: | -9 | x + type(uint).max; +8 | x + type(uint).max; | ^^^^^^^^^^^^^^^^^^ Note: Counterexample: = 2**256 diff --git a/test/cmdlineTests/model_checker_targets_underflow_overflow_bmc/input.sol b/test/cmdlineTests/model_checker_targets_underflow_overflow_bmc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_overflow_bmc/input.sol +++ b/test/cmdlineTests/model_checker_targets_underflow_overflow_bmc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_targets_underflow_overflow_chc/err b/test/cmdlineTests/model_checker_targets_underflow_overflow_chc/err index f808d291a..9bb4b52f1 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_overflow_chc/err +++ b/test/cmdlineTests/model_checker_targets_underflow_overflow_chc/err @@ -8,9 +8,9 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 0) - --> model_checker_targets_underflow_overflow_chc/input.sol:8:3: + --> model_checker_targets_underflow_overflow_chc/input.sol:7:3: | -8 | --x; +7 | --x; | ^^^ Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here. @@ -23,7 +23,7 @@ Transaction trace: test.constructor() State: arr = [] test.f(0, 2) - --> model_checker_targets_underflow_overflow_chc/input.sol:9:3: + --> model_checker_targets_underflow_overflow_chc/input.sol:8:3: | -9 | x + type(uint).max; +8 | x + type(uint).max; | ^^^^^^^^^^^^^^^^^^ diff --git a/test/cmdlineTests/model_checker_targets_underflow_overflow_chc/input.sol b/test/cmdlineTests/model_checker_targets_underflow_overflow_chc/input.sol index 6d23400d1..33b5bfab3 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_overflow_chc/input.sol +++ b/test/cmdlineTests/model_checker_targets_underflow_overflow_chc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { uint[] arr; function f(address payable a, uint x) public { diff --git a/test/cmdlineTests/model_checker_timeout_all/args b/test/cmdlineTests/model_checker_timeout_all/args index 8fe8ce96a..aad210472 100644 --- a/test/cmdlineTests/model_checker_timeout_all/args +++ b/test/cmdlineTests/model_checker_timeout_all/args @@ -1 +1 @@ ---model-checker-timeout 1000 +--model-checker-engine all --model-checker-timeout 1000 diff --git a/test/cmdlineTests/model_checker_timeout_all/err b/test/cmdlineTests/model_checker_timeout_all/err index e2473dc17..6b2d3392a 100644 --- a/test/cmdlineTests/model_checker_timeout_all/err +++ b/test/cmdlineTests/model_checker_timeout_all/err @@ -1,12 +1,12 @@ Warning: CHC: Assertion violation might happen here. - --> model_checker_timeout_all/input.sol:10:3: - | -10 | assert(r % k == 0); - | ^^^^^^^^^^^^^^^^^^ + --> model_checker_timeout_all/input.sol:9:3: + | +9 | assert(r % k == 0); + | ^^^^^^^^^^^^^^^^^^ Warning: BMC: Assertion violation might happen here. - --> model_checker_timeout_all/input.sol:10:3: - | -10 | assert(r % k == 0); - | ^^^^^^^^^^^^^^^^^^ + --> model_checker_timeout_all/input.sol:9:3: + | +9 | assert(r % k == 0); + | ^^^^^^^^^^^^^^^^^^ Note: diff --git a/test/cmdlineTests/model_checker_timeout_all/input.sol b/test/cmdlineTests/model_checker_timeout_all/input.sol index bae0d7a93..dfe33fc87 100644 --- a/test/cmdlineTests/model_checker_timeout_all/input.sol +++ b/test/cmdlineTests/model_checker_timeout_all/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { function f(uint x, uint y, uint k) public pure { require(k > 0); diff --git a/test/cmdlineTests/model_checker_timeout_bmc/err b/test/cmdlineTests/model_checker_timeout_bmc/err index 4334c5e4c..9cce6ba0c 100644 --- a/test/cmdlineTests/model_checker_timeout_bmc/err +++ b/test/cmdlineTests/model_checker_timeout_bmc/err @@ -1,6 +1,6 @@ Warning: BMC: Assertion violation might happen here. - --> model_checker_timeout_bmc/input.sol:10:3: - | -10 | assert(r % k == 0); - | ^^^^^^^^^^^^^^^^^^ + --> model_checker_timeout_bmc/input.sol:9:3: + | +9 | assert(r % k == 0); + | ^^^^^^^^^^^^^^^^^^ Note: diff --git a/test/cmdlineTests/model_checker_timeout_bmc/input.sol b/test/cmdlineTests/model_checker_timeout_bmc/input.sol index bae0d7a93..dfe33fc87 100644 --- a/test/cmdlineTests/model_checker_timeout_bmc/input.sol +++ b/test/cmdlineTests/model_checker_timeout_bmc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { function f(uint x, uint y, uint k) public pure { require(k > 0); diff --git a/test/cmdlineTests/model_checker_timeout_chc/err b/test/cmdlineTests/model_checker_timeout_chc/err index e731ea28d..187ef937c 100644 --- a/test/cmdlineTests/model_checker_timeout_chc/err +++ b/test/cmdlineTests/model_checker_timeout_chc/err @@ -1,5 +1,5 @@ Warning: CHC: Assertion violation might happen here. - --> model_checker_timeout_chc/input.sol:10:3: - | -10 | assert(r % k == 0); - | ^^^^^^^^^^^^^^^^^^ + --> model_checker_timeout_chc/input.sol:9:3: + | +9 | assert(r % k == 0); + | ^^^^^^^^^^^^^^^^^^ diff --git a/test/cmdlineTests/model_checker_timeout_chc/input.sol b/test/cmdlineTests/model_checker_timeout_chc/input.sol index bae0d7a93..dfe33fc87 100644 --- a/test/cmdlineTests/model_checker_timeout_chc/input.sol +++ b/test/cmdlineTests/model_checker_timeout_chc/input.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.0; -pragma experimental SMTChecker; contract test { function f(uint x, uint y, uint k) public pure { require(k > 0); diff --git a/test/cmdlineTests/standard_model_checker_engine_all/input.json b/test/cmdlineTests/standard_model_checker_engine_all/input.json index e39baccbc..db9f2232d 100644 --- a/test/cmdlineTests/standard_model_checker_engine_all/input.json +++ b/test/cmdlineTests/standard_model_checker_engine_all/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }" + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract C { function f(uint x) public pure { assert(x > 0); } }" } }, "settings": diff --git a/test/cmdlineTests/standard_model_checker_engine_all/output.json b/test/cmdlineTests/standard_model_checker_engine_all/output.json index 168956e29..12dfe5871 100644 --- a/test/cmdlineTests/standard_model_checker_engine_all/output.json +++ b/test/cmdlineTests/standard_model_checker_engine_all/output.json @@ -18,4 +18,4 @@ x = 0 Transaction trace: C.constructor() -C.f(0)","severity":"warning","sourceLocation":{"end":150,"file":"A","start":137},"type":"Warning"}],"sources":{"A":{"id":0}}} +C.f(0)","severity":"warning","sourceLocation":{"end":119,"file":"A","start":106},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_engine_bmc/input.json b/test/cmdlineTests/standard_model_checker_engine_bmc/input.json index 944d64147..56a2b8fac 100644 --- a/test/cmdlineTests/standard_model_checker_engine_bmc/input.json +++ b/test/cmdlineTests/standard_model_checker_engine_bmc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }" + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract C { function f(uint x) public pure { assert(x > 0); } }" } }, "settings": diff --git a/test/cmdlineTests/standard_model_checker_engine_bmc/output.json b/test/cmdlineTests/standard_model_checker_engine_bmc/output.json index 36dd459af..bb8a062bc 100644 --- a/test/cmdlineTests/standard_model_checker_engine_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_engine_bmc/output.json @@ -1,4 +1,4 @@ -{"auxiliaryInputRequested":{"smtlib2queries":{"0x890f1520a8ee68790fd3c13ddbc70536dc8afcff539c4da1a1766da6168e497e":"(set-option :produce-models true) +{"auxiliaryInputRequested":{"smtlib2queries":{"0x944140895bd672003614580050e8349baeea7cced0d8b9447aefb6c4833b02a8":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -12,14 +12,14 @@ (declare-fun |crypto_0| () |crypto_type|) (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) -(declare-fun |x_4_0| () Int) +(declare-fun |x_3_0| () Int) +(declare-fun |expr_7_0| () Int) (declare-fun |expr_8_0| () Int) -(declare-fun |expr_9_0| () Int) -(declare-fun |expr_10_1| () Bool) +(declare-fun |expr_9_1| () Bool) -(assert (and (and (and true true) (and (= expr_10_1 (> expr_8_0 expr_9_0)) (and (implies (and true true) true) (and (= expr_9_0 0) (and (implies (and true true) (and (>= expr_8_0 0) (<= expr_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_8_0 x_4_0) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (and (and (and (and (and (and (and (and (and (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_10_1))) +(assert (and (and (and true true) (and (= expr_9_1 (> expr_7_0 expr_8_0)) (and (implies (and true true) true) (and (= expr_8_0 0) (and (implies (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 (>= (|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_4_0)) +(assert (= |EVALEXPR_0| x_3_0)) (check-sat) (get-value (|EVALEXPR_0| )) "}},"errors":[{"component":"general","errorCode":"4661","formattedMessage":"Warning: BMC: Assertion violation happens here. @@ -35,4 +35,4 @@ Note: ","message":"BMC: Assertion violation happens here.","secondarySourceLocations":[{"message":"Counterexample: x = 0 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":150,"file":"A","start":137},"type":"Warning"}],"sources":{"A":{"id":0}}} +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":119,"file":"A","start":106},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_engine_chc/input.json b/test/cmdlineTests/standard_model_checker_engine_chc/input.json index bda610936..76a46d556 100644 --- a/test/cmdlineTests/standard_model_checker_engine_chc/input.json +++ b/test/cmdlineTests/standard_model_checker_engine_chc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }" + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract C { function f(uint x) public pure { assert(x > 0); } }" } }, "settings": diff --git a/test/cmdlineTests/standard_model_checker_engine_chc/output.json b/test/cmdlineTests/standard_model_checker_engine_chc/output.json index 168956e29..12dfe5871 100644 --- a/test/cmdlineTests/standard_model_checker_engine_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_engine_chc/output.json @@ -18,4 +18,4 @@ x = 0 Transaction trace: C.constructor() -C.f(0)","severity":"warning","sourceLocation":{"end":150,"file":"A","start":137},"type":"Warning"}],"sources":{"A":{"id":0}}} +C.f(0)","severity":"warning","sourceLocation":{"end":119,"file":"A","start":106},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_engine_none/input.json b/test/cmdlineTests/standard_model_checker_engine_none/input.json index cbb146060..014f1af64 100644 --- a/test/cmdlineTests/standard_model_checker_engine_none/input.json +++ b/test/cmdlineTests/standard_model_checker_engine_none/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }" + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract C { function f(uint x) public pure { assert(x > 0); } }" } }, "settings": diff --git a/test/cmdlineTests/standard_model_checker_targets_all/input.json b/test/cmdlineTests/standard_model_checker_targets_all/input.json index 7c3a39016..ef2e8e050 100644 --- a/test/cmdlineTests/standard_model_checker_targets_all/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_all/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); @@ -23,6 +23,7 @@ { "modelChecker": { + "engine": "all", "targets": "all" } } diff --git a/test/cmdlineTests/standard_model_checker_targets_all/output.json b/test/cmdlineTests/standard_model_checker_targets_all/output.json index c1059c4cf..a900f4dfd 100644 --- a/test/cmdlineTests/standard_model_checker_targets_all/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_all/output.json @@ -1,4 +1,4 @@ -{"auxiliaryInputRequested":{"smtlib2queries":{"0x858035fcfc2316b3f09ebac493170a22ae2971f0f65f8ca7e125fe7f4b88756d":"(set-option :produce-models true) +{"auxiliaryInputRequested":{"smtlib2queries":{"0x9190f95880d71b6c4636672b262f07430b161f369cc56816ad265e4fa1ee1f3a":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -13,17 +13,17 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_0| () Int) (declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_0| () Int) -(declare-fun |expr_15_1| () Bool) +(declare-fun |expr_14_1| () Bool) -(assert (and (and (and true true) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_15_1)) +(assert (and (and (and true true) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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) -","0xc14e92836e07964eacd7231da77dea92406ac93d4e601c33d2300d5e067bdc1f":"(set-option :produce-models true) +","0xd32caa9b049de053b56e6d79b6b17e718634bff64ba913b2f28e5369947d4e3b":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -38,71 +38,71 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_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 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_15_1))) -(check-sat) -","0xeb141c7bf753748c7972af4a35e586d579a5e374e8f2aa2455ddbdf931e5582b":"(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.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[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) -(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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_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_27_1| () Int) +(declare-fun |expr_28_0| () Int) (declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) (declare-fun |d_div_mod_14_0| () Int) (declare-fun |r_div_mod_14_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_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_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) +(declare-fun |expr_41_1| () Bool) +(declare-fun |expr_44_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_36_0 0) (<= expr_36_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_36_0 x_9_1) (and (implies (and true true) (and (>= expr_33_0 0) (<= expr_33_0 1461501637330902918203684832716283019655932542975))) (and (= expr_33_0 a_7_0) (and (implies (and true true) (and (>= expr_31_1 0) (<= expr_31_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_31_1 (ite (= expr_30_0 0) 0 d_div_mod_14_0)) (and (and (<= 0 r_div_mod_14_0) (or (= expr_30_0 0) (< r_div_mod_14_0 expr_30_0))) (and (= (+ (* d_div_mod_14_0 expr_30_0) r_div_mod_14_0) expr_29_0) (and (implies (and true true) (and (>= expr_30_0 0) (<= expr_30_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_30_0 x_9_1) (and (implies (and true true) true) (and (= expr_29_0 2) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (+ expr_21_0 expr_26_1)) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (and true true) (and (>= expr_21_0 0) (<= expr_21_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_21_0 x_9_1) (and (ite (and true true) (= x_9_1 (- expr_18_0 1)) (= x_9_1 x_9_0)) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (- expr_18_0 1)) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_36_0))) +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_35_0 0) (<= expr_35_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_35_0 x_8_1) (and (implies (and true true) (and (>= expr_32_0 0) (<= expr_32_0 1461501637330902918203684832716283019655932542975))) (and (= expr_32_0 a_6_0) (and (implies (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_14_0)) (and (and (<= 0 r_div_mod_14_0) (or (= expr_29_0 0) (< r_div_mod_14_0 expr_29_0))) (and (= (+ (* d_div_mod_14_0 expr_29_0) r_div_mod_14_0) expr_28_0) (and (implies (and true true) (and (>= expr_29_0 0) (<= expr_29_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_29_0 x_8_1) (and (implies (and true true) true) (and (= expr_28_0 2) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 (+ expr_20_0 expr_25_1)) (and (implies (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (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 (implies (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_7_0)) +(assert (= |EVALEXPR_0| a_6_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_1)) +(assert (= |EVALEXPR_1| x_8_1)) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| )) +","0xdb117433a9ec32d2f491750fb369a0d49c0afb6cad5f9ea3e1739ef8b87cdf4f":"(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.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[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_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 (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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":[{"component":"general","errorCode":"3944","formattedMessage":"Warning: CHC: Underflow (resulting value less than 0) happens here. Counterexample: arr = [] @@ -127,7 +127,7 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 0)","severity":"warning","sourceLocation":{"end":208,"file":"A","start":205},"type":"Warning"},{"component":"general","errorCode":"4984","formattedMessage":"Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +test.f(0, 0)","severity":"warning","sourceLocation":{"end":177,"file":"A","start":174},"type":"Warning"},{"component":"general","errorCode":"4984","formattedMessage":"Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here. Counterexample: arr = [] a = 0 @@ -151,7 +151,7 @@ x = 1 Transaction trace: test.constructor() State: arr = [] -test.f(0, 2)","severity":"warning","sourceLocation":{"end":234,"file":"A","start":216},"type":"Warning"},{"component":"general","errorCode":"4281","formattedMessage":"Warning: CHC: Division by zero happens here. +test.f(0, 2)","severity":"warning","sourceLocation":{"end":203,"file":"A","start":185},"type":"Warning"},{"component":"general","errorCode":"4281","formattedMessage":"Warning: CHC: Division by zero happens here. Counterexample: arr = [] a = 0 @@ -175,7 +175,7 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 1)","severity":"warning","sourceLocation":{"end":247,"file":"A","start":242},"type":"Warning"},{"component":"general","errorCode":"6328","formattedMessage":"Warning: CHC: Assertion violation happens here. +test.f(0, 1)","severity":"warning","sourceLocation":{"end":216,"file":"A","start":211},"type":"Warning"},{"component":"general","errorCode":"6328","formattedMessage":"Warning: CHC: Assertion violation happens here. Counterexample: arr = [] a = 0 @@ -199,7 +199,7 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 1)","severity":"warning","sourceLocation":{"end":289,"file":"A","start":276},"type":"Warning"},{"component":"general","errorCode":"2529","formattedMessage":"Warning: CHC: Empty array \"pop\" happens here. +test.f(0, 1)","severity":"warning","sourceLocation":{"end":258,"file":"A","start":245},"type":"Warning"},{"component":"general","errorCode":"2529","formattedMessage":"Warning: CHC: Empty array \"pop\" happens here. Counterexample: arr = [] a = 0 @@ -223,7 +223,7 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 1)","severity":"warning","sourceLocation":{"end":306,"file":"A","start":297},"type":"Warning"},{"component":"general","errorCode":"6368","formattedMessage":"Warning: CHC: Out of bounds access happens here. +test.f(0, 1)","severity":"warning","sourceLocation":{"end":275,"file":"A","start":266},"type":"Warning"},{"component":"general","errorCode":"6368","formattedMessage":"Warning: CHC: Out of bounds access happens here. Counterexample: arr = [] a = 0 @@ -247,14 +247,14 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 1)","severity":"warning","sourceLocation":{"end":320,"file":"A","start":314},"type":"Warning"},{"component":"general","errorCode":"6838","formattedMessage":"Warning: BMC: Condition is always true. +test.f(0, 1)","severity":"warning","sourceLocation":{"end":289,"file":"A","start":283},"type":"Warning"},{"component":"general","errorCode":"6838","formattedMessage":"Warning: BMC: Condition is always true. --> A:7:15: | 7 | \t\t\t\t\t\trequire(x >= 0); | \t\t\t\t\t\t ^^^^^^ Note: Callstack: -","message":"BMC: Condition is always true.","secondarySourceLocations":[{"message":"Callstack:"}],"severity":"warning","sourceLocation":{"end":196,"file":"A","start":190},"type":"Warning"},{"component":"general","errorCode":"1236","formattedMessage":"Warning: BMC: Insufficient funds happens here. +","message":"BMC: Condition is always true.","secondarySourceLocations":[{"message":"Callstack:"}],"severity":"warning","sourceLocation":{"end":165,"file":"A","start":159},"type":"Warning"},{"component":"general","errorCode":"1236","formattedMessage":"Warning: BMC: Insufficient funds happens here. --> A:11:7: | 11 | \t\t\t\t\t\ta.transfer(x); @@ -269,4 +269,4 @@ Note: ","message":"BMC: Insufficient funds happens here.","secondarySourceLocations":[{"message":"Counterexample: a = 0 x = 0 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":268,"file":"A","start":255},"type":"Warning"}],"sources":{"A":{"id":0}}} +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":237,"file":"A","start":224},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_all_bmc/input.json b/test/cmdlineTests/standard_model_checker_targets_all_bmc/input.json index bec678533..57ba390a7 100644 --- a/test/cmdlineTests/standard_model_checker_targets_all_bmc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_all_bmc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_all_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_all_bmc/output.json index 965ad91d1..b0f83896f 100644 --- a/test/cmdlineTests/standard_model_checker_targets_all_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_all_bmc/output.json @@ -1,4 +1,4 @@ -{"auxiliaryInputRequested":{"smtlib2queries":{"0x0a84f77238ff8229baeac139d2ec93e905d39b9dba5859a66eaeb7310243c901":"(set-option :produce-models true) +{"auxiliaryInputRequested":{"smtlib2queries":{"0x0bf4bf54fa2ecac3482de1b433e5216d0b2f9c2347e556e43c252499885165e5":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -13,49 +13,49 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_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_27_1| () Int) +(declare-fun |expr_28_0| () Int) (declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) (declare-fun |d_div_mod_0_0| () Int) (declare-fun |r_div_mod_0_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_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_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) +(declare-fun |expr_41_1| () Bool) +(declare-fun |expr_44_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_18_0 1) 0))) +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_7_0)) +(assert (= |EVALEXPR_0| a_6_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_0)) +(assert (= |EVALEXPR_1| x_8_0)) (declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| (- expr_18_0 1))) +(assert (= |EVALEXPR_2| (- expr_17_0 1))) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| )) -","0x5b495b644553a6db05060d953261651dcccfab8892863609bb80f6fa816225f1":"(set-option :produce-models true) +","0x3b3d90fa6754444a847a9b6f723e98fc3c8b428cb56d50a010bc2c435aa1bc10":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -70,47 +70,47 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_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_27_1| () Int) +(declare-fun |expr_28_0| () Int) (declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) (declare-fun |d_div_mod_0_0| () Int) (declare-fun |r_div_mod_0_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_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_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) +(declare-fun |expr_41_1| () Bool) +(declare-fun |expr_44_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) -(assert (and (and (and true true) (and (= expr_42_1 (> expr_40_0 expr_41_0)) (and (implies (and true true) true) (and (= expr_41_0 0) (and (implies (and true true) (and (>= expr_40_0 0) (<= expr_40_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_40_0 x_9_1) (and (= state_3 (ite (= this_0 expr_33_0) state_0 state_2)) (and (= state_2 (|state_type| (store (|balances| state_1) expr_33_0 (+ (select (|balances| state_1) expr_33_0) expr_36_0)))) (and (= state_1 (|state_type| (store (|balances| state_0) this_0 (+ (select (|balances| state_0) this_0) (- 0 expr_36_0))))) (and (and (>= (select (|balances| state_0) this_0) 0) (<= (select (|balances| state_0) this_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (implies (and true true) (and (>= expr_36_0 0) (<= expr_36_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_36_0 x_9_1) (and (implies (and true true) (and (>= expr_33_0 0) (<= expr_33_0 1461501637330902918203684832716283019655932542975))) (and (= expr_33_0 a_7_0) (and (implies (and true true) (and (>= expr_31_1 0) (<= expr_31_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_31_1 (ite (= expr_30_0 0) 0 d_div_mod_0_0)) (and (and (<= 0 r_div_mod_0_0) (or (= expr_30_0 0) (< r_div_mod_0_0 expr_30_0))) (and (= (+ (* d_div_mod_0_0 expr_30_0) r_div_mod_0_0) expr_29_0) (and (implies (and true true) (and (>= expr_30_0 0) (<= expr_30_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_30_0 x_9_1) (and (implies (and true true) true) (and (= expr_29_0 2) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (+ expr_21_0 expr_26_1)) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (and true true) (and (>= expr_21_0 0) (<= expr_21_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_21_0 x_9_1) (and (ite (and true true) (= x_9_1 (- expr_18_0 1)) (= x_9_1 x_9_0)) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (- expr_18_0 1)) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_42_1))) +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_35_0 0) (<= expr_35_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_35_0 x_8_1) (and (implies (and true true) (and (>= expr_32_0 0) (<= expr_32_0 1461501637330902918203684832716283019655932542975))) (and (= expr_32_0 a_6_0) (and (implies (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 (implies (and true true) (and (>= expr_29_0 0) (<= expr_29_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_29_0 x_8_1) (and (implies (and true true) true) (and (= expr_28_0 2) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 (+ expr_20_0 expr_25_1)) (and (implies (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (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 (implies (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_7_0)) +(assert (= |EVALEXPR_0| a_6_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_1)) +(assert (= |EVALEXPR_1| x_8_1)) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| )) -","0x5b98fbb121c58b139f0f8baa8e153dfeb0a4621f789bf1cbbc586298bcae48e1":"(set-option :produce-models true) +","0x3d72a9e21e83263eacaad9b3eaa387b10f1219c1727796d9e946ddce1e99f5a3":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -125,49 +125,49 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_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_27_1| () Int) +(declare-fun |expr_28_0| () Int) (declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) (declare-fun |d_div_mod_0_0| () Int) (declare-fun |r_div_mod_0_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_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_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) +(declare-fun |expr_41_1| () Bool) +(declare-fun |expr_44_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_30_0 0) (<= expr_30_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_30_0 x_9_1) (and (implies (and true true) true) (and (= expr_29_0 2) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (+ expr_21_0 expr_26_1)) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (and true true) (and (>= expr_21_0 0) (<= expr_21_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_21_0 x_9_1) (and (ite (and true true) (= x_9_1 (- expr_18_0 1)) (= x_9_1 x_9_0)) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (- expr_18_0 1)) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_30_0 0))) +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_29_0 0) (<= expr_29_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_29_0 x_8_1) (and (implies (and true true) true) (and (= expr_28_0 2) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 (+ expr_20_0 expr_25_1)) (and (implies (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (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 (implies (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_7_0)) +(assert (= |EVALEXPR_0| a_6_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_1)) +(assert (= |EVALEXPR_1| x_8_1)) (declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| expr_30_0)) +(assert (= |EVALEXPR_2| expr_29_0)) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| )) -","0x858035fcfc2316b3f09ebac493170a22ae2971f0f65f8ca7e125fe7f4b88756d":"(set-option :produce-models true) +","0x7b2c4d6761f5d49a4a2e0ba56b832d235e93abf16fe2a1383a526aa4fb4fe028":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -182,99 +182,49 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_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 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_15_1)) -(check-sat) -","0xc14e92836e07964eacd7231da77dea92406ac93d4e601c33d2300d5e067bdc1f":"(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.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[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) -(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 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_15_1))) -(check-sat) -","0xce4156c685d481fe03752262b478cd8877739dba34535f7bfec42a2d30d45445":"(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.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[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) -(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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_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_27_1| () Int) +(declare-fun |expr_28_0| () Int) (declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) (declare-fun |d_div_mod_0_0| () Int) (declare-fun |r_div_mod_0_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_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_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) +(declare-fun |expr_41_1| () Bool) +(declare-fun |expr_44_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (and true true) (and (>= expr_21_0 0) (<= expr_21_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_21_0 x_9_1) (and (ite (and true true) (= x_9_1 (- expr_18_0 1)) (= x_9_1 x_9_0)) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (- expr_18_0 1)) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_21_0 expr_26_1) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (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 (implies (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_7_0)) +(assert (= |EVALEXPR_0| a_6_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_1)) +(assert (= |EVALEXPR_1| x_8_1)) (declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| (+ expr_21_0 expr_26_1))) +(assert (= |EVALEXPR_2| (+ expr_20_0 expr_25_1))) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| )) -","0xecb8a634d43c6b3fa690c2fec3a4763042a115cb28580d86760b27cbb849cd95":"(set-option :produce-models true) +","0x9190f95880d71b6c4636672b262f07430b161f369cc56816ad265e4fa1ee1f3a":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -289,46 +239,96 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_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 (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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) +","0xc36fc4490d40152ecf0546a4da2de10a47f2e87ca102f9b095354b69315d6d60":"(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.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[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_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_27_1| () Int) +(declare-fun |expr_28_0| () Int) (declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) (declare-fun |d_div_mod_0_0| () Int) (declare-fun |r_div_mod_0_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_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_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) +(declare-fun |expr_41_1| () Bool) +(declare-fun |expr_44_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_36_0 0) (<= expr_36_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_36_0 x_9_1) (and (implies (and true true) (and (>= expr_33_0 0) (<= expr_33_0 1461501637330902918203684832716283019655932542975))) (and (= expr_33_0 a_7_0) (and (implies (and true true) (and (>= expr_31_1 0) (<= expr_31_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_31_1 (ite (= expr_30_0 0) 0 d_div_mod_0_0)) (and (and (<= 0 r_div_mod_0_0) (or (= expr_30_0 0) (< r_div_mod_0_0 expr_30_0))) (and (= (+ (* d_div_mod_0_0 expr_30_0) r_div_mod_0_0) expr_29_0) (and (implies (and true true) (and (>= expr_30_0 0) (<= expr_30_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_30_0 x_9_1) (and (implies (and true true) true) (and (= expr_29_0 2) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (+ expr_21_0 expr_26_1)) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (and true true) (and (>= expr_21_0 0) (<= expr_21_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_21_0 x_9_1) (and (ite (and true true) (= x_9_1 (- expr_18_0 1)) (= x_9_1 x_9_0)) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (- expr_18_0 1)) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_36_0))) +(assert (and (and (and true true) (and (= expr_41_1 (> expr_39_0 expr_40_0)) (and (implies (and true true) true) (and (= expr_40_0 0) (and (implies (and true true) (and (>= expr_39_0 0) (<= expr_39_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_39_0 x_8_1) (and (= state_3 (ite (= this_0 expr_32_0) state_0 state_2)) (and (= state_2 (|state_type| (store (|balances| state_1) expr_32_0 (+ (select (|balances| state_1) expr_32_0) expr_35_0)))) (and (= state_1 (|state_type| (store (|balances| state_0) this_0 (+ (select (|balances| state_0) this_0) (- 0 expr_35_0))))) (and (and (>= (select (|balances| state_0) this_0) 0) (<= (select (|balances| state_0) this_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (implies (and true true) (and (>= expr_35_0 0) (<= expr_35_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_35_0 x_8_1) (and (implies (and true true) (and (>= expr_32_0 0) (<= expr_32_0 1461501637330902918203684832716283019655932542975))) (and (= expr_32_0 a_6_0) (and (implies (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 (implies (and true true) (and (>= expr_29_0 0) (<= expr_29_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_29_0 x_8_1) (and (implies (and true true) true) (and (= expr_28_0 2) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 (+ expr_20_0 expr_25_1)) (and (implies (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (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 (implies (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_41_1))) (declare-const |EVALEXPR_0| Int) -(assert (= |EVALEXPR_0| a_7_0)) +(assert (= |EVALEXPR_0| a_6_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_1)) +(assert (= |EVALEXPR_1| x_8_1)) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| )) +","0xdb117433a9ec32d2f491750fb369a0d49c0afb6cad5f9ea3e1739ef8b87cdf4f":"(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.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[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_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 (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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":[{"component":"general","errorCode":"6838","formattedMessage":"Warning: BMC: Condition is always true. --> A:7:15: | @@ -336,7 +336,7 @@ | \t\t\t\t\t\t ^^^^^^ Note: Callstack: -","message":"BMC: Condition is always true.","secondarySourceLocations":[{"message":"Callstack:"}],"severity":"warning","sourceLocation":{"end":196,"file":"A","start":190},"type":"Warning"},{"component":"general","errorCode":"4144","formattedMessage":"Warning: BMC: Underflow (resulting value less than 0) happens here. +","message":"BMC: Condition is always true.","secondarySourceLocations":[{"message":"Callstack:"}],"severity":"warning","sourceLocation":{"end":165,"file":"A","start":159},"type":"Warning"},{"component":"general","errorCode":"4144","formattedMessage":"Warning: BMC: Underflow (resulting value less than 0) happens here. --> A:8:7: | 8 | \t\t\t\t\t\t--x; @@ -353,7 +353,7 @@ Note: = (- 1) a = 0 x = 0 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":208,"file":"A","start":205},"type":"Warning"},{"component":"general","errorCode":"2661","formattedMessage":"Warning: BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":177,"file":"A","start":174},"type":"Warning"},{"component":"general","errorCode":"2661","formattedMessage":"Warning: BMC: Overflow (resulting value larger than 2**256 - 1) happens here. --> A:9:7: | 9 | \t\t\t\t\t\tx + type(uint).max; @@ -370,7 +370,7 @@ Note: = 2**256 a = 0 x = 1 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":234,"file":"A","start":216},"type":"Warning"},{"component":"general","errorCode":"3046","formattedMessage":"Warning: BMC: Division by zero happens here. +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":203,"file":"A","start":185},"type":"Warning"},{"component":"general","errorCode":"3046","formattedMessage":"Warning: BMC: Division by zero happens here. --> A:10:7: | 10 | \t\t\t\t\t\t2 / x; @@ -387,7 +387,7 @@ Note: = 0 a = 0 x = 0 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":247,"file":"A","start":242},"type":"Warning"},{"component":"general","errorCode":"1236","formattedMessage":"Warning: BMC: Insufficient funds happens here. +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":216,"file":"A","start":211},"type":"Warning"},{"component":"general","errorCode":"1236","formattedMessage":"Warning: BMC: Insufficient funds happens here. --> A:11:7: | 11 | \t\t\t\t\t\ta.transfer(x); @@ -402,7 +402,7 @@ Note: ","message":"BMC: Insufficient funds happens here.","secondarySourceLocations":[{"message":"Counterexample: a = 0 x = 0 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":268,"file":"A","start":255},"type":"Warning"},{"component":"general","errorCode":"4661","formattedMessage":"Warning: BMC: Assertion violation happens here. +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":237,"file":"A","start":224},"type":"Warning"},{"component":"general","errorCode":"4661","formattedMessage":"Warning: BMC: Assertion violation happens here. --> A:12:7: | 12 | \t\t\t\t\t\tassert(x > 0); @@ -417,4 +417,4 @@ Note: ","message":"BMC: Assertion violation happens here.","secondarySourceLocations":[{"message":"Counterexample: a = 0 x = 0 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":289,"file":"A","start":276},"type":"Warning"}],"sources":{"A":{"id":0}}} +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":258,"file":"A","start":245},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_all_chc/input.json b/test/cmdlineTests/standard_model_checker_targets_all_chc/input.json index ed1320f83..0ea4f27e2 100644 --- a/test/cmdlineTests/standard_model_checker_targets_all_chc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_all_chc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_all_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_all_chc/output.json index c2ffcb729..e0b6fda92 100644 --- a/test/cmdlineTests/standard_model_checker_targets_all_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_all_chc/output.json @@ -22,7 +22,7 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 0)","severity":"warning","sourceLocation":{"end":208,"file":"A","start":205},"type":"Warning"},{"component":"general","errorCode":"4984","formattedMessage":"Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +test.f(0, 0)","severity":"warning","sourceLocation":{"end":177,"file":"A","start":174},"type":"Warning"},{"component":"general","errorCode":"4984","formattedMessage":"Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here. Counterexample: arr = [] a = 0 @@ -46,7 +46,7 @@ x = 1 Transaction trace: test.constructor() State: arr = [] -test.f(0, 2)","severity":"warning","sourceLocation":{"end":234,"file":"A","start":216},"type":"Warning"},{"component":"general","errorCode":"4281","formattedMessage":"Warning: CHC: Division by zero happens here. +test.f(0, 2)","severity":"warning","sourceLocation":{"end":203,"file":"A","start":185},"type":"Warning"},{"component":"general","errorCode":"4281","formattedMessage":"Warning: CHC: Division by zero happens here. Counterexample: arr = [] a = 0 @@ -70,7 +70,7 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 1)","severity":"warning","sourceLocation":{"end":247,"file":"A","start":242},"type":"Warning"},{"component":"general","errorCode":"6328","formattedMessage":"Warning: CHC: Assertion violation happens here. +test.f(0, 1)","severity":"warning","sourceLocation":{"end":216,"file":"A","start":211},"type":"Warning"},{"component":"general","errorCode":"6328","formattedMessage":"Warning: CHC: Assertion violation happens here. Counterexample: arr = [] a = 0 @@ -94,7 +94,7 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 1)","severity":"warning","sourceLocation":{"end":289,"file":"A","start":276},"type":"Warning"},{"component":"general","errorCode":"2529","formattedMessage":"Warning: CHC: Empty array \"pop\" happens here. +test.f(0, 1)","severity":"warning","sourceLocation":{"end":258,"file":"A","start":245},"type":"Warning"},{"component":"general","errorCode":"2529","formattedMessage":"Warning: CHC: Empty array \"pop\" happens here. Counterexample: arr = [] a = 0 @@ -118,7 +118,7 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 1)","severity":"warning","sourceLocation":{"end":306,"file":"A","start":297},"type":"Warning"},{"component":"general","errorCode":"6368","formattedMessage":"Warning: CHC: Out of bounds access happens here. +test.f(0, 1)","severity":"warning","sourceLocation":{"end":275,"file":"A","start":266},"type":"Warning"},{"component":"general","errorCode":"6368","formattedMessage":"Warning: CHC: Out of bounds access happens here. Counterexample: arr = [] a = 0 @@ -142,4 +142,4 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 1)","severity":"warning","sourceLocation":{"end":320,"file":"A","start":314},"type":"Warning"}],"sources":{"A":{"id":0}}} +test.f(0, 1)","severity":"warning","sourceLocation":{"end":289,"file":"A","start":283},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_assert_bmc/input.json b/test/cmdlineTests/standard_model_checker_targets_assert_bmc/input.json index 6ed7912f8..47e49fbed 100644 --- a/test/cmdlineTests/standard_model_checker_targets_assert_bmc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_assert_bmc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_assert_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_assert_bmc/output.json index 502552e21..6c13dfd00 100644 --- a/test/cmdlineTests/standard_model_checker_targets_assert_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_assert_bmc/output.json @@ -1,4 +1,4 @@ -{"auxiliaryInputRequested":{"smtlib2queries":{"0x5b495b644553a6db05060d953261651dcccfab8892863609bb80f6fa816225f1":"(set-option :produce-models true) +{"auxiliaryInputRequested":{"smtlib2queries":{"0xc36fc4490d40152ecf0546a4da2de10a47f2e87ca102f9b095354b69315d6d60":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -13,44 +13,44 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_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_27_1| () Int) +(declare-fun |expr_28_0| () Int) (declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) (declare-fun |d_div_mod_0_0| () Int) (declare-fun |r_div_mod_0_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_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_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) +(declare-fun |expr_41_1| () Bool) +(declare-fun |expr_44_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) -(assert (and (and (and true true) (and (= expr_42_1 (> expr_40_0 expr_41_0)) (and (implies (and true true) true) (and (= expr_41_0 0) (and (implies (and true true) (and (>= expr_40_0 0) (<= expr_40_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_40_0 x_9_1) (and (= state_3 (ite (= this_0 expr_33_0) state_0 state_2)) (and (= state_2 (|state_type| (store (|balances| state_1) expr_33_0 (+ (select (|balances| state_1) expr_33_0) expr_36_0)))) (and (= state_1 (|state_type| (store (|balances| state_0) this_0 (+ (select (|balances| state_0) this_0) (- 0 expr_36_0))))) (and (and (>= (select (|balances| state_0) this_0) 0) (<= (select (|balances| state_0) this_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (implies (and true true) (and (>= expr_36_0 0) (<= expr_36_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_36_0 x_9_1) (and (implies (and true true) (and (>= expr_33_0 0) (<= expr_33_0 1461501637330902918203684832716283019655932542975))) (and (= expr_33_0 a_7_0) (and (implies (and true true) (and (>= expr_31_1 0) (<= expr_31_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_31_1 (ite (= expr_30_0 0) 0 d_div_mod_0_0)) (and (and (<= 0 r_div_mod_0_0) (or (= expr_30_0 0) (< r_div_mod_0_0 expr_30_0))) (and (= (+ (* d_div_mod_0_0 expr_30_0) r_div_mod_0_0) expr_29_0) (and (implies (and true true) (and (>= expr_30_0 0) (<= expr_30_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_30_0 x_9_1) (and (implies (and true true) true) (and (= expr_29_0 2) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (+ expr_21_0 expr_26_1)) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (and true true) (and (>= expr_21_0 0) (<= expr_21_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_21_0 x_9_1) (and (ite (and true true) (= x_9_1 (- expr_18_0 1)) (= x_9_1 x_9_0)) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (- expr_18_0 1)) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_42_1))) +(assert (and (and (and true true) (and (= expr_41_1 (> expr_39_0 expr_40_0)) (and (implies (and true true) true) (and (= expr_40_0 0) (and (implies (and true true) (and (>= expr_39_0 0) (<= expr_39_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_39_0 x_8_1) (and (= state_3 (ite (= this_0 expr_32_0) state_0 state_2)) (and (= state_2 (|state_type| (store (|balances| state_1) expr_32_0 (+ (select (|balances| state_1) expr_32_0) expr_35_0)))) (and (= state_1 (|state_type| (store (|balances| state_0) this_0 (+ (select (|balances| state_0) this_0) (- 0 expr_35_0))))) (and (and (>= (select (|balances| state_0) this_0) 0) (<= (select (|balances| state_0) this_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (implies (and true true) (and (>= expr_35_0 0) (<= expr_35_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_35_0 x_8_1) (and (implies (and true true) (and (>= expr_32_0 0) (<= expr_32_0 1461501637330902918203684832716283019655932542975))) (and (= expr_32_0 a_6_0) (and (implies (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 (implies (and true true) (and (>= expr_29_0 0) (<= expr_29_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_29_0 x_8_1) (and (implies (and true true) true) (and (= expr_28_0 2) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 (+ expr_20_0 expr_25_1)) (and (implies (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (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 (implies (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_41_1))) (declare-const |EVALEXPR_0| Int) -(assert (= |EVALEXPR_0| a_7_0)) +(assert (= |EVALEXPR_0| a_6_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_1)) +(assert (= |EVALEXPR_1| x_8_1)) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| )) "}},"errors":[{"component":"general","errorCode":"4661","formattedMessage":"Warning: BMC: Assertion violation happens here. @@ -68,4 +68,4 @@ Note: ","message":"BMC: Assertion violation happens here.","secondarySourceLocations":[{"message":"Counterexample: a = 0 x = 0 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":289,"file":"A","start":276},"type":"Warning"}],"sources":{"A":{"id":0}}} +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":258,"file":"A","start":245},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_assert_chc/input.json b/test/cmdlineTests/standard_model_checker_targets_assert_chc/input.json index b70d115e7..11b99ae4b 100644 --- a/test/cmdlineTests/standard_model_checker_targets_assert_chc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_assert_chc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_assert_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_assert_chc/output.json index 52211990d..0ecf87bd7 100644 --- a/test/cmdlineTests/standard_model_checker_targets_assert_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_assert_chc/output.json @@ -22,4 +22,4 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 1)","severity":"warning","sourceLocation":{"end":289,"file":"A","start":276},"type":"Warning"}],"sources":{"A":{"id":0}}} +test.f(0, 1)","severity":"warning","sourceLocation":{"end":258,"file":"A","start":245},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_balance_bmc/input.json b/test/cmdlineTests/standard_model_checker_targets_balance_bmc/input.json index 6bd45d053..df01286dc 100644 --- a/test/cmdlineTests/standard_model_checker_targets_balance_bmc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_balance_bmc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_balance_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_balance_bmc/output.json index f4efa059b..cc5ccc8b1 100644 --- a/test/cmdlineTests/standard_model_checker_targets_balance_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_balance_bmc/output.json @@ -1,4 +1,4 @@ -{"auxiliaryInputRequested":{"smtlib2queries":{"0xecb8a634d43c6b3fa690c2fec3a4763042a115cb28580d86760b27cbb849cd95":"(set-option :produce-models true) +{"auxiliaryInputRequested":{"smtlib2queries":{"0x3b3d90fa6754444a847a9b6f723e98fc3c8b428cb56d50a010bc2c435aa1bc10":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -13,44 +13,44 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_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_27_1| () Int) +(declare-fun |expr_28_0| () Int) (declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) (declare-fun |d_div_mod_0_0| () Int) (declare-fun |r_div_mod_0_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_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_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) +(declare-fun |expr_41_1| () Bool) +(declare-fun |expr_44_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_36_0 0) (<= expr_36_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_36_0 x_9_1) (and (implies (and true true) (and (>= expr_33_0 0) (<= expr_33_0 1461501637330902918203684832716283019655932542975))) (and (= expr_33_0 a_7_0) (and (implies (and true true) (and (>= expr_31_1 0) (<= expr_31_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_31_1 (ite (= expr_30_0 0) 0 d_div_mod_0_0)) (and (and (<= 0 r_div_mod_0_0) (or (= expr_30_0 0) (< r_div_mod_0_0 expr_30_0))) (and (= (+ (* d_div_mod_0_0 expr_30_0) r_div_mod_0_0) expr_29_0) (and (implies (and true true) (and (>= expr_30_0 0) (<= expr_30_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_30_0 x_9_1) (and (implies (and true true) true) (and (= expr_29_0 2) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (+ expr_21_0 expr_26_1)) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (and true true) (and (>= expr_21_0 0) (<= expr_21_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_21_0 x_9_1) (and (ite (and true true) (= x_9_1 (- expr_18_0 1)) (= x_9_1 x_9_0)) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (- expr_18_0 1)) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_36_0))) +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_35_0 0) (<= expr_35_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_35_0 x_8_1) (and (implies (and true true) (and (>= expr_32_0 0) (<= expr_32_0 1461501637330902918203684832716283019655932542975))) (and (= expr_32_0 a_6_0) (and (implies (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 (implies (and true true) (and (>= expr_29_0 0) (<= expr_29_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_29_0 x_8_1) (and (implies (and true true) true) (and (= expr_28_0 2) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 (+ expr_20_0 expr_25_1)) (and (implies (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (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 (implies (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_7_0)) +(assert (= |EVALEXPR_0| a_6_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_1)) +(assert (= |EVALEXPR_1| x_8_1)) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| )) "}},"errors":[{"component":"general","errorCode":"1236","formattedMessage":"Warning: BMC: Insufficient funds happens here. @@ -68,4 +68,4 @@ Note: ","message":"BMC: Insufficient funds happens here.","secondarySourceLocations":[{"message":"Counterexample: a = 0 x = 0 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":268,"file":"A","start":255},"type":"Warning"}],"sources":{"A":{"id":0}}} +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":237,"file":"A","start":224},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_balance_chc/input.json b/test/cmdlineTests/standard_model_checker_targets_balance_chc/input.json index d813c474c..e88d2a426 100644 --- a/test/cmdlineTests/standard_model_checker_targets_balance_chc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_balance_chc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_constantCondition_bmc/input.json b/test/cmdlineTests/standard_model_checker_targets_constantCondition_bmc/input.json index a1287580b..ba61db3e3 100644 --- a/test/cmdlineTests/standard_model_checker_targets_constantCondition_bmc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_constantCondition_bmc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_constantCondition_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_constantCondition_bmc/output.json index 7fc8d7d7d..cbe6d4bef 100644 --- a/test/cmdlineTests/standard_model_checker_targets_constantCondition_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_constantCondition_bmc/output.json @@ -1,4 +1,4 @@ -{"auxiliaryInputRequested":{"smtlib2queries":{"0x858035fcfc2316b3f09ebac493170a22ae2971f0f65f8ca7e125fe7f4b88756d":"(set-option :produce-models true) +{"auxiliaryInputRequested":{"smtlib2queries":{"0x9190f95880d71b6c4636672b262f07430b161f369cc56816ad265e4fa1ee1f3a":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -13,17 +13,17 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_0| () Int) (declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_0| () Int) -(declare-fun |expr_15_1| () Bool) +(declare-fun |expr_14_1| () Bool) -(assert (and (and (and true true) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_15_1)) +(assert (and (and (and true true) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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) -","0xc14e92836e07964eacd7231da77dea92406ac93d4e601c33d2300d5e067bdc1f":"(set-option :produce-models true) +","0xdb117433a9ec32d2f491750fb369a0d49c0afb6cad5f9ea3e1739ef8b87cdf4f":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -38,15 +38,15 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_0| () Int) (declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_0| () Int) -(declare-fun |expr_15_1| () Bool) +(declare-fun |expr_14_1| () Bool) -(assert (and (and (and true true) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_15_1))) +(assert (and (and (and true true) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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":[{"component":"general","errorCode":"6838","formattedMessage":"Warning: BMC: Condition is always true. --> A:7:15: @@ -55,4 +55,4 @@ | \t\t\t\t\t\t ^^^^^^ Note: Callstack: -","message":"BMC: Condition is always true.","secondarySourceLocations":[{"message":"Callstack:"}],"severity":"warning","sourceLocation":{"end":196,"file":"A","start":190},"type":"Warning"}],"sources":{"A":{"id":0}}} +","message":"BMC: Condition is always true.","secondarySourceLocations":[{"message":"Callstack:"}],"severity":"warning","sourceLocation":{"end":165,"file":"A","start":159},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_constantCondition_chc/input.json b/test/cmdlineTests/standard_model_checker_targets_constantCondition_chc/input.json index 4abbaa82d..27c53682d 100644 --- a/test/cmdlineTests/standard_model_checker_targets_constantCondition_chc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_constantCondition_chc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_div_by_zero_bmc/input.json b/test/cmdlineTests/standard_model_checker_targets_div_by_zero_bmc/input.json index 897a59a39..7514a9af8 100644 --- a/test/cmdlineTests/standard_model_checker_targets_div_by_zero_bmc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_div_by_zero_bmc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_div_by_zero_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_div_by_zero_bmc/output.json index 0f13d0bd3..8d17346b1 100644 --- a/test/cmdlineTests/standard_model_checker_targets_div_by_zero_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_div_by_zero_bmc/output.json @@ -1,4 +1,4 @@ -{"auxiliaryInputRequested":{"smtlib2queries":{"0x5b98fbb121c58b139f0f8baa8e153dfeb0a4621f789bf1cbbc586298bcae48e1":"(set-option :produce-models true) +{"auxiliaryInputRequested":{"smtlib2queries":{"0x3d72a9e21e83263eacaad9b3eaa387b10f1219c1727796d9e946ddce1e99f5a3":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -13,46 +13,46 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_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_27_1| () Int) +(declare-fun |expr_28_0| () Int) (declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) (declare-fun |d_div_mod_0_0| () Int) (declare-fun |r_div_mod_0_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_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_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) +(declare-fun |expr_41_1| () Bool) +(declare-fun |expr_44_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_30_0 0) (<= expr_30_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_30_0 x_9_1) (and (implies (and true true) true) (and (= expr_29_0 2) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (+ expr_21_0 expr_26_1)) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (and true true) (and (>= expr_21_0 0) (<= expr_21_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_21_0 x_9_1) (and (ite (and true true) (= x_9_1 (- expr_18_0 1)) (= x_9_1 x_9_0)) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (- expr_18_0 1)) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_30_0 0))) +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_29_0 0) (<= expr_29_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_29_0 x_8_1) (and (implies (and true true) true) (and (= expr_28_0 2) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 (+ expr_20_0 expr_25_1)) (and (implies (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (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 (implies (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_7_0)) +(assert (= |EVALEXPR_0| a_6_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_1)) +(assert (= |EVALEXPR_1| x_8_1)) (declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| expr_30_0)) +(assert (= |EVALEXPR_2| expr_29_0)) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| )) "}},"errors":[{"component":"general","errorCode":"3046","formattedMessage":"Warning: BMC: Division by zero happens here. @@ -72,4 +72,4 @@ Note: = 0 a = 0 x = 0 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":247,"file":"A","start":242},"type":"Warning"}],"sources":{"A":{"id":0}}} +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":216,"file":"A","start":211},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_div_by_zero_chc/input.json b/test/cmdlineTests/standard_model_checker_targets_div_by_zero_chc/input.json index efcfd6505..b65acfb6f 100644 --- a/test/cmdlineTests/standard_model_checker_targets_div_by_zero_chc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_div_by_zero_chc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_div_by_zero_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_div_by_zero_chc/output.json index c1ffe90be..eca84d4b0 100644 --- a/test/cmdlineTests/standard_model_checker_targets_div_by_zero_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_div_by_zero_chc/output.json @@ -22,4 +22,4 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 1)","severity":"warning","sourceLocation":{"end":247,"file":"A","start":242},"type":"Warning"}],"sources":{"A":{"id":0}}} +test.f(0, 1)","severity":"warning","sourceLocation":{"end":216,"file":"A","start":211},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_bmc/input.json b/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_bmc/input.json index aeb5f0753..c184e2f12 100644 --- a/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_bmc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_bmc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_chc/input.json b/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_chc/input.json index b971728d8..8a409df98 100644 --- a/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_chc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_chc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_chc/output.json index e339f21cd..bdaa14b50 100644 --- a/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_chc/output.json @@ -22,4 +22,4 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 1)","severity":"warning","sourceLocation":{"end":320,"file":"A","start":314},"type":"Warning"}],"sources":{"A":{"id":0}}} +test.f(0, 1)","severity":"warning","sourceLocation":{"end":289,"file":"A","start":283},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_overflow_bmc/input.json b/test/cmdlineTests/standard_model_checker_targets_overflow_bmc/input.json index 6c72e5803..9ccca64fd 100644 --- a/test/cmdlineTests/standard_model_checker_targets_overflow_bmc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_overflow_bmc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_overflow_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_overflow_bmc/output.json index 832c6d2a9..48de11d0c 100644 --- a/test/cmdlineTests/standard_model_checker_targets_overflow_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_overflow_bmc/output.json @@ -1,4 +1,4 @@ -{"auxiliaryInputRequested":{"smtlib2queries":{"0xce4156c685d481fe03752262b478cd8877739dba34535f7bfec42a2d30d45445":"(set-option :produce-models true) +{"auxiliaryInputRequested":{"smtlib2queries":{"0x7b2c4d6761f5d49a4a2e0ba56b832d235e93abf16fe2a1383a526aa4fb4fe028":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -13,46 +13,46 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_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_27_1| () Int) +(declare-fun |expr_28_0| () Int) (declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) (declare-fun |d_div_mod_0_0| () Int) (declare-fun |r_div_mod_0_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_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_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) +(declare-fun |expr_41_1| () Bool) +(declare-fun |expr_44_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (and true true) (and (>= expr_21_0 0) (<= expr_21_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_21_0 x_9_1) (and (ite (and true true) (= x_9_1 (- expr_18_0 1)) (= x_9_1 x_9_0)) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (- expr_18_0 1)) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_21_0 expr_26_1) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (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 (implies (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_7_0)) +(assert (= |EVALEXPR_0| a_6_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_1)) +(assert (= |EVALEXPR_1| x_8_1)) (declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| (+ expr_21_0 expr_26_1))) +(assert (= |EVALEXPR_2| (+ expr_20_0 expr_25_1))) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| )) "}},"errors":[{"component":"general","errorCode":"2661","formattedMessage":"Warning: BMC: Overflow (resulting value larger than 2**256 - 1) happens here. @@ -72,4 +72,4 @@ Note: = 2**256 a = 0 x = 1 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":234,"file":"A","start":216},"type":"Warning"}],"sources":{"A":{"id":0}}} +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":203,"file":"A","start":185},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_overflow_chc/input.json b/test/cmdlineTests/standard_model_checker_targets_overflow_chc/input.json index 2f1b27a33..ef71d8507 100644 --- a/test/cmdlineTests/standard_model_checker_targets_overflow_chc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_overflow_chc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_overflow_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_overflow_chc/output.json index bd0ce53b0..794a11b04 100644 --- a/test/cmdlineTests/standard_model_checker_targets_overflow_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_overflow_chc/output.json @@ -22,4 +22,4 @@ x = 1 Transaction trace: test.constructor() State: arr = [] -test.f(0, 2)","severity":"warning","sourceLocation":{"end":234,"file":"A","start":216},"type":"Warning"}],"sources":{"A":{"id":0}}} +test.f(0, 2)","severity":"warning","sourceLocation":{"end":203,"file":"A","start":185},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_pop_empty_bmc/input.json b/test/cmdlineTests/standard_model_checker_targets_pop_empty_bmc/input.json index ebfd81b3e..d580fc397 100644 --- a/test/cmdlineTests/standard_model_checker_targets_pop_empty_bmc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_pop_empty_bmc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_pop_empty_chc/input.json b/test/cmdlineTests/standard_model_checker_targets_pop_empty_chc/input.json index e893edd41..13ad86e94 100644 --- a/test/cmdlineTests/standard_model_checker_targets_pop_empty_chc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_pop_empty_chc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_pop_empty_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_pop_empty_chc/output.json index bfa736c81..b6e891d6c 100644 --- a/test/cmdlineTests/standard_model_checker_targets_pop_empty_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_pop_empty_chc/output.json @@ -22,4 +22,4 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 1)","severity":"warning","sourceLocation":{"end":306,"file":"A","start":297},"type":"Warning"}],"sources":{"A":{"id":0}}} +test.f(0, 1)","severity":"warning","sourceLocation":{"end":275,"file":"A","start":266},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_bmc/input.json b/test/cmdlineTests/standard_model_checker_targets_underflow_bmc/input.json index e04996468..2bcdef3d7 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_bmc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_bmc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_underflow_bmc/output.json index e06ddec01..ecf66acb7 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_bmc/output.json @@ -1,4 +1,4 @@ -{"auxiliaryInputRequested":{"smtlib2queries":{"0x0a84f77238ff8229baeac139d2ec93e905d39b9dba5859a66eaeb7310243c901":"(set-option :produce-models true) +{"auxiliaryInputRequested":{"smtlib2queries":{"0x0bf4bf54fa2ecac3482de1b433e5216d0b2f9c2347e556e43c252499885165e5":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -13,46 +13,46 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_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_27_1| () Int) +(declare-fun |expr_28_0| () Int) (declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) (declare-fun |d_div_mod_0_0| () Int) (declare-fun |r_div_mod_0_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_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_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) +(declare-fun |expr_41_1| () Bool) +(declare-fun |expr_44_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_18_0 1) 0))) +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_7_0)) +(assert (= |EVALEXPR_0| a_6_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_0)) +(assert (= |EVALEXPR_1| x_8_0)) (declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| (- expr_18_0 1))) +(assert (= |EVALEXPR_2| (- expr_17_0 1))) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| )) "}},"errors":[{"component":"general","errorCode":"4144","formattedMessage":"Warning: BMC: Underflow (resulting value less than 0) happens here. @@ -72,4 +72,4 @@ Note: = (- 1) a = 0 x = 0 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":208,"file":"A","start":205},"type":"Warning"}],"sources":{"A":{"id":0}}} +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":177,"file":"A","start":174},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_chc/input.json b/test/cmdlineTests/standard_model_checker_targets_underflow_chc/input.json index 0ab9c0df9..6e9b92ba3 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_chc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_chc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_underflow_chc/output.json index 21653a6c5..7a22d148a 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_chc/output.json @@ -22,4 +22,4 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 0)","severity":"warning","sourceLocation":{"end":208,"file":"A","start":205},"type":"Warning"}],"sources":{"A":{"id":0}}} +test.f(0, 0)","severity":"warning","sourceLocation":{"end":177,"file":"A","start":174},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_bmc/input.json b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_bmc/input.json index aeee86c77..8598f6772 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_bmc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_bmc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_bmc/output.json index a848078f1..430cb67f7 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_bmc/output.json @@ -1,4 +1,4 @@ -{"auxiliaryInputRequested":{"smtlib2queries":{"0x0a84f77238ff8229baeac139d2ec93e905d39b9dba5859a66eaeb7310243c901":"(set-option :produce-models true) +{"auxiliaryInputRequested":{"smtlib2queries":{"0x0bf4bf54fa2ecac3482de1b433e5216d0b2f9c2347e556e43c252499885165e5":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -13,49 +13,49 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_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_27_1| () Int) +(declare-fun |expr_28_0| () Int) (declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) (declare-fun |d_div_mod_0_0| () Int) (declare-fun |r_div_mod_0_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_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_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) +(declare-fun |expr_41_1| () Bool) +(declare-fun |expr_44_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_18_0 1) 0))) +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_7_0)) +(assert (= |EVALEXPR_0| a_6_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_0)) +(assert (= |EVALEXPR_1| x_8_0)) (declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| (- expr_18_0 1))) +(assert (= |EVALEXPR_2| (- expr_17_0 1))) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| )) -","0x5b495b644553a6db05060d953261651dcccfab8892863609bb80f6fa816225f1":"(set-option :produce-models true) +","0x7b2c4d6761f5d49a4a2e0ba56b832d235e93abf16fe2a1383a526aa4fb4fe028":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -70,103 +70,103 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_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_27_1| () Int) +(declare-fun |expr_28_0| () Int) (declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) (declare-fun |d_div_mod_0_0| () Int) (declare-fun |r_div_mod_0_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_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_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) +(declare-fun |expr_41_1| () Bool) +(declare-fun |expr_44_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) -(assert (and (and (and true true) (and (= expr_42_1 (> expr_40_0 expr_41_0)) (and (implies (and true true) true) (and (= expr_41_0 0) (and (implies (and true true) (and (>= expr_40_0 0) (<= expr_40_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_40_0 x_9_1) (and (= state_3 (ite (= this_0 expr_33_0) state_0 state_2)) (and (= state_2 (|state_type| (store (|balances| state_1) expr_33_0 (+ (select (|balances| state_1) expr_33_0) expr_36_0)))) (and (= state_1 (|state_type| (store (|balances| state_0) this_0 (+ (select (|balances| state_0) this_0) (- 0 expr_36_0))))) (and (and (>= (select (|balances| state_0) this_0) 0) (<= (select (|balances| state_0) this_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (implies (and true true) (and (>= expr_36_0 0) (<= expr_36_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_36_0 x_9_1) (and (implies (and true true) (and (>= expr_33_0 0) (<= expr_33_0 1461501637330902918203684832716283019655932542975))) (and (= expr_33_0 a_7_0) (and (implies (and true true) (and (>= expr_31_1 0) (<= expr_31_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_31_1 (ite (= expr_30_0 0) 0 d_div_mod_0_0)) (and (and (<= 0 r_div_mod_0_0) (or (= expr_30_0 0) (< r_div_mod_0_0 expr_30_0))) (and (= (+ (* d_div_mod_0_0 expr_30_0) r_div_mod_0_0) expr_29_0) (and (implies (and true true) (and (>= expr_30_0 0) (<= expr_30_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_30_0 x_9_1) (and (implies (and true true) true) (and (= expr_29_0 2) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (+ expr_21_0 expr_26_1)) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (and true true) (and (>= expr_21_0 0) (<= expr_21_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_21_0 x_9_1) (and (ite (and true true) (= x_9_1 (- expr_18_0 1)) (= x_9_1 x_9_0)) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (- expr_18_0 1)) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_42_1))) +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (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 (implies (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_7_0)) +(assert (= |EVALEXPR_0| a_6_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_1)) +(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| )) +","0xc36fc4490d40152ecf0546a4da2de10a47f2e87ca102f9b095354b69315d6d60":"(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.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[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_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[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) + +(assert (and (and (and true true) (and (= expr_41_1 (> expr_39_0 expr_40_0)) (and (implies (and true true) true) (and (= expr_40_0 0) (and (implies (and true true) (and (>= expr_39_0 0) (<= expr_39_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_39_0 x_8_1) (and (= state_3 (ite (= this_0 expr_32_0) state_0 state_2)) (and (= state_2 (|state_type| (store (|balances| state_1) expr_32_0 (+ (select (|balances| state_1) expr_32_0) expr_35_0)))) (and (= state_1 (|state_type| (store (|balances| state_0) this_0 (+ (select (|balances| state_0) this_0) (- 0 expr_35_0))))) (and (and (>= (select (|balances| state_0) this_0) 0) (<= (select (|balances| state_0) this_0) 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (implies (and true true) (and (>= expr_35_0 0) (<= expr_35_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_35_0 x_8_1) (and (implies (and true true) (and (>= expr_32_0 0) (<= expr_32_0 1461501637330902918203684832716283019655932542975))) (and (= expr_32_0 a_6_0) (and (implies (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 (implies (and true true) (and (>= expr_29_0 0) (<= expr_29_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_29_0 x_8_1) (and (implies (and true true) true) (and (= expr_28_0 2) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 (+ expr_20_0 expr_25_1)) (and (implies (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (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 (implies (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_41_1))) +(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| )) -","0xce4156c685d481fe03752262b478cd8877739dba34535f7bfec42a2d30d45445":"(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.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[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) -(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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_0| () Int) -(declare-fun |expr_26_1| () Int) -(declare-fun |expr_27_1| () Int) -(declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) -(declare-fun |d_div_mod_0_0| () Int) -(declare-fun |r_div_mod_0_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_0| () Int) -(declare-fun |state_1| () |state_type|) -(declare-fun |state_2| () |state_type|) -(declare-fun |state_3| () |state_type|) -(declare-fun |expr_40_0| () Int) -(declare-fun |expr_41_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) - -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (and true true) (and (>= expr_21_0 0) (<= expr_21_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_21_0 x_9_1) (and (ite (and true true) (= x_9_1 (- expr_18_0 1)) (= x_9_1 x_9_0)) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (- expr_18_0 1)) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_21_0 expr_26_1) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) -(declare-const |EVALEXPR_0| Int) -(assert (= |EVALEXPR_0| a_7_0)) -(declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_1)) -(declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| (+ expr_21_0 expr_26_1))) -(check-sat) -(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| )) "}},"errors":[{"component":"general","errorCode":"4144","formattedMessage":"Warning: BMC: Underflow (resulting value less than 0) happens here. --> A:8:7: | @@ -184,7 +184,7 @@ Note: = (- 1) a = 0 x = 0 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":208,"file":"A","start":205},"type":"Warning"},{"component":"general","errorCode":"2661","formattedMessage":"Warning: BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":177,"file":"A","start":174},"type":"Warning"},{"component":"general","errorCode":"2661","formattedMessage":"Warning: BMC: Overflow (resulting value larger than 2**256 - 1) happens here. --> A:9:7: | 9 | \t\t\t\t\t\tx + type(uint).max; @@ -201,7 +201,7 @@ Note: = 2**256 a = 0 x = 1 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":234,"file":"A","start":216},"type":"Warning"},{"component":"general","errorCode":"4661","formattedMessage":"Warning: BMC: Assertion violation happens here. +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":203,"file":"A","start":185},"type":"Warning"},{"component":"general","errorCode":"4661","formattedMessage":"Warning: BMC: Assertion violation happens here. --> A:12:7: | 12 | \t\t\t\t\t\tassert(x > 0); @@ -216,4 +216,4 @@ Note: ","message":"BMC: Assertion violation happens here.","secondarySourceLocations":[{"message":"Counterexample: a = 0 x = 0 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":289,"file":"A","start":276},"type":"Warning"}],"sources":{"A":{"id":0}}} +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":258,"file":"A","start":245},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_chc/input.json b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_chc/input.json index a87b7151e..06478c45b 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_chc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_chc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_chc/output.json index 5730b7163..472866447 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_chc/output.json @@ -22,7 +22,7 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 0)","severity":"warning","sourceLocation":{"end":208,"file":"A","start":205},"type":"Warning"},{"component":"general","errorCode":"4984","formattedMessage":"Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +test.f(0, 0)","severity":"warning","sourceLocation":{"end":177,"file":"A","start":174},"type":"Warning"},{"component":"general","errorCode":"4984","formattedMessage":"Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here. Counterexample: arr = [] a = 0 @@ -46,7 +46,7 @@ x = 1 Transaction trace: test.constructor() State: arr = [] -test.f(0, 2)","severity":"warning","sourceLocation":{"end":234,"file":"A","start":216},"type":"Warning"},{"component":"general","errorCode":"6328","formattedMessage":"Warning: CHC: Assertion violation happens here. +test.f(0, 2)","severity":"warning","sourceLocation":{"end":203,"file":"A","start":185},"type":"Warning"},{"component":"general","errorCode":"6328","formattedMessage":"Warning: CHC: Assertion violation happens here. Counterexample: arr = [] a = 0 @@ -70,4 +70,4 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 1)","severity":"warning","sourceLocation":{"end":289,"file":"A","start":276},"type":"Warning"}],"sources":{"A":{"id":0}}} +test.f(0, 1)","severity":"warning","sourceLocation":{"end":258,"file":"A","start":245},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_bmc/input.json b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_bmc/input.json index b135d7ddb..75ead5336 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_bmc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_bmc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_bmc/output.json index ea1207544..95877dc18 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_bmc/output.json @@ -1,4 +1,4 @@ -{"auxiliaryInputRequested":{"smtlib2queries":{"0x0a84f77238ff8229baeac139d2ec93e905d39b9dba5859a66eaeb7310243c901":"(set-option :produce-models true) +{"auxiliaryInputRequested":{"smtlib2queries":{"0x0bf4bf54fa2ecac3482de1b433e5216d0b2f9c2347e556e43c252499885165e5":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -13,49 +13,49 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_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_27_1| () Int) +(declare-fun |expr_28_0| () Int) (declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) (declare-fun |d_div_mod_0_0| () Int) (declare-fun |r_div_mod_0_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_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_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) +(declare-fun |expr_41_1| () Bool) +(declare-fun |expr_44_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_18_0 1) 0))) +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_7_0)) +(assert (= |EVALEXPR_0| a_6_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_0)) +(assert (= |EVALEXPR_1| x_8_0)) (declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| (- expr_18_0 1))) +(assert (= |EVALEXPR_2| (- expr_17_0 1))) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| )) -","0xce4156c685d481fe03752262b478cd8877739dba34535f7bfec42a2d30d45445":"(set-option :produce-models true) +","0x7b2c4d6761f5d49a4a2e0ba56b832d235e93abf16fe2a1383a526aa4fb4fe028":"(set-option :produce-models true) (set-logic ALL) (declare-fun |error_0| () Int) (declare-fun |this_0| () Int) @@ -70,46 +70,46 @@ (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) (declare-datatypes ((|uint[]_tuple| 0)) (((|uint[]_tuple| (|uint[]_tuple_accessor_array| (Array Int Int)) (|uint[]_tuple_accessor_length| Int))))) -(declare-fun |arr_5_length_pair_0| () |uint[]_tuple|) -(declare-fun |a_7_0| () Int) -(declare-fun |x_9_0| () Int) -(declare-fun |arr_5_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_0| () |uint[]_tuple|) +(declare-fun |a_6_0| () Int) +(declare-fun |x_8_0| () Int) +(declare-fun |arr_4_length_pair_1| () |uint[]_tuple|) +(declare-fun |expr_12_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_1| () Int) -(declare-fun |x_9_1| () Int) -(declare-fun |expr_21_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_27_1| () Int) +(declare-fun |expr_28_0| () Int) (declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_0| () Int) (declare-fun |d_div_mod_0_0| () Int) (declare-fun |r_div_mod_0_0| () Int) -(declare-fun |expr_31_1| () Int) -(declare-fun |expr_33_0| () Int) -(declare-fun |expr_36_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_0| () Int) -(declare-fun |expr_42_1| () Bool) -(declare-fun |expr_45_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_45_length_pair_1| () |uint[]_tuple|) -(declare-fun |arr_5_length_pair_2| () |uint[]_tuple|) -(declare-fun |expr_50_length_pair_0| () |uint[]_tuple|) -(declare-fun |expr_51_0| () Int) -(declare-fun |expr_52_1| () Int) +(declare-fun |expr_41_1| () Bool) +(declare-fun |expr_44_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_44_length_pair_1| () |uint[]_tuple|) +(declare-fun |arr_4_length_pair_2| () |uint[]_tuple|) +(declare-fun |expr_49_length_pair_0| () |uint[]_tuple|) +(declare-fun |expr_50_0| () Int) +(declare-fun |expr_51_1| () Int) -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_26_1 0) (<= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (and true true) (and (>= expr_21_0 0) (<= expr_21_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_21_0 x_9_1) (and (ite (and true true) (= x_9_1 (- expr_18_0 1)) (= x_9_1 x_9_0)) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (- expr_18_0 1)) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_9_0) (and (implies (and true true) expr_15_1) (and (= expr_15_1 (>= expr_13_0 expr_14_0)) (and (implies (and true true) true) (and (= expr_14_0 0) (and (implies (and true true) (and (>= expr_13_0 0) (<= expr_13_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_13_0 x_9_0) (and (and (>= x_9_0 0) (<= x_9_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= a_7_0 0) (<= a_7_0 1461501637330902918203684832716283019655932542975)) (and (>= (|uint[]_tuple_accessor_length| arr_5_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_21_0 expr_26_1) 115792089237316195423570985008687907853269984665640564039457584007913129639935))) +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_25_1 0) (<= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_1 115792089237316195423570985008687907853269984665640564039457584007913129639935) (and (implies (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 (implies (and true true) (and (>= expr_18_1 0) (<= expr_18_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_1 (- expr_17_0 1)) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_8_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (>= expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (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[]_tuple_accessor_length| arr_4_length_pair_1) 0) (and (and (and (and (and (and (and (and (and (and (and (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_7_0)) +(assert (= |EVALEXPR_0| a_6_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| x_9_1)) +(assert (= |EVALEXPR_1| x_8_1)) (declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| (+ expr_21_0 expr_26_1))) +(assert (= |EVALEXPR_2| (+ expr_20_0 expr_25_1))) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| )) "}},"errors":[{"component":"general","errorCode":"4144","formattedMessage":"Warning: BMC: Underflow (resulting value less than 0) happens here. @@ -129,7 +129,7 @@ Note: = (- 1) a = 0 x = 0 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":208,"file":"A","start":205},"type":"Warning"},{"component":"general","errorCode":"2661","formattedMessage":"Warning: BMC: Overflow (resulting value larger than 2**256 - 1) happens here. +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":177,"file":"A","start":174},"type":"Warning"},{"component":"general","errorCode":"2661","formattedMessage":"Warning: BMC: Overflow (resulting value larger than 2**256 - 1) happens here. --> A:9:7: | 9 | \t\t\t\t\t\tx + type(uint).max; @@ -146,4 +146,4 @@ Note: = 2**256 a = 0 x = 1 -"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":234,"file":"A","start":216},"type":"Warning"}],"sources":{"A":{"id":0}}} +"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":203,"file":"A","start":185},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_chc/input.json b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_chc/input.json index 5da118386..2f960af19 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_chc/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_chc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_chc/output.json index 79ec9349d..d4a502b4b 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_chc/output.json @@ -22,7 +22,7 @@ x = 0 Transaction trace: test.constructor() State: arr = [] -test.f(0, 0)","severity":"warning","sourceLocation":{"end":208,"file":"A","start":205},"type":"Warning"},{"component":"general","errorCode":"4984","formattedMessage":"Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here. +test.f(0, 0)","severity":"warning","sourceLocation":{"end":177,"file":"A","start":174},"type":"Warning"},{"component":"general","errorCode":"4984","formattedMessage":"Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here. Counterexample: arr = [] a = 0 @@ -46,4 +46,4 @@ x = 1 Transaction trace: test.constructor() State: arr = [] -test.f(0, 2)","severity":"warning","sourceLocation":{"end":234,"file":"A","start":216},"type":"Warning"}],"sources":{"A":{"id":0}}} +test.f(0, 2)","severity":"warning","sourceLocation":{"end":203,"file":"A","start":185},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_targets_wrong/input.json b/test/cmdlineTests/standard_model_checker_targets_wrong/input.json index 2b97bf5f0..2dc6ea56a 100644 --- a/test/cmdlineTests/standard_model_checker_targets_wrong/input.json +++ b/test/cmdlineTests/standard_model_checker_targets_wrong/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test { uint[] arr; function f(address payable a, uint x) public { require(x >= 0); @@ -23,6 +23,7 @@ { "modelChecker": { + "engine": "all", "targets": "aaa,bbb" } } diff --git a/test/cmdlineTests/standard_model_checker_timeout_all/input.json b/test/cmdlineTests/standard_model_checker_timeout_all/input.json index a0de7e267..72c742375 100644 --- a/test/cmdlineTests/standard_model_checker_timeout_all/input.json +++ b/test/cmdlineTests/standard_model_checker_timeout_all/input.json @@ -4,13 +4,14 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test {\nfunction f(uint x, uint y, uint k) public pure {\nrequire(k > 0); require(x % k == 0); require(y % k == 0); uint r = mulmod(x, y, k); assert(r % k == 0);}}" + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test {\nfunction f(uint x, uint y, uint k) public pure {\nrequire(k > 0); require(x % k == 0); require(y % k == 0); uint r = mulmod(x, y, k); assert(r % k == 0);}}" } }, "settings": { "modelChecker": { + "engine": "all", "timeout": 1000 } } diff --git a/test/cmdlineTests/standard_model_checker_timeout_all/output.json b/test/cmdlineTests/standard_model_checker_timeout_all/output.json index 78e28f345..10189ce86 100644 --- a/test/cmdlineTests/standard_model_checker_timeout_all/output.json +++ b/test/cmdlineTests/standard_model_checker_timeout_all/output.json @@ -1,4 +1,4 @@ -{"auxiliaryInputRequested":{"smtlib2queries":{"0x20128f216b02af14a995d83d73be606bed1d30f5b248aa72022ace5700085997":"(set-option :produce-models true) +{"auxiliaryInputRequested":{"smtlib2queries":{"0x1719ce19027a9169898fb6d6c5d461e03c688748cb4d3c08ce494cc486e84cfc":"(set-option :produce-models true) (set-option :timeout 1000) (set-logic ALL) (declare-fun |error_0| () Int) @@ -13,56 +13,56 @@ (declare-fun |crypto_0| () |crypto_type|) (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) -(declare-fun |x_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) +(declare-fun |x_3_0| () Int) +(declare-fun |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) (declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_1| () Bool) +(declare-fun |expr_13_1| () Bool) +(declare-fun |expr_17_0| () Int) (declare-fun |expr_18_0| () Int) -(declare-fun |expr_19_0| () Int) (declare-fun |d_div_mod_15_0| () Int) (declare-fun |r_div_mod_15_0| () Int) -(declare-fun |expr_20_1| () Int) -(declare-fun |expr_21_0| () Int) -(declare-fun |expr_22_1| () Bool) +(declare-fun |expr_19_1| () Int) +(declare-fun |expr_20_0| () Int) +(declare-fun |expr_21_1| () Bool) +(declare-fun |expr_25_0| () Int) (declare-fun |expr_26_0| () Int) -(declare-fun |expr_27_0| () Int) (declare-fun |d_div_mod_16_0| () Int) (declare-fun |r_div_mod_16_0| () Int) -(declare-fun |expr_28_1| () Int) -(declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_1| () Bool) +(declare-fun |expr_27_1| () Int) +(declare-fun |expr_28_0| () Int) +(declare-fun |expr_29_1| () Bool) (declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_0| (Int Int Int ) Int) (declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_abstract_0| () Int) +(declare-fun |expr_35_0| () Int) (declare-fun |expr_36_0| () Int) (declare-fun |expr_37_0| () Int) -(declare-fun |expr_38_0| () Int) (declare-fun |d_div_mod_17_0| () Int) (declare-fun |r_div_mod_17_0| () Int) -(declare-fun |expr_39_1| () Int) -(declare-fun |r_34_1| () Int) +(declare-fun |expr_38_1| () Int) +(declare-fun |r_33_1| () Int) +(declare-fun |expr_41_0| () Int) (declare-fun |expr_42_0| () Int) -(declare-fun |expr_43_0| () Int) (declare-fun |d_div_mod_18_0| () Int) (declare-fun |r_div_mod_18_0| () Int) -(declare-fun |expr_44_1| () Int) -(declare-fun |expr_45_0| () Int) -(declare-fun |expr_46_1| () Bool) +(declare-fun |expr_43_1| () Int) +(declare-fun |expr_44_0| () Int) +(declare-fun |expr_45_1| () Bool) -(assert (and (and (and true true) (and (= expr_46_1 (= expr_44_1 expr_45_0)) (and (implies (and true true) true) (and (= expr_45_0 0) (and (implies (and true true) (and (>= expr_44_1 0) (<= expr_44_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_44_1 (ite (= expr_43_0 0) 0 r_div_mod_18_0)) (and (and (<= 0 r_div_mod_18_0) (or (= expr_43_0 0) (< r_div_mod_18_0 expr_43_0))) (and (= (+ (* d_div_mod_18_0 expr_43_0) r_div_mod_18_0) expr_42_0) (and (implies (and true true) (and (>= expr_43_0 0) (<= expr_43_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_43_0 k_8_0) (and (implies (and true true) (and (>= expr_42_0 0) (<= expr_42_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_42_0 r_34_1) (and (ite (and true true) (= r_34_1 expr_39_1) (= r_34_1 r_34_0)) (and (implies (and true true) (and (>= expr_39_1 0) (<= expr_39_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_39_1 (ite (= expr_38_0 0) 0 r_div_mod_17_0)) (and (and (<= 0 r_div_mod_17_0) (or (= expr_38_0 0) (< r_div_mod_17_0 expr_38_0))) (and (= (+ (* d_div_mod_17_0 expr_38_0) r_div_mod_17_0) (* expr_36_0 expr_37_0)) (and (implies (and true true) (and (>= expr_38_0 0) (<= expr_38_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_38_0 k_8_0) (and (implies (and true true) (and (>= expr_37_0 0) (<= expr_37_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_37_0 y_6_0) (and (implies (and true true) (and (>= expr_36_0 0) (<= expr_36_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_36_0 x_4_0) (and true (and (implies (and true true) expr_30_1) (and (= expr_30_1 (= expr_28_1 expr_29_0)) (and (implies (and true true) true) (and (= expr_29_0 0) (and (implies (and true true) (and (>= expr_28_1 0) (<= expr_28_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_28_1 (ite (= expr_27_0 0) 0 r_div_mod_16_0)) (and (and (<= 0 r_div_mod_16_0) (or (= expr_27_0 0) (< r_div_mod_16_0 expr_27_0))) (and (= (+ (* d_div_mod_16_0 expr_27_0) r_div_mod_16_0) expr_26_0) (and (implies (and true true) (and (>= expr_27_0 0) (<= expr_27_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_0 k_8_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 y_6_0) (and (implies (and true true) expr_22_1) (and (= expr_22_1 (= expr_20_1 expr_21_0)) (and (implies (and true true) true) (and (= expr_21_0 0) (and (implies (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (ite (= expr_19_0 0) 0 r_div_mod_15_0)) (and (and (<= 0 r_div_mod_15_0) (or (= expr_19_0 0) (< r_div_mod_15_0 expr_19_0))) (and (= (+ (* d_div_mod_15_0 expr_19_0) r_div_mod_15_0) expr_18_0) (and (implies (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 k_8_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_4_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (not expr_46_1))) +(assert (and (and (and true true) (and (= expr_45_1 (= expr_43_1 expr_44_0)) (and (implies (and true true) true) (and (= expr_44_0 0) (and (implies (and true true) (and (>= expr_43_1 0) (<= expr_43_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_43_1 (ite (= expr_42_0 0) 0 r_div_mod_18_0)) (and (and (<= 0 r_div_mod_18_0) (or (= expr_42_0 0) (< r_div_mod_18_0 expr_42_0))) (and (= (+ (* d_div_mod_18_0 expr_42_0) r_div_mod_18_0) expr_41_0) (and (implies (and true true) (and (>= expr_42_0 0) (<= expr_42_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_42_0 k_7_0) (and (implies (and true true) (and (>= expr_41_0 0) (<= expr_41_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_41_0 r_33_1) (and (ite (and true true) (= r_33_1 expr_38_1) (= r_33_1 r_33_0)) (and (implies (and true true) (and (>= expr_38_1 0) (<= expr_38_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_38_1 (ite (= expr_37_0 0) 0 r_div_mod_17_0)) (and (and (<= 0 r_div_mod_17_0) (or (= expr_37_0 0) (< r_div_mod_17_0 expr_37_0))) (and (= (+ (* d_div_mod_17_0 expr_37_0) r_div_mod_17_0) (* expr_35_0 expr_36_0)) (and (implies (and true true) (and (>= expr_37_0 0) (<= expr_37_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_37_0 k_7_0) (and (implies (and true true) (and (>= expr_36_0 0) (<= expr_36_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_36_0 y_5_0) (and (implies (and true true) (and (>= expr_35_0 0) (<= expr_35_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_35_0 x_3_0) (and true (and (implies (and true true) expr_29_1) (and (= expr_29_1 (= expr_27_1 expr_28_0)) (and (implies (and true true) true) (and (= expr_28_0 0) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (ite (= expr_26_0 0) 0 r_div_mod_16_0)) (and (and (<= 0 r_div_mod_16_0) (or (= expr_26_0 0) (< r_div_mod_16_0 expr_26_0))) (and (= (+ (* d_div_mod_16_0 expr_26_0) r_div_mod_16_0) expr_25_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 k_7_0) (and (implies (and true true) (and (>= expr_25_0 0) (<= expr_25_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_0 y_5_0) (and (implies (and true true) expr_21_1) (and (= expr_21_1 (= expr_19_1 expr_20_0)) (and (implies (and true true) true) (and (= expr_20_0 0) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (ite (= expr_18_0 0) 0 r_div_mod_15_0)) (and (and (<= 0 r_div_mod_15_0) (or (= expr_18_0 0) (< r_div_mod_15_0 expr_18_0))) (and (= (+ (* d_div_mod_15_0 expr_18_0) r_div_mod_15_0) expr_17_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 k_7_0) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_3_0) (and (implies (and true true) expr_13_1) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (not expr_45_1))) (declare-const |EVALEXPR_0| Int) -(assert (= |EVALEXPR_0| x_4_0)) +(assert (= |EVALEXPR_0| x_3_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| y_6_0)) +(assert (= |EVALEXPR_1| y_5_0)) (declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| k_8_0)) +(assert (= |EVALEXPR_2| k_7_0)) (declare-const |EVALEXPR_3| Int) -(assert (= |EVALEXPR_3| r_34_1)) +(assert (= |EVALEXPR_3| r_33_1)) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| |EVALEXPR_3| )) -","0x21458129e4659a980432a4a5ff17ff1ddc80b13d537896da4b5e9d38f7431e5b":"(set-option :produce-models true) +","0x2e7fd95b441a137fbc24c01fa0e377cff1fb8016c73654c7494c3fc0eca96669":"(set-option :produce-models true) (set-option :timeout 1000) (set-logic ALL) (declare-fun |error_0| () Int) @@ -77,24 +77,24 @@ (declare-fun |crypto_0| () |crypto_type|) (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) -(declare-fun |x_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) +(declare-fun |x_3_0| () Int) +(declare-fun |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) (declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_1| () Bool) +(declare-fun |expr_13_1| () Bool) +(declare-fun |expr_17_0| () Int) (declare-fun |expr_18_0| () Int) -(declare-fun |expr_19_0| () Int) (declare-fun |d_div_mod_15_0| () Int) (declare-fun |r_div_mod_15_0| () Int) -(declare-fun |expr_20_1| () Int) -(declare-fun |expr_21_0| () Int) -(declare-fun |expr_22_1| () Bool) +(declare-fun |expr_19_1| () Int) +(declare-fun |expr_20_0| () Int) +(declare-fun |expr_21_1| () Bool) -(assert (and (and (and true true) (and (= expr_22_1 (= expr_20_1 expr_21_0)) (and (implies (and true true) true) (and (= expr_21_0 0) (and (implies (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (ite (= expr_19_0 0) 0 r_div_mod_15_0)) (and (and (<= 0 r_div_mod_15_0) (or (= expr_19_0 0) (< r_div_mod_15_0 expr_19_0))) (and (= (+ (* d_div_mod_15_0 expr_19_0) r_div_mod_15_0) expr_18_0) (and (implies (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 k_8_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_4_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))) expr_22_1)) +(assert (and (and (and true true) (and (= expr_21_1 (= expr_19_1 expr_20_0)) (and (implies (and true true) true) (and (= expr_20_0 0) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (ite (= expr_18_0 0) 0 r_div_mod_15_0)) (and (and (<= 0 r_div_mod_15_0) (or (= expr_18_0 0) (< r_div_mod_15_0 expr_18_0))) (and (= (+ (* d_div_mod_15_0 expr_18_0) r_div_mod_15_0) expr_17_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 k_7_0) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_3_0) (and (implies (and true true) expr_13_1) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))) (not expr_21_1))) (check-sat) -","0x5b94f720659e6ead8493d1a2a292398100924a3535e01a11c6995eafb7cbd6a9":"(set-option :produce-models true) +","0x576ad64e3e13c1f33a0ba2e36d82c55c41ade17098c66b5fbaa5bfd80d144932":"(set-option :produce-models true) (set-option :timeout 1000) (set-logic ALL) (declare-fun |error_0| () Int) @@ -109,63 +109,31 @@ (declare-fun |crypto_0| () |crypto_type|) (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) -(declare-fun |x_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) +(declare-fun |x_3_0| () Int) +(declare-fun |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) (declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_1| () Bool) +(declare-fun |expr_13_1| () Bool) +(declare-fun |expr_17_0| () Int) (declare-fun |expr_18_0| () Int) -(declare-fun |expr_19_0| () Int) (declare-fun |d_div_mod_15_0| () Int) (declare-fun |r_div_mod_15_0| () Int) -(declare-fun |expr_20_1| () Int) -(declare-fun |expr_21_0| () Int) -(declare-fun |expr_22_1| () Bool) - -(assert (and (and (and true true) (and (= expr_22_1 (= expr_20_1 expr_21_0)) (and (implies (and true true) true) (and (= expr_21_0 0) (and (implies (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (ite (= expr_19_0 0) 0 r_div_mod_15_0)) (and (and (<= 0 r_div_mod_15_0) (or (= expr_19_0 0) (< r_div_mod_15_0 expr_19_0))) (and (= (+ (* d_div_mod_15_0 expr_19_0) r_div_mod_15_0) expr_18_0) (and (implies (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 k_8_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_4_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))) (not expr_22_1))) -(check-sat) -","0x6c3f2167eae640cd0ebf140c1c7e26ef0aa0d3b6ce0028ac4d3240885ccdd904":"(set-option :produce-models true) -(set-option :timeout 1000) -(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.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_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) -(declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_1| () Bool) -(declare-fun |expr_18_0| () Int) -(declare-fun |expr_19_0| () Int) -(declare-fun |d_div_mod_15_0| () Int) -(declare-fun |r_div_mod_15_0| () Int) -(declare-fun |expr_20_1| () Int) -(declare-fun |expr_21_0| () Int) -(declare-fun |expr_22_1| () Bool) +(declare-fun |expr_19_1| () Int) +(declare-fun |expr_20_0| () Int) +(declare-fun |expr_21_1| () Bool) +(declare-fun |expr_25_0| () Int) (declare-fun |expr_26_0| () Int) -(declare-fun |expr_27_0| () Int) (declare-fun |d_div_mod_16_0| () Int) (declare-fun |r_div_mod_16_0| () Int) -(declare-fun |expr_28_1| () Int) -(declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_1| () Bool) +(declare-fun |expr_27_1| () Int) +(declare-fun |expr_28_0| () Int) +(declare-fun |expr_29_1| () Bool) -(assert (and (and (and true true) (and (= expr_30_1 (= expr_28_1 expr_29_0)) (and (implies (and true true) true) (and (= expr_29_0 0) (and (implies (and true true) (and (>= expr_28_1 0) (<= expr_28_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_28_1 (ite (= expr_27_0 0) 0 r_div_mod_16_0)) (and (and (<= 0 r_div_mod_16_0) (or (= expr_27_0 0) (< r_div_mod_16_0 expr_27_0))) (and (= (+ (* d_div_mod_16_0 expr_27_0) r_div_mod_16_0) expr_26_0) (and (implies (and true true) (and (>= expr_27_0 0) (<= expr_27_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_0 k_8_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 y_6_0) (and (implies (and true true) expr_22_1) (and (= expr_22_1 (= expr_20_1 expr_21_0)) (and (implies (and true true) true) (and (= expr_21_0 0) (and (implies (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (ite (= expr_19_0 0) 0 r_div_mod_15_0)) (and (and (<= 0 r_div_mod_15_0) (or (= expr_19_0 0) (< r_div_mod_15_0 expr_19_0))) (and (= (+ (* d_div_mod_15_0 expr_19_0) r_div_mod_15_0) expr_18_0) (and (implies (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 k_8_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_4_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))))))))))))))) expr_30_1)) +(assert (and (and (and true true) (and (= expr_29_1 (= expr_27_1 expr_28_0)) (and (implies (and true true) true) (and (= expr_28_0 0) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (ite (= expr_26_0 0) 0 r_div_mod_16_0)) (and (and (<= 0 r_div_mod_16_0) (or (= expr_26_0 0) (< r_div_mod_16_0 expr_26_0))) (and (= (+ (* d_div_mod_16_0 expr_26_0) r_div_mod_16_0) expr_25_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 k_7_0) (and (implies (and true true) (and (>= expr_25_0 0) (<= expr_25_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_0 y_5_0) (and (implies (and true true) expr_21_1) (and (= expr_21_1 (= expr_19_1 expr_20_0)) (and (implies (and true true) true) (and (= expr_20_0 0) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (ite (= expr_18_0 0) 0 r_div_mod_15_0)) (and (and (<= 0 r_div_mod_15_0) (or (= expr_18_0 0) (< r_div_mod_15_0 expr_18_0))) (and (= (+ (* d_div_mod_15_0 expr_18_0) r_div_mod_15_0) expr_17_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 k_7_0) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_3_0) (and (implies (and true true) expr_13_1) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))))))))))))))) (not expr_29_1))) (check-sat) -","0x8698bcbed7fc0ea69610d085b51604707ddb0626f02e2337024e9cc6b8aa0a99":"(set-option :produce-models true) +","0x800a33b96e612ce903e1adb2f5f9f18477f363df09949fa6403bdcfbe4419945":"(set-option :produce-models true) (set-option :timeout 1000) (set-logic ALL) (declare-fun |error_0| () Int) @@ -180,17 +148,17 @@ (declare-fun |crypto_0| () |crypto_type|) (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) -(declare-fun |x_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) +(declare-fun |x_3_0| () Int) +(declare-fun |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) (declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_1| () Bool) +(declare-fun |expr_13_1| () Bool) -(assert (and (and (and true true) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) expr_14_1)) +(assert (and (and (and true true) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) expr_13_1)) (check-sat) -","0x8d510ac45e72c76711f42f97e3e8e5e0c8853246dab61e3196afc73b53af1d6c":"(set-option :produce-models true) +","0x8cb48d7d86946a51a784fdd069d1e69a7111aacd0471f89dd52f4f70dabb3902":"(set-option :produce-models true) (set-option :timeout 1000) (set-logic ALL) (declare-fun |error_0| () Int) @@ -205,17 +173,17 @@ (declare-fun |crypto_0| () |crypto_type|) (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) -(declare-fun |x_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) +(declare-fun |x_3_0| () Int) +(declare-fun |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) (declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_1| () Bool) +(declare-fun |expr_13_1| () Bool) -(assert (and (and (and true true) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) (not expr_14_1))) +(assert (and (and (and true true) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) (not expr_13_1))) (check-sat) -","0xcb34de7f5aac9e88150cc7d2e411e98227052144899d34aff7200a98800205ee":"(set-option :produce-models true) +","0xbf4729d889052ceb349ac4199c42c5b471694704cc569f5e072f82260e73f9b9":"(set-option :produce-models true) (set-option :timeout 1000) (set-logic ALL) (declare-fun |error_0| () Int) @@ -230,29 +198,61 @@ (declare-fun |crypto_0| () |crypto_type|) (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) -(declare-fun |x_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) +(declare-fun |x_3_0| () Int) +(declare-fun |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) (declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_1| () Bool) +(declare-fun |expr_13_1| () Bool) +(declare-fun |expr_17_0| () Int) (declare-fun |expr_18_0| () Int) -(declare-fun |expr_19_0| () Int) (declare-fun |d_div_mod_15_0| () Int) (declare-fun |r_div_mod_15_0| () Int) -(declare-fun |expr_20_1| () Int) -(declare-fun |expr_21_0| () Int) -(declare-fun |expr_22_1| () Bool) +(declare-fun |expr_19_1| () Int) +(declare-fun |expr_20_0| () Int) +(declare-fun |expr_21_1| () Bool) +(declare-fun |expr_25_0| () Int) (declare-fun |expr_26_0| () Int) -(declare-fun |expr_27_0| () Int) (declare-fun |d_div_mod_16_0| () Int) (declare-fun |r_div_mod_16_0| () Int) -(declare-fun |expr_28_1| () Int) -(declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_1| () Bool) +(declare-fun |expr_27_1| () Int) +(declare-fun |expr_28_0| () Int) +(declare-fun |expr_29_1| () Bool) -(assert (and (and (and true true) (and (= expr_30_1 (= expr_28_1 expr_29_0)) (and (implies (and true true) true) (and (= expr_29_0 0) (and (implies (and true true) (and (>= expr_28_1 0) (<= expr_28_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_28_1 (ite (= expr_27_0 0) 0 r_div_mod_16_0)) (and (and (<= 0 r_div_mod_16_0) (or (= expr_27_0 0) (< r_div_mod_16_0 expr_27_0))) (and (= (+ (* d_div_mod_16_0 expr_27_0) r_div_mod_16_0) expr_26_0) (and (implies (and true true) (and (>= expr_27_0 0) (<= expr_27_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_0 k_8_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 y_6_0) (and (implies (and true true) expr_22_1) (and (= expr_22_1 (= expr_20_1 expr_21_0)) (and (implies (and true true) true) (and (= expr_21_0 0) (and (implies (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (ite (= expr_19_0 0) 0 r_div_mod_15_0)) (and (and (<= 0 r_div_mod_15_0) (or (= expr_19_0 0) (< r_div_mod_15_0 expr_19_0))) (and (= (+ (* d_div_mod_15_0 expr_19_0) r_div_mod_15_0) expr_18_0) (and (implies (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 k_8_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_4_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))))))))))))))) (not expr_30_1))) +(assert (and (and (and true true) (and (= expr_29_1 (= expr_27_1 expr_28_0)) (and (implies (and true true) true) (and (= expr_28_0 0) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (ite (= expr_26_0 0) 0 r_div_mod_16_0)) (and (and (<= 0 r_div_mod_16_0) (or (= expr_26_0 0) (< r_div_mod_16_0 expr_26_0))) (and (= (+ (* d_div_mod_16_0 expr_26_0) r_div_mod_16_0) expr_25_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 k_7_0) (and (implies (and true true) (and (>= expr_25_0 0) (<= expr_25_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_0 y_5_0) (and (implies (and true true) expr_21_1) (and (= expr_21_1 (= expr_19_1 expr_20_0)) (and (implies (and true true) true) (and (= expr_20_0 0) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (ite (= expr_18_0 0) 0 r_div_mod_15_0)) (and (and (<= 0 r_div_mod_15_0) (or (= expr_18_0 0) (< r_div_mod_15_0 expr_18_0))) (and (= (+ (* d_div_mod_15_0 expr_18_0) r_div_mod_15_0) expr_17_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 k_7_0) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_3_0) (and (implies (and true true) expr_13_1) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))))))))))))))) expr_29_1)) +(check-sat) +","0xed833d1ac15d33f05c2cdbeb41ce605b3d55984d743bf769627a87616786b109":"(set-option :produce-models true) +(set-option :timeout 1000) +(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.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 |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) +(declare-fun |expr_12_0| () Int) +(declare-fun |expr_13_1| () Bool) +(declare-fun |expr_17_0| () Int) +(declare-fun |expr_18_0| () Int) +(declare-fun |d_div_mod_15_0| () Int) +(declare-fun |r_div_mod_15_0| () Int) +(declare-fun |expr_19_1| () Int) +(declare-fun |expr_20_0| () Int) +(declare-fun |expr_21_1| () Bool) + +(assert (and (and (and true true) (and (= expr_21_1 (= expr_19_1 expr_20_0)) (and (implies (and true true) true) (and (= expr_20_0 0) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (ite (= expr_18_0 0) 0 r_div_mod_15_0)) (and (and (<= 0 r_div_mod_15_0) (or (= expr_18_0 0) (< r_div_mod_15_0 expr_18_0))) (and (= (+ (* d_div_mod_15_0 expr_18_0) r_div_mod_15_0) expr_17_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 k_7_0) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_3_0) (and (implies (and true true) expr_13_1) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))) expr_21_1)) (check-sat) "}},"errors":[{"component":"general","errorCode":"6328","formattedMessage":"Warning: CHC: Assertion violation might happen here. --> A:6:85: @@ -260,11 +260,11 @@ 6 | require(k > 0); require(x % k == 0); require(y % k == 0); uint r = mulmod(x, y, k); assert(r % k == 0);}} | ^^^^^^^^^^^^^^^^^^ -","message":"CHC: Assertion violation might happen here.","severity":"warning","sourceLocation":{"end":258,"file":"A","start":240},"type":"Warning"},{"component":"general","errorCode":"7812","formattedMessage":"Warning: BMC: Assertion violation might happen here. +","message":"CHC: Assertion violation might happen here.","severity":"warning","sourceLocation":{"end":227,"file":"A","start":209},"type":"Warning"},{"component":"general","errorCode":"7812","formattedMessage":"Warning: BMC: Assertion violation might happen here. --> A:6:85: | 6 | require(k > 0); require(x % k == 0); require(y % k == 0); uint r = mulmod(x, y, k); assert(r % k == 0);}} | ^^^^^^^^^^^^^^^^^^ Note: -","message":"BMC: Assertion violation might happen here.","secondarySourceLocations":[{"message":""}],"severity":"warning","sourceLocation":{"end":258,"file":"A","start":240},"type":"Warning"}],"sources":{"A":{"id":0}}} +","message":"BMC: Assertion violation might happen here.","secondarySourceLocations":[{"message":""}],"severity":"warning","sourceLocation":{"end":227,"file":"A","start":209},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_timeout_bmc/input.json b/test/cmdlineTests/standard_model_checker_timeout_bmc/input.json index 0cf2c2182..94b70a354 100644 --- a/test/cmdlineTests/standard_model_checker_timeout_bmc/input.json +++ b/test/cmdlineTests/standard_model_checker_timeout_bmc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test {\nfunction f(uint x, uint y, uint k) public pure {\nrequire(k > 0); require(x % k == 0); require(y % k == 0); uint r = mulmod(x, y, k); assert(r % k == 0);}}" + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test {\nfunction f(uint x, uint y, uint k) public pure {\nrequire(k > 0); require(x % k == 0); require(y % k == 0); uint r = mulmod(x, y, k); assert(r % k == 0);}}" } }, "settings": diff --git a/test/cmdlineTests/standard_model_checker_timeout_bmc/output.json b/test/cmdlineTests/standard_model_checker_timeout_bmc/output.json index 9a2a200c3..a527701c7 100644 --- a/test/cmdlineTests/standard_model_checker_timeout_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_timeout_bmc/output.json @@ -1,4 +1,4 @@ -{"auxiliaryInputRequested":{"smtlib2queries":{"0x4972c296106f72e4c13333e20bca8875e238534f0f010d0d72555ed9418d69e5":"(set-option :produce-models true) +{"auxiliaryInputRequested":{"smtlib2queries":{"0x075da93c8660f71778056f0a420a479e9594c03c9a961102b0f85c334d3d1c47":"(set-option :produce-models true) (set-option :timeout 1000) (set-logic ALL) (declare-fun |error_0| () Int) @@ -13,58 +13,58 @@ (declare-fun |crypto_0| () |crypto_type|) (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) -(declare-fun |x_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) +(declare-fun |x_3_0| () Int) +(declare-fun |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) (declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_1| () Bool) +(declare-fun |expr_13_1| () Bool) +(declare-fun |expr_17_0| () Int) (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_1| () Bool) +(declare-fun |expr_19_1| () Int) +(declare-fun |expr_20_0| () Int) +(declare-fun |expr_21_1| () Bool) +(declare-fun |expr_25_0| () Int) (declare-fun |expr_26_0| () Int) -(declare-fun |expr_27_0| () Int) (declare-fun |d_div_mod_1_0| () Int) (declare-fun |r_div_mod_1_0| () Int) -(declare-fun |expr_28_1| () Int) -(declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_1| () Bool) +(declare-fun |expr_27_1| () Int) +(declare-fun |expr_28_0| () Int) +(declare-fun |expr_29_1| () Bool) (declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_0| (Int Int Int ) Int) (declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_abstract_0| () Int) +(declare-fun |expr_35_0| () Int) (declare-fun |expr_36_0| () Int) (declare-fun |expr_37_0| () Int) -(declare-fun |expr_38_0| () Int) (declare-fun |d_div_mod_2_0| () Int) (declare-fun |r_div_mod_2_0| () Int) -(declare-fun |expr_39_1| () Int) -(declare-fun |r_34_1| () Int) +(declare-fun |expr_38_1| () Int) +(declare-fun |r_33_1| () Int) +(declare-fun |expr_41_0| () Int) (declare-fun |expr_42_0| () Int) -(declare-fun |expr_43_0| () Int) (declare-fun |d_div_mod_3_0| () Int) (declare-fun |r_div_mod_3_0| () Int) -(declare-fun |expr_44_1| () Int) -(declare-fun |expr_45_0| () Int) -(declare-fun |expr_46_1| () Bool) +(declare-fun |expr_43_1| () Int) +(declare-fun |expr_44_0| () Int) +(declare-fun |expr_45_1| () Bool) -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 k_8_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_4_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))) (= expr_19_0 0))) +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 k_7_0) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_3_0) (and (implies (and true true) expr_13_1) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))) (= expr_18_0 0))) (declare-const |EVALEXPR_0| Int) -(assert (= |EVALEXPR_0| x_4_0)) +(assert (= |EVALEXPR_0| x_3_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| y_6_0)) +(assert (= |EVALEXPR_1| y_5_0)) (declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| k_8_0)) +(assert (= |EVALEXPR_2| k_7_0)) (declare-const |EVALEXPR_3| Int) -(assert (= |EVALEXPR_3| r_34_0)) +(assert (= |EVALEXPR_3| r_33_0)) (declare-const |EVALEXPR_4| Int) -(assert (= |EVALEXPR_4| expr_19_0)) +(assert (= |EVALEXPR_4| expr_18_0)) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| |EVALEXPR_3| |EVALEXPR_4| )) -","0x4b1d1f3cf356fb064f297dee0f62b8b494fe71aed1a9a89698cb30197a76a259":"(set-option :produce-models true) +","0x1a3b84614aa3190f2c5e278cb87ce88f943505bc35383416538dbac3247630f4":"(set-option :produce-models true) (set-option :timeout 1000) (set-logic ALL) (declare-fun |error_0| () Int) @@ -79,56 +79,375 @@ (declare-fun |crypto_0| () |crypto_type|) (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) -(declare-fun |x_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) +(declare-fun |x_3_0| () Int) +(declare-fun |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) (declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_1| () Bool) +(declare-fun |expr_13_1| () Bool) +(declare-fun |expr_17_0| () Int) (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_1| () Bool) +(declare-fun |expr_19_1| () Int) +(declare-fun |expr_20_0| () Int) +(declare-fun |expr_21_1| () Bool) +(declare-fun |expr_25_0| () Int) (declare-fun |expr_26_0| () Int) -(declare-fun |expr_27_0| () Int) (declare-fun |d_div_mod_1_0| () Int) (declare-fun |r_div_mod_1_0| () Int) -(declare-fun |expr_28_1| () Int) -(declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_1| () Bool) +(declare-fun |expr_27_1| () Int) +(declare-fun |expr_28_0| () Int) +(declare-fun |expr_29_1| () Bool) (declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_0| (Int Int Int ) Int) (declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_abstract_0| () Int) +(declare-fun |expr_35_0| () Int) (declare-fun |expr_36_0| () Int) (declare-fun |expr_37_0| () Int) -(declare-fun |expr_38_0| () Int) (declare-fun |d_div_mod_2_0| () Int) (declare-fun |r_div_mod_2_0| () Int) -(declare-fun |expr_39_1| () Int) -(declare-fun |r_34_1| () Int) +(declare-fun |expr_38_1| () Int) +(declare-fun |r_33_1| () Int) +(declare-fun |expr_41_0| () Int) (declare-fun |expr_42_0| () Int) -(declare-fun |expr_43_0| () Int) (declare-fun |d_div_mod_3_0| () Int) (declare-fun |r_div_mod_3_0| () Int) -(declare-fun |expr_44_1| () Int) -(declare-fun |expr_45_0| () Int) -(declare-fun |expr_46_1| () Bool) +(declare-fun |expr_43_1| () Int) +(declare-fun |expr_44_0| () Int) +(declare-fun |expr_45_1| () Bool) -(assert (and (and (and true true) (and (= expr_46_1 (= expr_44_1 expr_45_0)) (and (implies (and true true) true) (and (= expr_45_0 0) (and (implies (and true true) (and (>= expr_44_1 0) (<= expr_44_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_44_1 (ite (= expr_43_0 0) 0 r_div_mod_3_0)) (and (and (<= 0 r_div_mod_3_0) (or (= expr_43_0 0) (< r_div_mod_3_0 expr_43_0))) (and (= (+ (* d_div_mod_3_0 expr_43_0) r_div_mod_3_0) expr_42_0) (and (implies (and true true) (and (>= expr_43_0 0) (<= expr_43_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_43_0 k_8_0) (and (implies (and true true) (and (>= expr_42_0 0) (<= expr_42_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_42_0 r_34_1) (and (ite (and true true) (= r_34_1 expr_39_1) (= r_34_1 r_34_0)) (and (implies (and true true) (and (>= expr_39_1 0) (<= expr_39_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_39_1 (ite (= expr_38_0 0) 0 r_div_mod_2_0)) (and (and (<= 0 r_div_mod_2_0) (or (= expr_38_0 0) (< r_div_mod_2_0 expr_38_0))) (and (= (+ (* d_div_mod_2_0 expr_38_0) r_div_mod_2_0) (* expr_36_0 expr_37_0)) (and (implies (and true true) (and (>= expr_38_0 0) (<= expr_38_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_38_0 k_8_0) (and (implies (and true true) (and (>= expr_37_0 0) (<= expr_37_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_37_0 y_6_0) (and (implies (and true true) (and (>= expr_36_0 0) (<= expr_36_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_36_0 x_4_0) (and true (and (implies (and true true) expr_30_1) (and (= expr_30_1 (= expr_28_1 expr_29_0)) (and (implies (and true true) true) (and (= expr_29_0 0) (and (implies (and true true) (and (>= expr_28_1 0) (<= expr_28_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_28_1 (ite (= expr_27_0 0) 0 r_div_mod_1_0)) (and (and (<= 0 r_div_mod_1_0) (or (= expr_27_0 0) (< r_div_mod_1_0 expr_27_0))) (and (= (+ (* d_div_mod_1_0 expr_27_0) r_div_mod_1_0) expr_26_0) (and (implies (and true true) (and (>= expr_27_0 0) (<= expr_27_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_0 k_8_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 y_6_0) (and (implies (and true true) expr_22_1) (and (= expr_22_1 (= expr_20_1 expr_21_0)) (and (implies (and true true) true) (and (= expr_21_0 0) (and (implies (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (ite (= expr_19_0 0) 0 r_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 (implies (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 k_8_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_4_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (not expr_46_1))) +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 k_7_0) (and (implies (and true true) (and (>= expr_25_0 0) (<= expr_25_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_0 y_5_0) (and (implies (and true true) expr_21_1) (and (= expr_21_1 (= expr_19_1 expr_20_0)) (and (implies (and true true) true) (and (= expr_20_0 0) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (ite (= expr_18_0 0) 0 r_div_mod_0_0)) (and (and (<= 0 r_div_mod_0_0) (or (= expr_18_0 0) (< r_div_mod_0_0 expr_18_0))) (and (= (+ (* d_div_mod_0_0 expr_18_0) r_div_mod_0_0) expr_17_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 k_7_0) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_3_0) (and (implies (and true true) expr_13_1) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))))))))))) (= expr_26_0 0))) (declare-const |EVALEXPR_0| Int) -(assert (= |EVALEXPR_0| x_4_0)) +(assert (= |EVALEXPR_0| x_3_0)) (declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| y_6_0)) +(assert (= |EVALEXPR_1| y_5_0)) (declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| k_8_0)) +(assert (= |EVALEXPR_2| k_7_0)) (declare-const |EVALEXPR_3| Int) -(assert (= |EVALEXPR_3| r_34_1)) +(assert (= |EVALEXPR_3| r_33_0)) +(declare-const |EVALEXPR_4| Int) +(assert (= |EVALEXPR_4| expr_26_0)) +(check-sat) +(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| |EVALEXPR_3| |EVALEXPR_4| )) +","0x21fde84236e3514749a6958e6f0364d4de30a7ca5244882f303bdf4af0005559":"(set-option :produce-models true) +(set-option :timeout 1000) +(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.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 |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) +(declare-fun |expr_12_0| () Int) +(declare-fun |expr_13_1| () Bool) +(declare-fun |expr_17_0| () Int) +(declare-fun |expr_18_0| () Int) +(declare-fun |d_div_mod_0_0| () Int) +(declare-fun |r_div_mod_0_0| () Int) +(declare-fun |expr_19_1| () Int) +(declare-fun |expr_20_0| () Int) +(declare-fun |expr_21_1| () Bool) +(declare-fun |expr_25_0| () Int) +(declare-fun |expr_26_0| () Int) +(declare-fun |d_div_mod_1_0| () Int) +(declare-fun |r_div_mod_1_0| () Int) +(declare-fun |expr_27_1| () Int) +(declare-fun |expr_28_0| () Int) +(declare-fun |expr_29_1| () Bool) + +(assert (and (and (and true true) (and (= expr_29_1 (= expr_27_1 expr_28_0)) (and (implies (and true true) true) (and (= expr_28_0 0) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (ite (= expr_26_0 0) 0 r_div_mod_1_0)) (and (and (<= 0 r_div_mod_1_0) (or (= expr_26_0 0) (< r_div_mod_1_0 expr_26_0))) (and (= (+ (* d_div_mod_1_0 expr_26_0) r_div_mod_1_0) expr_25_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 k_7_0) (and (implies (and true true) (and (>= expr_25_0 0) (<= expr_25_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_0 y_5_0) (and (implies (and true true) expr_21_1) (and (= expr_21_1 (= expr_19_1 expr_20_0)) (and (implies (and true true) true) (and (= expr_20_0 0) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (ite (= expr_18_0 0) 0 r_div_mod_0_0)) (and (and (<= 0 r_div_mod_0_0) (or (= expr_18_0 0) (< r_div_mod_0_0 expr_18_0))) (and (= (+ (* d_div_mod_0_0 expr_18_0) r_div_mod_0_0) expr_17_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 k_7_0) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_3_0) (and (implies (and true true) expr_13_1) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))))))))))))))) expr_29_1)) +(check-sat) +","0x37530a776a831afc7e61d715d95a5be0e88f1daed9e69e3e763055d2e0d8b018":"(set-option :produce-models true) +(set-option :timeout 1000) +(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.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 |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) +(declare-fun |expr_12_0| () Int) +(declare-fun |expr_13_1| () Bool) +(declare-fun |expr_17_0| () Int) +(declare-fun |expr_18_0| () Int) +(declare-fun |d_div_mod_0_0| () Int) +(declare-fun |r_div_mod_0_0| () Int) +(declare-fun |expr_19_1| () Int) +(declare-fun |expr_20_0| () Int) +(declare-fun |expr_21_1| () Bool) + +(assert (and (and (and true true) (and (= expr_21_1 (= expr_19_1 expr_20_0)) (and (implies (and true true) true) (and (= expr_20_0 0) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (ite (= expr_18_0 0) 0 r_div_mod_0_0)) (and (and (<= 0 r_div_mod_0_0) (or (= expr_18_0 0) (< r_div_mod_0_0 expr_18_0))) (and (= (+ (* d_div_mod_0_0 expr_18_0) r_div_mod_0_0) expr_17_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 k_7_0) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_3_0) (and (implies (and true true) expr_13_1) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))) (not expr_21_1))) +(check-sat) +","0x56b67ed4ade0621382ef41f7610d672c79a9645644ecb5ed33a62243c0786d93":"(set-option :produce-models true) +(set-option :timeout 1000) +(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.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 |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) +(declare-fun |expr_12_0| () Int) +(declare-fun |expr_13_1| () Bool) +(declare-fun |expr_17_0| () Int) +(declare-fun |expr_18_0| () Int) +(declare-fun |d_div_mod_0_0| () Int) +(declare-fun |r_div_mod_0_0| () Int) +(declare-fun |expr_19_1| () Int) +(declare-fun |expr_20_0| () Int) +(declare-fun |expr_21_1| () Bool) +(declare-fun |expr_25_0| () Int) +(declare-fun |expr_26_0| () Int) +(declare-fun |d_div_mod_1_0| () Int) +(declare-fun |r_div_mod_1_0| () Int) +(declare-fun |expr_27_1| () Int) +(declare-fun |expr_28_0| () Int) +(declare-fun |expr_29_1| () Bool) +(declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_0| (Int Int Int ) Int) +(declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_abstract_0| () Int) +(declare-fun |expr_35_0| () Int) +(declare-fun |expr_36_0| () Int) +(declare-fun |expr_37_0| () Int) +(declare-fun |d_div_mod_2_0| () Int) +(declare-fun |r_div_mod_2_0| () Int) +(declare-fun |expr_38_1| () Int) +(declare-fun |r_33_1| () Int) +(declare-fun |expr_41_0| () Int) +(declare-fun |expr_42_0| () Int) +(declare-fun |d_div_mod_3_0| () Int) +(declare-fun |r_div_mod_3_0| () Int) +(declare-fun |expr_43_1| () Int) +(declare-fun |expr_44_0| () Int) +(declare-fun |expr_45_1| () Bool) + +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_37_0 0) (<= expr_37_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_37_0 k_7_0) (and (implies (and true true) (and (>= expr_36_0 0) (<= expr_36_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_36_0 y_5_0) (and (implies (and true true) (and (>= expr_35_0 0) (<= expr_35_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_35_0 x_3_0) (and true (and (implies (and true true) expr_29_1) (and (= expr_29_1 (= expr_27_1 expr_28_0)) (and (implies (and true true) true) (and (= expr_28_0 0) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (ite (= expr_26_0 0) 0 r_div_mod_1_0)) (and (and (<= 0 r_div_mod_1_0) (or (= expr_26_0 0) (< r_div_mod_1_0 expr_26_0))) (and (= (+ (* d_div_mod_1_0 expr_26_0) r_div_mod_1_0) expr_25_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 k_7_0) (and (implies (and true true) (and (>= expr_25_0 0) (<= expr_25_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_0 y_5_0) (and (implies (and true true) expr_21_1) (and (= expr_21_1 (= expr_19_1 expr_20_0)) (and (implies (and true true) true) (and (= expr_20_0 0) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (ite (= expr_18_0 0) 0 r_div_mod_0_0)) (and (and (<= 0 r_div_mod_0_0) (or (= expr_18_0 0) (< r_div_mod_0_0 expr_18_0))) (and (= (+ (* d_div_mod_0_0 expr_18_0) r_div_mod_0_0) expr_17_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 k_7_0) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_3_0) (and (implies (and true true) expr_13_1) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))))))))))))))))))))))) (= expr_37_0 0))) +(declare-const |EVALEXPR_0| Int) +(assert (= |EVALEXPR_0| x_3_0)) +(declare-const |EVALEXPR_1| Int) +(assert (= |EVALEXPR_1| y_5_0)) +(declare-const |EVALEXPR_2| Int) +(assert (= |EVALEXPR_2| k_7_0)) +(declare-const |EVALEXPR_3| Int) +(assert (= |EVALEXPR_3| r_33_0)) +(declare-const |EVALEXPR_4| Int) +(assert (= |EVALEXPR_4| expr_37_0)) +(check-sat) +(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| |EVALEXPR_3| |EVALEXPR_4| )) +","0x77f0eb485dbc414d8f101601c23e8e0094b5d09b816bc0ca9bb0ed4bf605c529":"(set-option :produce-models true) +(set-option :timeout 1000) +(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.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 |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) +(declare-fun |expr_12_0| () Int) +(declare-fun |expr_13_1| () Bool) +(declare-fun |expr_17_0| () Int) +(declare-fun |expr_18_0| () Int) +(declare-fun |d_div_mod_0_0| () Int) +(declare-fun |r_div_mod_0_0| () Int) +(declare-fun |expr_19_1| () Int) +(declare-fun |expr_20_0| () Int) +(declare-fun |expr_21_1| () Bool) +(declare-fun |expr_25_0| () Int) +(declare-fun |expr_26_0| () Int) +(declare-fun |d_div_mod_1_0| () Int) +(declare-fun |r_div_mod_1_0| () Int) +(declare-fun |expr_27_1| () Int) +(declare-fun |expr_28_0| () Int) +(declare-fun |expr_29_1| () Bool) +(declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_0| (Int Int Int ) Int) +(declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_abstract_0| () Int) +(declare-fun |expr_35_0| () Int) +(declare-fun |expr_36_0| () Int) +(declare-fun |expr_37_0| () Int) +(declare-fun |d_div_mod_2_0| () Int) +(declare-fun |r_div_mod_2_0| () Int) +(declare-fun |expr_38_1| () Int) +(declare-fun |r_33_1| () Int) +(declare-fun |expr_41_0| () Int) +(declare-fun |expr_42_0| () Int) +(declare-fun |d_div_mod_3_0| () Int) +(declare-fun |r_div_mod_3_0| () Int) +(declare-fun |expr_43_1| () Int) +(declare-fun |expr_44_0| () Int) +(declare-fun |expr_45_1| () Bool) + +(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_42_0 0) (<= expr_42_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_42_0 k_7_0) (and (implies (and true true) (and (>= expr_41_0 0) (<= expr_41_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_41_0 r_33_1) (and (ite (and true true) (= r_33_1 expr_38_1) (= r_33_1 r_33_0)) (and (implies (and true true) (and (>= expr_38_1 0) (<= expr_38_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_38_1 (ite (= expr_37_0 0) 0 r_div_mod_2_0)) (and (and (<= 0 r_div_mod_2_0) (or (= expr_37_0 0) (< r_div_mod_2_0 expr_37_0))) (and (= (+ (* d_div_mod_2_0 expr_37_0) r_div_mod_2_0) (* expr_35_0 expr_36_0)) (and (implies (and true true) (and (>= expr_37_0 0) (<= expr_37_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_37_0 k_7_0) (and (implies (and true true) (and (>= expr_36_0 0) (<= expr_36_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_36_0 y_5_0) (and (implies (and true true) (and (>= expr_35_0 0) (<= expr_35_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_35_0 x_3_0) (and true (and (implies (and true true) expr_29_1) (and (= expr_29_1 (= expr_27_1 expr_28_0)) (and (implies (and true true) true) (and (= expr_28_0 0) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (ite (= expr_26_0 0) 0 r_div_mod_1_0)) (and (and (<= 0 r_div_mod_1_0) (or (= expr_26_0 0) (< r_div_mod_1_0 expr_26_0))) (and (= (+ (* d_div_mod_1_0 expr_26_0) r_div_mod_1_0) expr_25_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 k_7_0) (and (implies (and true true) (and (>= expr_25_0 0) (<= expr_25_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_0 y_5_0) (and (implies (and true true) expr_21_1) (and (= expr_21_1 (= expr_19_1 expr_20_0)) (and (implies (and true true) true) (and (= expr_20_0 0) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (ite (= expr_18_0 0) 0 r_div_mod_0_0)) (and (and (<= 0 r_div_mod_0_0) (or (= expr_18_0 0) (< r_div_mod_0_0 expr_18_0))) (and (= (+ (* d_div_mod_0_0 expr_18_0) r_div_mod_0_0) expr_17_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 k_7_0) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_3_0) (and (implies (and true true) expr_13_1) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))))))))))))))))))))))))))))))))))) (= expr_42_0 0))) +(declare-const |EVALEXPR_0| Int) +(assert (= |EVALEXPR_0| x_3_0)) +(declare-const |EVALEXPR_1| Int) +(assert (= |EVALEXPR_1| y_5_0)) +(declare-const |EVALEXPR_2| Int) +(assert (= |EVALEXPR_2| k_7_0)) +(declare-const |EVALEXPR_3| Int) +(assert (= |EVALEXPR_3| r_33_1)) +(declare-const |EVALEXPR_4| Int) +(assert (= |EVALEXPR_4| expr_42_0)) +(check-sat) +(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| |EVALEXPR_3| |EVALEXPR_4| )) +","0x800a33b96e612ce903e1adb2f5f9f18477f363df09949fa6403bdcfbe4419945":"(set-option :produce-models true) +(set-option :timeout 1000) +(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.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 |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) +(declare-fun |expr_12_0| () Int) +(declare-fun |expr_13_1| () Bool) + +(assert (and (and (and true true) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) expr_13_1)) +(check-sat) +","0x8cb48d7d86946a51a784fdd069d1e69a7111aacd0471f89dd52f4f70dabb3902":"(set-option :produce-models true) +(set-option :timeout 1000) +(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.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 |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) +(declare-fun |expr_12_0| () Int) +(declare-fun |expr_13_1| () Bool) + +(assert (and (and (and true true) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) (not expr_13_1))) +(check-sat) +","0xa23ffc29fd0f234799bf813230dedac961ece673de3fb9f45be5c0383ab22143":"(set-option :produce-models true) +(set-option :timeout 1000) +(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.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 |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) +(declare-fun |expr_12_0| () Int) +(declare-fun |expr_13_1| () Bool) +(declare-fun |expr_17_0| () Int) +(declare-fun |expr_18_0| () Int) +(declare-fun |d_div_mod_0_0| () Int) +(declare-fun |r_div_mod_0_0| () Int) +(declare-fun |expr_19_1| () Int) +(declare-fun |expr_20_0| () Int) +(declare-fun |expr_21_1| () Bool) +(declare-fun |expr_25_0| () Int) +(declare-fun |expr_26_0| () Int) +(declare-fun |d_div_mod_1_0| () Int) +(declare-fun |r_div_mod_1_0| () Int) +(declare-fun |expr_27_1| () Int) +(declare-fun |expr_28_0| () Int) +(declare-fun |expr_29_1| () Bool) +(declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_0| (Int Int Int ) Int) +(declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_abstract_0| () Int) +(declare-fun |expr_35_0| () Int) +(declare-fun |expr_36_0| () Int) +(declare-fun |expr_37_0| () Int) +(declare-fun |d_div_mod_2_0| () Int) +(declare-fun |r_div_mod_2_0| () Int) +(declare-fun |expr_38_1| () Int) +(declare-fun |r_33_1| () Int) +(declare-fun |expr_41_0| () Int) +(declare-fun |expr_42_0| () Int) +(declare-fun |d_div_mod_3_0| () Int) +(declare-fun |r_div_mod_3_0| () Int) +(declare-fun |expr_43_1| () Int) +(declare-fun |expr_44_0| () Int) +(declare-fun |expr_45_1| () Bool) + +(assert (and (and (and true true) (and (= expr_45_1 (= expr_43_1 expr_44_0)) (and (implies (and true true) true) (and (= expr_44_0 0) (and (implies (and true true) (and (>= expr_43_1 0) (<= expr_43_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_43_1 (ite (= expr_42_0 0) 0 r_div_mod_3_0)) (and (and (<= 0 r_div_mod_3_0) (or (= expr_42_0 0) (< r_div_mod_3_0 expr_42_0))) (and (= (+ (* d_div_mod_3_0 expr_42_0) r_div_mod_3_0) expr_41_0) (and (implies (and true true) (and (>= expr_42_0 0) (<= expr_42_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_42_0 k_7_0) (and (implies (and true true) (and (>= expr_41_0 0) (<= expr_41_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_41_0 r_33_1) (and (ite (and true true) (= r_33_1 expr_38_1) (= r_33_1 r_33_0)) (and (implies (and true true) (and (>= expr_38_1 0) (<= expr_38_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_38_1 (ite (= expr_37_0 0) 0 r_div_mod_2_0)) (and (and (<= 0 r_div_mod_2_0) (or (= expr_37_0 0) (< r_div_mod_2_0 expr_37_0))) (and (= (+ (* d_div_mod_2_0 expr_37_0) r_div_mod_2_0) (* expr_35_0 expr_36_0)) (and (implies (and true true) (and (>= expr_37_0 0) (<= expr_37_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_37_0 k_7_0) (and (implies (and true true) (and (>= expr_36_0 0) (<= expr_36_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_36_0 y_5_0) (and (implies (and true true) (and (>= expr_35_0 0) (<= expr_35_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_35_0 x_3_0) (and true (and (implies (and true true) expr_29_1) (and (= expr_29_1 (= expr_27_1 expr_28_0)) (and (implies (and true true) true) (and (= expr_28_0 0) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (ite (= expr_26_0 0) 0 r_div_mod_1_0)) (and (and (<= 0 r_div_mod_1_0) (or (= expr_26_0 0) (< r_div_mod_1_0 expr_26_0))) (and (= (+ (* d_div_mod_1_0 expr_26_0) r_div_mod_1_0) expr_25_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 k_7_0) (and (implies (and true true) (and (>= expr_25_0 0) (<= expr_25_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_0 y_5_0) (and (implies (and true true) expr_21_1) (and (= expr_21_1 (= expr_19_1 expr_20_0)) (and (implies (and true true) true) (and (= expr_20_0 0) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (ite (= expr_18_0 0) 0 r_div_mod_0_0)) (and (and (<= 0 r_div_mod_0_0) (or (= expr_18_0 0) (< r_div_mod_0_0 expr_18_0))) (and (= (+ (* d_div_mod_0_0 expr_18_0) r_div_mod_0_0) expr_17_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 k_7_0) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_3_0) (and (implies (and true true) expr_13_1) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) (not expr_45_1))) +(declare-const |EVALEXPR_0| Int) +(assert (= |EVALEXPR_0| x_3_0)) +(declare-const |EVALEXPR_1| Int) +(assert (= |EVALEXPR_1| y_5_0)) +(declare-const |EVALEXPR_2| Int) +(assert (= |EVALEXPR_2| k_7_0)) +(declare-const |EVALEXPR_3| Int) +(assert (= |EVALEXPR_3| r_33_1)) (check-sat) (get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| |EVALEXPR_3| )) -","0x6dfb9b70f4fd9855d2893a7386ae66f33973bc556b321a3fe4cbc8616066dbfa":"(set-option :produce-models true) +","0xe77e23370248554fe4a30d7efb0fd2a5685cf56372c23572e3be6ffa872188e3":"(set-option :produce-models true) (set-option :timeout 1000) (set-logic ALL) (declare-fun |error_0| () Int) @@ -143,90 +462,31 @@ (declare-fun |crypto_0| () |crypto_type|) (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) -(declare-fun |x_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) +(declare-fun |x_3_0| () Int) +(declare-fun |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) (declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_1| () Bool) +(declare-fun |expr_13_1| () Bool) +(declare-fun |expr_17_0| () Int) (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_1| () Bool) - -(assert (and (and (and true true) (and (= expr_22_1 (= expr_20_1 expr_21_0)) (and (implies (and true true) true) (and (= expr_21_0 0) (and (implies (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (ite (= expr_19_0 0) 0 r_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 (implies (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 k_8_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_4_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))) expr_22_1)) -(check-sat) -","0x771484feb00dbca78ae6e57bb31aaa628cc933226d8f77f2678b98789bee3410":"(set-option :produce-models true) -(set-option :timeout 1000) -(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.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_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) -(declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_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_1| () Bool) +(declare-fun |expr_19_1| () Int) +(declare-fun |expr_20_0| () Int) +(declare-fun |expr_21_1| () Bool) +(declare-fun |expr_25_0| () Int) (declare-fun |expr_26_0| () Int) -(declare-fun |expr_27_0| () Int) (declare-fun |d_div_mod_1_0| () Int) (declare-fun |r_div_mod_1_0| () Int) -(declare-fun |expr_28_1| () Int) -(declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_1| () Bool) -(declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_0| (Int Int Int ) Int) -(declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_abstract_0| () Int) -(declare-fun |expr_36_0| () Int) -(declare-fun |expr_37_0| () Int) -(declare-fun |expr_38_0| () Int) -(declare-fun |d_div_mod_2_0| () Int) -(declare-fun |r_div_mod_2_0| () Int) -(declare-fun |expr_39_1| () Int) -(declare-fun |r_34_1| () Int) -(declare-fun |expr_42_0| () Int) -(declare-fun |expr_43_0| () Int) -(declare-fun |d_div_mod_3_0| () Int) -(declare-fun |r_div_mod_3_0| () Int) -(declare-fun |expr_44_1| () Int) -(declare-fun |expr_45_0| () Int) -(declare-fun |expr_46_1| () Bool) +(declare-fun |expr_27_1| () Int) +(declare-fun |expr_28_0| () Int) +(declare-fun |expr_29_1| () Bool) -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_38_0 0) (<= expr_38_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_38_0 k_8_0) (and (implies (and true true) (and (>= expr_37_0 0) (<= expr_37_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_37_0 y_6_0) (and (implies (and true true) (and (>= expr_36_0 0) (<= expr_36_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_36_0 x_4_0) (and true (and (implies (and true true) expr_30_1) (and (= expr_30_1 (= expr_28_1 expr_29_0)) (and (implies (and true true) true) (and (= expr_29_0 0) (and (implies (and true true) (and (>= expr_28_1 0) (<= expr_28_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_28_1 (ite (= expr_27_0 0) 0 r_div_mod_1_0)) (and (and (<= 0 r_div_mod_1_0) (or (= expr_27_0 0) (< r_div_mod_1_0 expr_27_0))) (and (= (+ (* d_div_mod_1_0 expr_27_0) r_div_mod_1_0) expr_26_0) (and (implies (and true true) (and (>= expr_27_0 0) (<= expr_27_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_0 k_8_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 y_6_0) (and (implies (and true true) expr_22_1) (and (= expr_22_1 (= expr_20_1 expr_21_0)) (and (implies (and true true) true) (and (= expr_21_0 0) (and (implies (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (ite (= expr_19_0 0) 0 r_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 (implies (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 k_8_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_4_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))))))))))))))))))))))) (= expr_38_0 0))) -(declare-const |EVALEXPR_0| Int) -(assert (= |EVALEXPR_0| x_4_0)) -(declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| y_6_0)) -(declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| k_8_0)) -(declare-const |EVALEXPR_3| Int) -(assert (= |EVALEXPR_3| r_34_0)) -(declare-const |EVALEXPR_4| Int) -(assert (= |EVALEXPR_4| expr_38_0)) +(assert (and (and (and true true) (and (= expr_29_1 (= expr_27_1 expr_28_0)) (and (implies (and true true) true) (and (= expr_28_0 0) (and (implies (and true true) (and (>= expr_27_1 0) (<= expr_27_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_1 (ite (= expr_26_0 0) 0 r_div_mod_1_0)) (and (and (<= 0 r_div_mod_1_0) (or (= expr_26_0 0) (< r_div_mod_1_0 expr_26_0))) (and (= (+ (* d_div_mod_1_0 expr_26_0) r_div_mod_1_0) expr_25_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 k_7_0) (and (implies (and true true) (and (>= expr_25_0 0) (<= expr_25_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_25_0 y_5_0) (and (implies (and true true) expr_21_1) (and (= expr_21_1 (= expr_19_1 expr_20_0)) (and (implies (and true true) true) (and (= expr_20_0 0) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (ite (= expr_18_0 0) 0 r_div_mod_0_0)) (and (and (<= 0 r_div_mod_0_0) (or (= expr_18_0 0) (< r_div_mod_0_0 expr_18_0))) (and (= (+ (* d_div_mod_0_0 expr_18_0) r_div_mod_0_0) expr_17_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 k_7_0) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_3_0) (and (implies (and true true) expr_13_1) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))))))))))))))) (not expr_29_1))) (check-sat) -(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| |EVALEXPR_3| |EVALEXPR_4| )) -","0x8698bcbed7fc0ea69610d085b51604707ddb0626f02e2337024e9cc6b8aa0a99":"(set-option :produce-models true) +","0xfc82eb84e497d575a4215fad375f1975380f162091264105c4c6a8655c1fc26c":"(set-option :produce-models true) (set-option :timeout 1000) (set-logic ALL) (declare-fun |error_0| () Int) @@ -241,282 +501,22 @@ (declare-fun |crypto_0| () |crypto_type|) (declare-datatypes ((|abi_type| 0)) (((|abi_type|)))) (declare-fun |abi_0| () |abi_type|) -(declare-fun |x_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) +(declare-fun |x_3_0| () Int) +(declare-fun |y_5_0| () Int) +(declare-fun |k_7_0| () Int) +(declare-fun |r_33_0| () Int) +(declare-fun |expr_11_0| () Int) (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 (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) expr_14_1)) -(check-sat) -","0x8d510ac45e72c76711f42f97e3e8e5e0c8853246dab61e3196afc73b53af1d6c":"(set-option :produce-models true) -(set-option :timeout 1000) -(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.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_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) -(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 (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))) (not expr_14_1))) -(check-sat) -","0x9474fe70e20388a6a89c9372087fdee959017369fec8167e36b56006519b2705":"(set-option :produce-models true) -(set-option :timeout 1000) -(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.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_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) -(declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_1| () Bool) +(declare-fun |expr_13_1| () Bool) +(declare-fun |expr_17_0| () Int) (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_1| () Bool) -(declare-fun |expr_26_0| () Int) -(declare-fun |expr_27_0| () Int) -(declare-fun |d_div_mod_1_0| () Int) -(declare-fun |r_div_mod_1_0| () Int) -(declare-fun |expr_28_1| () Int) -(declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_1| () Bool) +(declare-fun |expr_19_1| () Int) +(declare-fun |expr_20_0| () Int) +(declare-fun |expr_21_1| () Bool) -(assert (and (and (and true true) (and (= expr_30_1 (= expr_28_1 expr_29_0)) (and (implies (and true true) true) (and (= expr_29_0 0) (and (implies (and true true) (and (>= expr_28_1 0) (<= expr_28_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_28_1 (ite (= expr_27_0 0) 0 r_div_mod_1_0)) (and (and (<= 0 r_div_mod_1_0) (or (= expr_27_0 0) (< r_div_mod_1_0 expr_27_0))) (and (= (+ (* d_div_mod_1_0 expr_27_0) r_div_mod_1_0) expr_26_0) (and (implies (and true true) (and (>= expr_27_0 0) (<= expr_27_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_0 k_8_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 y_6_0) (and (implies (and true true) expr_22_1) (and (= expr_22_1 (= expr_20_1 expr_21_0)) (and (implies (and true true) true) (and (= expr_21_0 0) (and (implies (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (ite (= expr_19_0 0) 0 r_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 (implies (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 k_8_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_4_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))))))))))))))) expr_30_1)) -(check-sat) -","0x99b9884facc2c9163b47237d17b3729d079024137109442158168f9477495d9e":"(set-option :produce-models true) -(set-option :timeout 1000) -(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.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_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) -(declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_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_1| () Bool) -(declare-fun |expr_26_0| () Int) -(declare-fun |expr_27_0| () Int) -(declare-fun |d_div_mod_1_0| () Int) -(declare-fun |r_div_mod_1_0| () Int) -(declare-fun |expr_28_1| () Int) -(declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_1| () Bool) -(declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_0| (Int Int Int ) Int) -(declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_abstract_0| () Int) -(declare-fun |expr_36_0| () Int) -(declare-fun |expr_37_0| () Int) -(declare-fun |expr_38_0| () Int) -(declare-fun |d_div_mod_2_0| () Int) -(declare-fun |r_div_mod_2_0| () Int) -(declare-fun |expr_39_1| () Int) -(declare-fun |r_34_1| () Int) -(declare-fun |expr_42_0| () Int) -(declare-fun |expr_43_0| () Int) -(declare-fun |d_div_mod_3_0| () Int) -(declare-fun |r_div_mod_3_0| () Int) -(declare-fun |expr_44_1| () Int) -(declare-fun |expr_45_0| () Int) -(declare-fun |expr_46_1| () Bool) - -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_43_0 0) (<= expr_43_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_43_0 k_8_0) (and (implies (and true true) (and (>= expr_42_0 0) (<= expr_42_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_42_0 r_34_1) (and (ite (and true true) (= r_34_1 expr_39_1) (= r_34_1 r_34_0)) (and (implies (and true true) (and (>= expr_39_1 0) (<= expr_39_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_39_1 (ite (= expr_38_0 0) 0 r_div_mod_2_0)) (and (and (<= 0 r_div_mod_2_0) (or (= expr_38_0 0) (< r_div_mod_2_0 expr_38_0))) (and (= (+ (* d_div_mod_2_0 expr_38_0) r_div_mod_2_0) (* expr_36_0 expr_37_0)) (and (implies (and true true) (and (>= expr_38_0 0) (<= expr_38_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_38_0 k_8_0) (and (implies (and true true) (and (>= expr_37_0 0) (<= expr_37_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_37_0 y_6_0) (and (implies (and true true) (and (>= expr_36_0 0) (<= expr_36_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_36_0 x_4_0) (and true (and (implies (and true true) expr_30_1) (and (= expr_30_1 (= expr_28_1 expr_29_0)) (and (implies (and true true) true) (and (= expr_29_0 0) (and (implies (and true true) (and (>= expr_28_1 0) (<= expr_28_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_28_1 (ite (= expr_27_0 0) 0 r_div_mod_1_0)) (and (and (<= 0 r_div_mod_1_0) (or (= expr_27_0 0) (< r_div_mod_1_0 expr_27_0))) (and (= (+ (* d_div_mod_1_0 expr_27_0) r_div_mod_1_0) expr_26_0) (and (implies (and true true) (and (>= expr_27_0 0) (<= expr_27_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_0 k_8_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 y_6_0) (and (implies (and true true) expr_22_1) (and (= expr_22_1 (= expr_20_1 expr_21_0)) (and (implies (and true true) true) (and (= expr_21_0 0) (and (implies (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (ite (= expr_19_0 0) 0 r_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 (implies (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 k_8_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_4_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))))))))))))))))))))))))))))))))))) (= expr_43_0 0))) -(declare-const |EVALEXPR_0| Int) -(assert (= |EVALEXPR_0| x_4_0)) -(declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| y_6_0)) -(declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| k_8_0)) -(declare-const |EVALEXPR_3| Int) -(assert (= |EVALEXPR_3| r_34_1)) -(declare-const |EVALEXPR_4| Int) -(assert (= |EVALEXPR_4| expr_43_0)) -(check-sat) -(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| |EVALEXPR_3| |EVALEXPR_4| )) -","0xb1b8edd8297fdf49e468f0bad44857c5fbf4dce9c8cc5b72536b62ce9c26f212":"(set-option :produce-models true) -(set-option :timeout 1000) -(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.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_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) -(declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_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_1| () Bool) - -(assert (and (and (and true true) (and (= expr_22_1 (= expr_20_1 expr_21_0)) (and (implies (and true true) true) (and (= expr_21_0 0) (and (implies (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (ite (= expr_19_0 0) 0 r_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 (implies (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 k_8_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_4_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))) (not expr_22_1))) -(check-sat) -","0xc4635a10752cbcb093cc7ecf3f951b561da6050c9ba21e8d218b53119d393df5":"(set-option :produce-models true) -(set-option :timeout 1000) -(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.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_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) -(declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_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_1| () Bool) -(declare-fun |expr_26_0| () Int) -(declare-fun |expr_27_0| () Int) -(declare-fun |d_div_mod_1_0| () Int) -(declare-fun |r_div_mod_1_0| () Int) -(declare-fun |expr_28_1| () Int) -(declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_1| () Bool) -(declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_0| (Int Int Int ) Int) -(declare-fun |t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_abstract_0| () Int) -(declare-fun |expr_36_0| () Int) -(declare-fun |expr_37_0| () Int) -(declare-fun |expr_38_0| () Int) -(declare-fun |d_div_mod_2_0| () Int) -(declare-fun |r_div_mod_2_0| () Int) -(declare-fun |expr_39_1| () Int) -(declare-fun |r_34_1| () Int) -(declare-fun |expr_42_0| () Int) -(declare-fun |expr_43_0| () Int) -(declare-fun |d_div_mod_3_0| () Int) -(declare-fun |r_div_mod_3_0| () Int) -(declare-fun |expr_44_1| () Int) -(declare-fun |expr_45_0| () Int) -(declare-fun |expr_46_1| () Bool) - -(assert (and (and (and true true) (and (implies (and true true) (and (>= expr_27_0 0) (<= expr_27_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_0 k_8_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 y_6_0) (and (implies (and true true) expr_22_1) (and (= expr_22_1 (= expr_20_1 expr_21_0)) (and (implies (and true true) true) (and (= expr_21_0 0) (and (implies (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (ite (= expr_19_0 0) 0 r_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 (implies (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 k_8_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_4_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true)))))))))))))))))))))))))))) (= expr_27_0 0))) -(declare-const |EVALEXPR_0| Int) -(assert (= |EVALEXPR_0| x_4_0)) -(declare-const |EVALEXPR_1| Int) -(assert (= |EVALEXPR_1| y_6_0)) -(declare-const |EVALEXPR_2| Int) -(assert (= |EVALEXPR_2| k_8_0)) -(declare-const |EVALEXPR_3| Int) -(assert (= |EVALEXPR_3| r_34_0)) -(declare-const |EVALEXPR_4| Int) -(assert (= |EVALEXPR_4| expr_27_0)) -(check-sat) -(get-value (|EVALEXPR_0| |EVALEXPR_1| |EVALEXPR_2| |EVALEXPR_3| |EVALEXPR_4| )) -","0xed5829705f3a2629f3f7d8b49ae64536cf54cf8fc99fa84537c7478b080810a4":"(set-option :produce-models true) -(set-option :timeout 1000) -(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.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_4_0| () Int) -(declare-fun |y_6_0| () Int) -(declare-fun |k_8_0| () Int) -(declare-fun |r_34_0| () Int) -(declare-fun |expr_12_0| () Int) -(declare-fun |expr_13_0| () Int) -(declare-fun |expr_14_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_1| () Bool) -(declare-fun |expr_26_0| () Int) -(declare-fun |expr_27_0| () Int) -(declare-fun |d_div_mod_1_0| () Int) -(declare-fun |r_div_mod_1_0| () Int) -(declare-fun |expr_28_1| () Int) -(declare-fun |expr_29_0| () Int) -(declare-fun |expr_30_1| () Bool) - -(assert (and (and (and true true) (and (= expr_30_1 (= expr_28_1 expr_29_0)) (and (implies (and true true) true) (and (= expr_29_0 0) (and (implies (and true true) (and (>= expr_28_1 0) (<= expr_28_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_28_1 (ite (= expr_27_0 0) 0 r_div_mod_1_0)) (and (and (<= 0 r_div_mod_1_0) (or (= expr_27_0 0) (< r_div_mod_1_0 expr_27_0))) (and (= (+ (* d_div_mod_1_0 expr_27_0) r_div_mod_1_0) expr_26_0) (and (implies (and true true) (and (>= expr_27_0 0) (<= expr_27_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_27_0 k_8_0) (and (implies (and true true) (and (>= expr_26_0 0) (<= expr_26_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_26_0 y_6_0) (and (implies (and true true) expr_22_1) (and (= expr_22_1 (= expr_20_1 expr_21_0)) (and (implies (and true true) true) (and (= expr_21_0 0) (and (implies (and true true) (and (>= expr_20_1 0) (<= expr_20_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_20_1 (ite (= expr_19_0 0) 0 r_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 (implies (and true true) (and (>= expr_19_0 0) (<= expr_19_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_0 k_8_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 x_4_0) (and (implies (and true true) expr_14_1) (and (= expr_14_1 (> expr_12_0 expr_13_0)) (and (implies (and true true) true) (and (= expr_13_0 0) (and (implies (and true true) (and (>= expr_12_0 0) (<= expr_12_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_12_0 k_8_0) (and (and (>= k_8_0 0) (<= k_8_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_6_0 0) (<= y_6_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_34_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))))))))))))))) (not expr_30_1))) +(assert (and (and (and true true) (and (= expr_21_1 (= expr_19_1 expr_20_0)) (and (implies (and true true) true) (and (= expr_20_0 0) (and (implies (and true true) (and (>= expr_19_1 0) (<= expr_19_1 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_19_1 (ite (= expr_18_0 0) 0 r_div_mod_0_0)) (and (and (<= 0 r_div_mod_0_0) (or (= expr_18_0 0) (< r_div_mod_0_0 expr_18_0))) (and (= (+ (* d_div_mod_0_0 expr_18_0) r_div_mod_0_0) expr_17_0) (and (implies (and true true) (and (>= expr_18_0 0) (<= expr_18_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_18_0 k_7_0) (and (implies (and true true) (and (>= expr_17_0 0) (<= expr_17_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_17_0 x_3_0) (and (implies (and true true) expr_13_1) (and (= expr_13_1 (> expr_11_0 expr_12_0)) (and (implies (and true true) true) (and (= expr_12_0 0) (and (implies (and true true) (and (>= expr_11_0 0) (<= expr_11_0 115792089237316195423570985008687907853269984665640564039457584007913129639935))) (and (= expr_11_0 k_7_0) (and (and (>= k_7_0 0) (<= k_7_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= y_5_0 0) (<= y_5_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (and (>= x_3_0 0) (<= x_3_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) (and (= r_33_0 0) (and (and (and (and (and (and (and (and (and (and (and (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) 3204897777)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 0) 191)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 1) 6)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 2) 219)) (= (select (|bytes_tuple_accessor_array| (|msg.data| tx_0)) 3) 241)) (>= (|bytes_tuple_accessor_length| (|msg.data| tx_0)) 4))) true))))))))))))))))))))))) expr_21_1)) (check-sat) "}},"errors":[{"component":"general","errorCode":"7812","formattedMessage":"Warning: BMC: Assertion violation might happen here. --> A:6:85: @@ -525,4 +525,4 @@ | ^^^^^^^^^^^^^^^^^^ Note: -","message":"BMC: Assertion violation might happen here.","secondarySourceLocations":[{"message":""}],"severity":"warning","sourceLocation":{"end":258,"file":"A","start":240},"type":"Warning"}],"sources":{"A":{"id":0}}} +","message":"BMC: Assertion violation might happen here.","secondarySourceLocations":[{"message":""}],"severity":"warning","sourceLocation":{"end":227,"file":"A","start":209},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_timeout_chc/input.json b/test/cmdlineTests/standard_model_checker_timeout_chc/input.json index 2e54455fb..156f9580d 100644 --- a/test/cmdlineTests/standard_model_checker_timeout_chc/input.json +++ b/test/cmdlineTests/standard_model_checker_timeout_chc/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract test {\nfunction f(uint x, uint y, uint k) public pure {\nrequire(k > 0); require(x % k == 0); require(y % k == 0); uint r = mulmod(x, y, k); assert(r % k == 0);}}" + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract test {\nfunction f(uint x, uint y, uint k) public pure {\nrequire(k > 0); require(x % k == 0); require(y % k == 0); uint r = mulmod(x, y, k); assert(r % k == 0);}}" } }, "settings": diff --git a/test/cmdlineTests/standard_model_checker_timeout_chc/output.json b/test/cmdlineTests/standard_model_checker_timeout_chc/output.json index 907d2fdeb..34de85f8f 100644 --- a/test/cmdlineTests/standard_model_checker_timeout_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_timeout_chc/output.json @@ -4,4 +4,4 @@ 6 | require(k > 0); require(x % k == 0); require(y % k == 0); uint r = mulmod(x, y, k); assert(r % k == 0);}} | ^^^^^^^^^^^^^^^^^^ -","message":"CHC: Assertion violation might happen here.","severity":"warning","sourceLocation":{"end":258,"file":"A","start":240},"type":"Warning"}],"sources":{"A":{"id":0}}} +","message":"CHC: Assertion violation might happen here.","severity":"warning","sourceLocation":{"end":227,"file":"A","start":209},"type":"Warning"}],"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_model_checker_timeout_wrong_key/input.json b/test/cmdlineTests/standard_model_checker_timeout_wrong_key/input.json index b0196d3be..bcfdaf832 100644 --- a/test/cmdlineTests/standard_model_checker_timeout_wrong_key/input.json +++ b/test/cmdlineTests/standard_model_checker_timeout_wrong_key/input.json @@ -4,7 +4,7 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }" + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\n\ncontract C { function f(uint x) public pure { assert(x > 0); } }" } }, "settings": diff --git a/test/cmdlineTests/standard_model_checker_timeout_wrong_value/input.json b/test/cmdlineTests/standard_model_checker_timeout_wrong_value/input.json index 86a17c1d9..52187cc88 100644 --- a/test/cmdlineTests/standard_model_checker_timeout_wrong_value/input.json +++ b/test/cmdlineTests/standard_model_checker_timeout_wrong_value/input.json @@ -4,13 +4,14 @@ { "A": { - "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }" + "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", "timeout": "asd" } } From 8a7e94c06f31c894f0b9501f5ddc6a7559f22e27 Mon Sep 17 00:00:00 2001 From: Leonardo Alt Date: Thu, 1 Apr 2021 11:58:04 +0200 Subject: [PATCH 7/7] Keep pragma in smoke test for bytecode compare script --- test/libsolidity/smtCheckerTests/simple/smoke_test.sol | 2 +- test/scripts/fixtures/smt_smoke_test.sol | 3 +++ test/scripts/test_bytecodecompare_prepare_report.py | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 test/scripts/fixtures/smt_smoke_test.sol diff --git a/test/libsolidity/smtCheckerTests/simple/smoke_test.sol b/test/libsolidity/smtCheckerTests/simple/smoke_test.sol index ec605f31a..ad7202bf3 100644 --- a/test/libsolidity/smtCheckerTests/simple/smoke_test.sol +++ b/test/libsolidity/smtCheckerTests/simple/smoke_test.sol @@ -1,4 +1,4 @@ contract C { } // ==== -// SMTEngine: all \ No newline at end of file +// SMTEngine: all diff --git a/test/scripts/fixtures/smt_smoke_test.sol b/test/scripts/fixtures/smt_smoke_test.sol new file mode 100644 index 000000000..8b7b77da6 --- /dev/null +++ b/test/scripts/fixtures/smt_smoke_test.sol @@ -0,0 +1,3 @@ +pragma experimental SMTChecker; +contract C { +} diff --git a/test/scripts/test_bytecodecompare_prepare_report.py b/test/scripts/test_bytecodecompare_prepare_report.py index b5c73794f..e0a8ca76a 100644 --- a/test/scripts/test_bytecodecompare_prepare_report.py +++ b/test/scripts/test_bytecodecompare_prepare_report.py @@ -14,8 +14,8 @@ from bytecodecompare.prepare_report import load_source, parse_cli_output, parse_ # pragma pylint: enable=import-error -SMT_SMOKE_TEST_SOL_PATH = LIBSOLIDITY_TEST_DIR / 'smtCheckerTests/simple/smoke_test.sol' -SMT_SMOKE_TEST_SOL_CODE = load_libsolidity_test_case(SMT_SMOKE_TEST_SOL_PATH) +SMT_SMOKE_TEST_SOL_PATH = FIXTURE_DIR / 'smt_smoke_test.sol' +SMT_SMOKE_TEST_SOL_CODE = load_fixture(SMT_SMOKE_TEST_SOL_PATH) SMT_CONTRACT_WITH_LF_NEWLINES_SOL_PATH = FIXTURE_DIR / 'smt_contract_with_lf_newlines.sol' SMT_CONTRACT_WITH_CRLF_NEWLINES_SOL_PATH = FIXTURE_DIR / 'smt_contract_with_crlf_newlines.sol'