syntax Int ::= bitsInWords ( Int ) [function]
// ---------------------------------------------
rule bitsInWords(I) => I up/Int 256
syntax Int ::= bytesInWords ( Int ) [function]
// ----------------------------------------------
rule bytesInWords(I) => I up/Int 8
// Result size of SHA3 is 256 bits, i.e., 4 words.
rule #memory [ REG = sha3 _ ] => #registerDelta(REG, bitsInWords(256))
From https://github.com/runtimeverification/iele-semantics/blob/master/data.md you get the following:
However the two definitions cannot both be true and also the 'bitsInWords' definition does not match the definition of Sha3 in https://github.com/runtimeverification/iele-semantics/blob/master/iele-gas.md
Changing this to
up/Int 64causes some of the tests/iele/ERC20/transfer_Caller-Zero.iele.json.test test to fail.