A tool to prove two x86 binary functions equivalent.
This runs def-unrolled twice, once for each executable, and then tries to prove the two resulting lifted computations equal using rewriting and SMT solving.
(prove-functions-equivalent executable1 target1 inputs1 output1 executable2 target2 inputs2 output2 &key :extra-rules ; default nil :count-hits ; default :auto :print ; default :auto )
The first executable. Usually a string (a filename).
The target to lift in the first executable. See the
:target option of def-unrolled.
Information about the inputs of the first executable. See the
:inputs option of def-unrolled. Corresponding inputs should have the same names in the:inputs2 below.
Which output to extract from the first executable. See the
:output option of def-unrolled.
The second executable. Usually a string (a filename).
The target to lift in the second executable. See the
:target option of def-unrolled.
Information about the inputs of the second executable. See the
:inputs option of def-unrolled. Corresponding inputs should have the same names in the:inputs1 above.
Which output to extract from the second executable. See the
:output option of def-unrolled.
Extra rules to use during lifting.
Whether to count rewrite rule hits.
Verbosity level.