Skip to content

Postconditions for Stack Behavior of Opcode And #629

Answered by DavePearce
gaxiiiiiiiiiiii asked this question in Q&A
Discussion options

You must be logged in to vote

Unfortunately, And is a real problem when attempting to verify real-world contracts. The problem stems from the use of bitvectors (i.e. bv256) which are simply not well supported. In the WETH proof, we use alternative implementations (e.g. AndU1(), AndU160(), etc) when it makes sense to do so. These do not use bv256, but are only applicable in certain (albeit quite common) situations.

Realistically the changes you made above, whilst they may work in a particular situation, are likely to be very brittle. That is, they won't work in many other situations. Its not clear to me even why that change (i.e. inlining lhs, rhs) would make any difference. But, it probably just affects the ordering o…

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by gaxiiiiiiiiiiii
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants