Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Instances For
(328)
Equations
Instances For
Equations
Instances For
NB we currently run in 'this' monad because of the way YP interleaves the definition of C
with the definition of C_<>
functions that are described inline along with their operations.
It would be worth restructing everything to obtain cleaner separation of concerns.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
(328)
Equations
Instances For
CHECK -
In YP we have Cselfdestruct(σ, μ)
; if we were to compute Aₐ
that we need, we would need an
address in σ
- is this address supposed to be obvious?
CURRENT SOLUTION -
We take EVM.State
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
NB Assumes stack coherency.
Equations
Instances For
Equations
- EvmYul.EVM.Cnew t val σ = if (EvmYul.State.dead σ t && val != { val := 0 }) = true then GasConstants.Gnewaccount else 0
Instances For
Equations
- EvmYul.EVM.Cxfer val = if (val != { val := 0 }) = true then GasConstants.Gcallvalue else 0
Instances For
Equations
- EvmYul.EVM.Cextra t r val σ A = EvmYul.EVM.Caccess t A + EvmYul.EVM.Cxfer val + EvmYul.EVM.Cnew r val σ
Instances For
Equations
- EvmYul.EVM.Cgascap t r val g σ μ A = if μ.gasAvailable.toNat ≥ EvmYul.EVM.Cextra t r val σ A then EvmYul.EVM.L (μ.gasAvailable.toNat - EvmYul.EVM.Cextra t r val σ A) ⊓ g.toNat else g.toNat
Instances For
Equations
- EvmYul.EVM.Ccallgas t r { val := 0 } g σ μ A = EvmYul.EVM.Cgascap t r { val := 0 } g σ μ A
- EvmYul.EVM.Ccallgas t r val g σ μ A = EvmYul.EVM.Cgascap t r val g σ μ A + GasConstants.Gcallstipend
Instances For
NB Assumes stack coherence.
Equations
- EvmYul.EVM.Ccall t r val g σ μ A = EvmYul.EVM.Cgascap t r val g σ μ A + EvmYul.EVM.Cextra t r val σ A
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
H.1. Gas Cost - the third summand.
NB Stack accesses are assumed guarded here and we access with !
.
This is for keeping in sync with the way the YP is structures, at least for the time being.
Instances For
H.1. Gas Cost
NB this differs ever so slightly from how it is defined in the YP, please refer to
EVM/Semantics.lean
, function X
for further discussion.
Equations
- EvmYul.EVM.memoryExpansionCost s instr = EvmYul.EVM.Cₘ (EvmYul.EVM.memoryExpansionCost.μᵢ' s instr) - EvmYul.EVM.Cₘ s.activeWords