Skip to content

Hevm equivalence check throwing an error #704

Open
@tushar994

Description

@tushar994

The command I am running is

hevm equivalence --code-a 608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80633fb5c1cb146100385780638381f58a14610054575b5f5ffd5b610052600480360381019061004d91906100c8565b610072565b005b61005c61008c565b6040516100699190610102565b60405180910390f35b805f5f8282546100829190610148565b9250508190555050565b5f5481565b5f5ffd5b5f819050919050565b6100a781610095565b81146100b1575f5ffd5b50565b5f813590506100c28161009e565b92915050565b5f602082840312156100dd576100dc610091565b5b5f6100ea848285016100b4565b91505092915050565b6100fc81610095565b82525050565b5f6020820190506101155f8301846100f3565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61015282610095565b915061015d83610095565b92508282019050808211156101755761017461011b565b5b9291505056fea2646970667358221220d3af46c99e5d9e0fc933da0a569d75413330778d3a2e28db122e27fb3f236d4164736f6c634300081d0033 --code-b 608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80633fb5c1cb146100385780638381f58a14610054575b5f5ffd5b610052600480360381019061004d9190610142565b610072565b005b61005c610106565b604051610069919061017c565b60405180910390f35b5f81905060038161008391906101ef565b5f5f828254610092919061021f565b925050819055506003816100a691906101ef565b5f5f8282546100b5919061021f565b925050819055506003816100c991906101ef565b5f5f8282546100d8919061021f565b925050819055506003816100ec9190610252565b5f5f8282546100fb919061021f565b925050819055505050565b5f5481565b5f5ffd5b5f819050919050565b6101218161010f565b811461012b575f5ffd5b50565b5f8135905061013c81610118565b92915050565b5f602082840312156101575761015661010b565b5b5f6101648482850161012e565b91505092915050565b6101768161010f565b82525050565b5f60208201905061018f5f83018461016d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6101f98261010f565b91506102048361010f565b92508261021457610213610195565b5b828204905092915050565b5f6102298261010f565b91506102348361010f565b925082820190508082111561024c5761024b6101c2565b5b92915050565b5f61025c8261010f565b91506102678361010f565b92508261027757610276610195565b5b82820690509291505056fea2646970667358221220477ea9032b5db6339f130d329d1be8b73d69bb61eed4ebf7fb82c1dbac264a6b64736f6c634300081d0033

The two contracts it is checking equivalence for is

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

contract MyContract {
    uint256 public number=1;

    function setNumber(uint256 newNumber) public {
        number += newNumber;
    }
}

and

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

contract MyContract {
    uint256 public number=1;

    function setNumber(uint256 newNumber) public {
        uint256 newNumber2 = newNumber;
        number += (newNumber2/3);
        number += (newNumber2/3);
        number += (newNumber2/3);
        number += (newNumber2%3);
    }
}

I compiled and got the bytecodes for the two files using solc --bin-runtime "file.sol" | tail -n1.

The error I get is

Found 70 total pairs of endstates
Asking the SMT solver for 50 pairs

Reuse of previous queries was Useful in 0 cases
No discrepancies found
But the following issues occurred:
      4x -> SMT result timeout/unknown

am I doing something wrong?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions