- add : stackOps_op
- sub : stackOps_op
- div : stackOps_op
- sdiv : stackOps_op
- mod : stackOps_op
- smod : stackOps_op
- addmod : stackOps_op
- mulmod : stackOps_op
- exp : stackOps_op
- signextend : stackOps_op
- lt : stackOps_op
- gt : stackOps_op
- slt : stackOps_op
- sgt : stackOps_op
- eq : stackOps_op
- iszero : stackOps_op
- and : stackOps_op
- or : stackOps_op
- xor : stackOps_op
- not : stackOps_op
- byte : stackOps_op
- shl : stackOps_op
- shr : stackOps_op
- sar : stackOps_op
Instances For
Equations
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
@[reducible, inline]
Equations
Instances For
Equations
- StackOpsSummary.stackOps_op.add.get = StackOpsSummary.add_instr
- StackOpsSummary.stackOps_op.sub.get = StackOpsSummary.sub_instr
- StackOpsSummary.stackOps_op.div.get = StackOpsSummary.div_instr
- StackOpsSummary.stackOps_op.sdiv.get = StackOpsSummary.sdiv_instr
- StackOpsSummary.stackOps_op.mod.get = StackOpsSummary.mod_instr
- StackOpsSummary.stackOps_op.smod.get = StackOpsSummary.smod_instr
- StackOpsSummary.stackOps_op.addmod.get = StackOpsSummary.addmod_instr
- StackOpsSummary.stackOps_op.mulmod.get = StackOpsSummary.mulmod_instr
- StackOpsSummary.stackOps_op.exp.get = StackOpsSummary.exp_instr
- StackOpsSummary.stackOps_op.signextend.get = StackOpsSummary.signextend_instr
- StackOpsSummary.stackOps_op.lt.get = StackOpsSummary.lt_instr
- StackOpsSummary.stackOps_op.gt.get = StackOpsSummary.gt_instr
- StackOpsSummary.stackOps_op.slt.get = StackOpsSummary.slt_instr
- StackOpsSummary.stackOps_op.sgt.get = StackOpsSummary.sgt_instr
- StackOpsSummary.stackOps_op.eq.get = StackOpsSummary.eq_instr
- StackOpsSummary.stackOps_op.iszero.get = StackOpsSummary.iszero_instr
- StackOpsSummary.stackOps_op.and.get = StackOpsSummary.and_instr
- StackOpsSummary.stackOps_op.or.get = StackOpsSummary.or_instr
- StackOpsSummary.stackOps_op.xor.get = StackOpsSummary.xor_instr
- StackOpsSummary.stackOps_op.not.get = StackOpsSummary.not_instr
- StackOpsSummary.stackOps_op.byte.get = StackOpsSummary.byte_instr
- StackOpsSummary.stackOps_op.shl.get = StackOpsSummary.shl_instr
- StackOpsSummary.stackOps_op.shr.get = StackOpsSummary.shr_instr
- StackOpsSummary.stackOps_op.sar.get = StackOpsSummary.sar_instr
Instances For
Equations
- StackOpsSummary.stackOps_op.add.t = (StackOpsSummary.add_instr.get StackOpsSummary.stackOps_op.t.proof_1).1
- StackOpsSummary.stackOps_op.sub.t = (StackOpsSummary.sub_instr.get StackOpsSummary.stackOps_op.t.proof_2).1
- StackOpsSummary.stackOps_op.div.t = (StackOpsSummary.div_instr.get StackOpsSummary.stackOps_op.t.proof_3).1
- StackOpsSummary.stackOps_op.sdiv.t = (StackOpsSummary.sdiv_instr.get StackOpsSummary.stackOps_op.t.proof_4).1
- StackOpsSummary.stackOps_op.mod.t = (StackOpsSummary.mod_instr.get StackOpsSummary.stackOps_op.t.proof_5).1
- StackOpsSummary.stackOps_op.smod.t = (StackOpsSummary.smod_instr.get StackOpsSummary.stackOps_op.t.proof_6).1
- StackOpsSummary.stackOps_op.addmod.t = (StackOpsSummary.addmod_instr.get StackOpsSummary.stackOps_op.t.proof_7).1
- StackOpsSummary.stackOps_op.mulmod.t = (StackOpsSummary.mulmod_instr.get StackOpsSummary.stackOps_op.t.proof_8).1
- StackOpsSummary.stackOps_op.exp.t = (StackOpsSummary.exp_instr.get StackOpsSummary.stackOps_op.t.proof_9).1
- StackOpsSummary.stackOps_op.signextend.t = (StackOpsSummary.signextend_instr.get StackOpsSummary.stackOps_op.t.proof_10).1
- StackOpsSummary.stackOps_op.lt.t = (StackOpsSummary.lt_instr.get StackOpsSummary.stackOps_op.t.proof_11).1
- StackOpsSummary.stackOps_op.gt.t = (StackOpsSummary.gt_instr.get StackOpsSummary.stackOps_op.t.proof_12).1
- StackOpsSummary.stackOps_op.slt.t = (StackOpsSummary.slt_instr.get StackOpsSummary.stackOps_op.t.proof_13).1
- StackOpsSummary.stackOps_op.sgt.t = (StackOpsSummary.sgt_instr.get StackOpsSummary.stackOps_op.t.proof_14).1
- StackOpsSummary.stackOps_op.eq.t = (StackOpsSummary.eq_instr.get StackOpsSummary.stackOps_op.t.proof_15).1
- StackOpsSummary.stackOps_op.iszero.t = (StackOpsSummary.iszero_instr.get StackOpsSummary.stackOps_op.t.proof_16).1
- StackOpsSummary.stackOps_op.and.t = (StackOpsSummary.and_instr.get StackOpsSummary.stackOps_op.t.proof_17).1
- StackOpsSummary.stackOps_op.or.t = (StackOpsSummary.or_instr.get StackOpsSummary.stackOps_op.t.proof_18).1
- StackOpsSummary.stackOps_op.xor.t = (StackOpsSummary.xor_instr.get StackOpsSummary.stackOps_op.t.proof_19).1
- StackOpsSummary.stackOps_op.not.t = (StackOpsSummary.not_instr.get StackOpsSummary.stackOps_op.t.proof_20).1
- StackOpsSummary.stackOps_op.byte.t = (StackOpsSummary.byte_instr.get StackOpsSummary.stackOps_op.t.proof_21).1
- StackOpsSummary.stackOps_op.shl.t = (StackOpsSummary.shl_instr.get StackOpsSummary.stackOps_op.t.proof_22).1
- StackOpsSummary.stackOps_op.shr.t = (StackOpsSummary.shr_instr.get StackOpsSummary.stackOps_op.t.proof_23).1
- StackOpsSummary.stackOps_op.sar.t = (StackOpsSummary.sar_instr.get StackOpsSummary.stackOps_op.t.proof_24).1
Instances For
Equations
- StackOpsSummary.EVM.step_stackOps op gas gasCost = EvmYul.EVM.step gas gasCost op.get
Instances For
Equations
Instances For
Equations
- StackOpsSummary.stackOps_op.add.do word₁ word₂ word₃ = word₁ + word₂
- StackOpsSummary.stackOps_op.sub.do word₁ word₂ word₃ = word₁ - word₂
- StackOpsSummary.stackOps_op.div.do word₁ word₂ word₃ = word₁ / word₂
- StackOpsSummary.stackOps_op.sdiv.do word₁ word₂ word₃ = word₁.sdiv word₂
- StackOpsSummary.stackOps_op.mod.do word₁ word₂ word₃ = word₁.mod word₂
- StackOpsSummary.stackOps_op.smod.do word₁ word₂ word₃ = word₁.smod word₂
- StackOpsSummary.stackOps_op.addmod.do word₁ word₂ word₃ = word₁.addMod word₂ word₃
- StackOpsSummary.stackOps_op.mulmod.do word₁ word₂ word₃ = word₁.mulMod word₂ word₃
- StackOpsSummary.stackOps_op.exp.do word₁ word₂ word₃ = word₁.exp word₂
- StackOpsSummary.stackOps_op.signextend.do word₁ word₂ word₃ = word₁.signextend word₂
- StackOpsSummary.stackOps_op.lt.do word₁ word₂ word₃ = word₁.lt word₂
- StackOpsSummary.stackOps_op.gt.do word₁ word₂ word₃ = word₁.gt word₂
- StackOpsSummary.stackOps_op.slt.do word₁ word₂ word₃ = word₁.slt word₂
- StackOpsSummary.stackOps_op.sgt.do word₁ word₂ word₃ = word₁.sgt word₂
- StackOpsSummary.stackOps_op.eq.do word₁ word₂ word₃ = word₁.eq word₂
- StackOpsSummary.stackOps_op.iszero.do word₁ word₂ word₃ = word₁.isZero
- StackOpsSummary.stackOps_op.and.do word₁ word₂ word₃ = word₁.land word₂
- StackOpsSummary.stackOps_op.or.do word₁ word₂ word₃ = word₁.lor word₂
- StackOpsSummary.stackOps_op.xor.do word₁ word₂ word₃ = word₁.xor word₂
- StackOpsSummary.stackOps_op.not.do word₁ word₂ word₃ = word₁.lnot
- StackOpsSummary.stackOps_op.byte.do word₁ word₂ word₃ = word₁.byteAt word₂
- StackOpsSummary.stackOps_op.shl.do word₁ word₂ word₃ = flip EvmYul.UInt256.shiftLeft word₁ word₂
- StackOpsSummary.stackOps_op.shr.do word₁ word₂ word₃ = flip EvmYul.UInt256.shiftRight word₁ word₂
- StackOpsSummary.stackOps_op.sar.do word₁ word₂ word₃ = word₁.sar word₂
Instances For
def
StackOpsSummary.stackOps_op.stack
(op : stackOps_op)
(word₁ word₂ word₃ : EvmYul.UInt256)
(symStack : EvmYul.Stack EvmYul.UInt256)
:
Equations
- StackOpsSummary.stackOps_op.iszero.stack word₁ word₂ word₃ symStack = word₁ :: symStack
- StackOpsSummary.stackOps_op.not.stack word₁ word₂ word₃ symStack = word₁ :: symStack
- StackOpsSummary.stackOps_op.addmod.stack word₁ word₂ word₃ symStack = word₁ :: word₂ :: word₃ :: symStack
- StackOpsSummary.stackOps_op.mulmod.stack word₁ word₂ word₃ symStack = word₁ :: word₂ :: word₃ :: symStack
- op.stack word₁ word₂ word₃ symStack = word₁ :: word₂ :: symStack
Instances For
theorem
StackOpsSummary.EvmYul.step_op_summary
(op : stackOps_op)
(word₁ word₂ word₃ : EvmYul.UInt256)
(symStack : EvmYul.Stack EvmYul.UInt256)
(symPc : EvmYul.UInt256)
(symState : EvmYul.EVM.State)
:
step_stackOps op
{ toSharedState := symState.toSharedState, pc := symPc, stack := op.stack word₁ word₂ word₃ symStack,
execLength := symState.execLength } = Except.ok
{ toSharedState := symState.toSharedState, pc := symPc + EvmYul.UInt256.ofNat 1,
stack := op.do word₁ word₂ word₃ :: symStack, execLength := symState.execLength }
theorem
StackOpsSummary.EVM.step_add_to_step_add
(op : stackOps_op)
(word₁ word₂ word₃ : EvmYul.UInt256)
(gas gasCost symGasPrice symTimestamp symNumber symGaslimit : ℕ)
(symStack : EvmYul.Stack EvmYul.UInt256)
(symPc symGasAvailable symRefund symActiveWords symPrevrandao : EvmYul.UInt256)
(symExecLength : ℕ)
(symReturnData symCode symMemory : ByteArray)
(symAccessedStorageKeys : Batteries.RBSet (EvmYul.AccountAddress × EvmYul.UInt256) EvmYul.Substate.storageKeysCmp)
(symAccounts : EvmYul.AccountMap)
(symCodeOwner symSender symSource symCoinbase : EvmYul.AccountAddress)
(symPerm : Bool)
(gpos : 0 < gas)
(symState : EvmYul.EVM.State)
:
let ss :=
{ accountMap := symAccounts, σ₀ := symState.σ₀, totalGasUsedInBlock := symState.totalGasUsedInBlock,
transactionReceipts := symState.transactionReceipts,
substate :=
let __src := symState.substate;
{ selfDestructSet := __src.selfDestructSet, touchedAccounts := __src.touchedAccounts, refundBalance := symRefund,
accessedAccounts := __src.accessedAccounts, accessedStorageKeys := symAccessedStorageKeys,
logSeries := __src.logSeries },
executionEnv :=
let __src := symState.executionEnv;
{ codeOwner := symCodeOwner, sender := symSender, source := symSource, weiValue := __src.weiValue,
inputData := __src.inputData, code := symCode, gasPrice := symGasPrice,
header :=
let __src := symState.executionEnv.header;
{ parentHash := __src.parentHash, ommersHash := __src.ommersHash, beneficiary := symCoinbase,
stateRoot := __src.stateRoot, transRoot := __src.transRoot, receiptRoot := __src.receiptRoot,
logsBloom := __src.logsBloom, difficulty := __src.difficulty, number := symNumber, gasLimit := symGaslimit,
gasUsed := __src.gasUsed, timestamp := symTimestamp, extraData := __src.extraData, nonce := __src.nonce,
prevRandao := symPrevrandao, baseFeePerGas := __src.baseFeePerGas,
parentBeaconBlockRoot := __src.parentBeaconBlockRoot, withdrawalsRoot := __src.withdrawalsRoot,
blobGasUsed := __src.blobGasUsed, excessBlobGas := __src.excessBlobGas },
depth := __src.depth, perm := symPerm, blobVersionedHashes := __src.blobVersionedHashes },
blocks := symState.blocks, genesisBlockHeader := symState.genesisBlockHeader,
createdAccounts := symState.createdAccounts, gasAvailable := symGasAvailable, activeWords := symActiveWords,
memory := symMemory, returnData := symReturnData, H_return := symState.H_return, pc := symPc,
stack := op.stack word₁ word₂ word₃ symStack, execLength := symExecLength };
step_stackOps op gas gasCost ss = EvmYul.step_stackOps op
{ toState := ss.toState, gasAvailable := symGasAvailable - EvmYul.UInt256.ofNat gasCost,
activeWords := ss.activeWords, memory := ss.memory, returnData := ss.returnData, H_return := ss.H_return,
pc := symPc, stack := op.stack word₁ word₂ word₃ symStack, execLength := symExecLength + 1 }
theorem
StackOpsSummary.EVM.step_add_summary
(op : stackOps_op)
(word₁ word₂ word₃ : EvmYul.UInt256)
(gas gasCost symGasPrice symTimestamp symNumber symGaslimit : ℕ)
(symStack : EvmYul.Stack EvmYul.UInt256)
(symPc symGasAvailable symRefund symActiveWords symPrevrandao : EvmYul.UInt256)
(symExecLength : ℕ)
(symReturnData symCode symMemory : ByteArray)
(symAccessedStorageKeys : Batteries.RBSet (EvmYul.AccountAddress × EvmYul.UInt256) EvmYul.Substate.storageKeysCmp)
(symAccounts : EvmYul.AccountMap)
(symCodeOwner symSender symSource symCoinbase : EvmYul.AccountAddress)
(symPerm : Bool)
(gpos : 0 < gas)
(symState : EvmYul.EVM.State)
:
let ss :=
{ accountMap := symAccounts, σ₀ := symState.σ₀, totalGasUsedInBlock := symState.totalGasUsedInBlock,
transactionReceipts := symState.transactionReceipts,
substate :=
let __src := symState.substate;
{ selfDestructSet := __src.selfDestructSet, touchedAccounts := __src.touchedAccounts, refundBalance := symRefund,
accessedAccounts := __src.accessedAccounts, accessedStorageKeys := symAccessedStorageKeys,
logSeries := __src.logSeries },
executionEnv :=
let __src := symState.executionEnv;
{ codeOwner := symCodeOwner, sender := symSender, source := symSource, weiValue := __src.weiValue,
inputData := __src.inputData, code := symCode, gasPrice := symGasPrice,
header :=
let __src := symState.executionEnv.header;
{ parentHash := __src.parentHash, ommersHash := __src.ommersHash, beneficiary := symCoinbase,
stateRoot := __src.stateRoot, transRoot := __src.transRoot, receiptRoot := __src.receiptRoot,
logsBloom := __src.logsBloom, difficulty := __src.difficulty, number := symNumber, gasLimit := symGaslimit,
gasUsed := __src.gasUsed, timestamp := symTimestamp, extraData := __src.extraData, nonce := __src.nonce,
prevRandao := symPrevrandao, baseFeePerGas := __src.baseFeePerGas,
parentBeaconBlockRoot := __src.parentBeaconBlockRoot, withdrawalsRoot := __src.withdrawalsRoot,
blobGasUsed := __src.blobGasUsed, excessBlobGas := __src.excessBlobGas },
depth := __src.depth, perm := symPerm, blobVersionedHashes := __src.blobVersionedHashes },
blocks := symState.blocks, genesisBlockHeader := symState.genesisBlockHeader,
createdAccounts := symState.createdAccounts, gasAvailable := symGasAvailable, activeWords := symActiveWords,
memory := symMemory, returnData := symReturnData, H_return := symState.H_return, pc := symPc,
stack := op.stack word₁ word₂ word₃ symStack, execLength := symExecLength };
step_stackOps op gas gasCost ss = Except.ok
{ toState := ss.toState, gasAvailable := symGasAvailable - EvmYul.UInt256.ofNat gasCost,
activeWords := ss.activeWords, memory := ss.memory, returnData := ss.returnData, H_return := ss.H_return,
pc := symPc.add (EvmYul.UInt256.ofNat 1), stack := op.do word₁ word₂ word₃ :: symStack,
execLength := symExecLength + 1 }
Equations
- StackOpsSummary.stackOps_op.add.to_bin = { data := #[1] }
- StackOpsSummary.stackOps_op.sub.to_bin = { data := #[3] }
- StackOpsSummary.stackOps_op.div.to_bin = { data := #[4] }
- StackOpsSummary.stackOps_op.sdiv.to_bin = { data := #[5] }
- StackOpsSummary.stackOps_op.mod.to_bin = { data := #[6] }
- StackOpsSummary.stackOps_op.smod.to_bin = { data := #[7] }
- StackOpsSummary.stackOps_op.addmod.to_bin = { data := #[8] }
- StackOpsSummary.stackOps_op.mulmod.to_bin = { data := #[9] }
- StackOpsSummary.stackOps_op.exp.to_bin = { data := #[10] }
- StackOpsSummary.stackOps_op.signextend.to_bin = { data := #[11] }
- StackOpsSummary.stackOps_op.lt.to_bin = { data := #[16] }
- StackOpsSummary.stackOps_op.gt.to_bin = { data := #[17] }
- StackOpsSummary.stackOps_op.slt.to_bin = { data := #[18] }
- StackOpsSummary.stackOps_op.sgt.to_bin = { data := #[19] }
- StackOpsSummary.stackOps_op.eq.to_bin = { data := #[20] }
- StackOpsSummary.stackOps_op.iszero.to_bin = { data := #[21] }
- StackOpsSummary.stackOps_op.and.to_bin = { data := #[22] }
- StackOpsSummary.stackOps_op.or.to_bin = { data := #[23] }
- StackOpsSummary.stackOps_op.xor.to_bin = { data := #[24] }
- StackOpsSummary.stackOps_op.not.to_bin = { data := #[25] }
- StackOpsSummary.stackOps_op.byte.to_bin = { data := #[26] }
- StackOpsSummary.stackOps_op.shl.to_bin = { data := #[27] }
- StackOpsSummary.stackOps_op.shr.to_bin = { data := #[28] }
- StackOpsSummary.stackOps_op.sar.to_bin = { data := #[29] }
Instances For
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem
StackOpsSummary.memoryExpansionCost_stackOps
(op : stackOps_op)
(symState : EvmYul.EVM.State)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- StackOpsSummary.stackOps_op.div.C'_noexp = GasConstants.Glow
- StackOpsSummary.stackOps_op.sdiv.C'_noexp = GasConstants.Glow
- StackOpsSummary.stackOps_op.mod.C'_noexp = GasConstants.Glow
- StackOpsSummary.stackOps_op.smod.C'_noexp = GasConstants.Glow
- StackOpsSummary.stackOps_op.signextend.C'_noexp = GasConstants.Glow
- StackOpsSummary.stackOps_op.addmod.C'_noexp = GasConstants.Gmid
- StackOpsSummary.stackOps_op.mulmod.C'_noexp = GasConstants.Gmid
- op.C'_noexp = GasConstants.Gverylow
Instances For
Equations
- StackOpsSummary.stackOps_op.exp.C'_comp symState = StackOpsSummary.C'_exp symState
- op.C'_comp symState = op.C'_noexp
Instances For
@[simp]
Equations
Instances For
theorem
StackOpsSummary.X_stackOps_summary
(op : stackOps_op)
(word₁ word₂ word₃ : EvmYul.UInt256)
(symGasPrice symTimestamp symNumber symGaslimit : ℕ)
(symStack : EvmYul.Stack EvmYul.UInt256)
(symGasAvailable symRefund symActiveWords symPrevrandao : EvmYul.UInt256)
(symExecLength : ℕ)
(symReturnData symMemory : ByteArray)
(symAccessedStorageKeys : Batteries.RBSet (EvmYul.AccountAddress × EvmYul.UInt256) EvmYul.Substate.storageKeysCmp)
(symAccounts : EvmYul.AccountMap)
(symCodeOwner symSender symSource symCoinbase : EvmYul.AccountAddress)
(symPerm : Bool)
(symValidJumps : Array EvmYul.UInt256)
(symStack_ok : List.length symStack < op.to_stack_length)
(symState : EvmYul.EVM.State)
:
let ss :=
{ accountMap := symAccounts, σ₀ := symState.σ₀, totalGasUsedInBlock := symState.totalGasUsedInBlock,
transactionReceipts := symState.transactionReceipts,
substate :=
let __src := symState.substate;
{ selfDestructSet := __src.selfDestructSet, touchedAccounts := __src.touchedAccounts, refundBalance := symRefund,
accessedAccounts := __src.accessedAccounts, accessedStorageKeys := symAccessedStorageKeys,
logSeries := __src.logSeries },
executionEnv :=
let __src := symState.executionEnv;
{ codeOwner := symCodeOwner, sender := symSender, source := symSource, weiValue := __src.weiValue,
inputData := __src.inputData, code := op.to_bin, gasPrice := symGasPrice,
header :=
let __src := symState.executionEnv.header;
{ parentHash := __src.parentHash, ommersHash := __src.ommersHash, beneficiary := symCoinbase,
stateRoot := __src.stateRoot, transRoot := __src.transRoot, receiptRoot := __src.receiptRoot,
logsBloom := __src.logsBloom, difficulty := __src.difficulty, number := symNumber, gasLimit := symGaslimit,
gasUsed := __src.gasUsed, timestamp := symTimestamp, extraData := __src.extraData, nonce := __src.nonce,
prevRandao := symPrevrandao, baseFeePerGas := __src.baseFeePerGas,
parentBeaconBlockRoot := __src.parentBeaconBlockRoot, withdrawalsRoot := __src.withdrawalsRoot,
blobGasUsed := __src.blobGasUsed, excessBlobGas := __src.excessBlobGas },
depth := __src.depth, perm := symPerm, blobVersionedHashes := __src.blobVersionedHashes },
blocks := symState.blocks, genesisBlockHeader := symState.genesisBlockHeader,
createdAccounts := symState.createdAccounts, gasAvailable := symGasAvailable, activeWords := symActiveWords,
memory := symMemory, returnData := symReturnData, H_return := symState.H_return, pc := EvmYul.UInt256.ofNat 0,
stack := op.stack word₁ word₂ word₃ symStack, execLength := symExecLength };
op.C'_comp ss < symGasAvailable.toNat →
EvmYul.EVM.X symGasAvailable.toNat symValidJumps ss = Except.ok
(EvmYul.EVM.ExecutionResult.success
{ toState := ss.toState, gasAvailable := symGasAvailable - EvmYul.UInt256.ofNat (op.C'_comp ss),
activeWords := ss.activeWords, memory := ss.memory, returnData := ByteArray.empty, H_return := ss.H_return,
pc := EvmYul.UInt256.ofNat 1, stack := op.do word₁ word₂ word₃ :: symStack, execLength := symExecLength + 2 }
ByteArray.empty)