Simulations of the arithmetic file
clarus opened this issue · comments
Guillaume Claret commented
We focus on verifying the Paris version of the EVM. We will start with the arithmetic.py
file that describes the primitive arithmetic operations. The relevant files are:
- the Python source file: https://github.com/ethereum/execution-specs/blob/master/src/ethereum/paris/vm/instructions/arithmetic.py
- the translated version in Coq: https://github.com/formal-land/coq-of-python/blob/main/CoqOfPython/ethereum/paris/vm/instructions/arithmetic.v (generated)
- the simulation (written by hand): https://github.com/formal-land/coq-of-python/blob/main/CoqOfPython/ethereum/paris/vm/instructions/simulations/arithmetic.v
- the proof of equivalence between the simulation and the translated code: https://github.com/formal-land/coq-of-python/blob/main/CoqOfPython/ethereum/paris/vm/instructions/proofs/arithmetic.v (not working yet)
The goal of this task is to complete the simulation file to have a definition for rest of the functions:
-
add
-
sub
-
mul
-
div
-
sdiv
-
mod
-
smod
-
addmod
-
mulmod
-
exp
-
signextend
This might require adding some definitions for functions in other files as well, when they are called. For now, only the add
function is defined.