@[irreducible]
Equations
- toBytes'_ax 0 = []
- toBytes'_ax n'.succ = { toBitVec := { toFin := ⟨n'.succ.mod UInt8.size, ⋯⟩ } } :: toBytes'_ax (n'.succ / UInt8.size)
Instances For
This should either be provable at some point or a reasonable assumption
Needed to bypass private
attribute of toBytes'
@[simp]
@[simp]
@[simp]
@[simp]
theorem
isCreate_false
{τ : EvmYul.OperationType}
(opcode : EvmYul.Operation τ)
(noCreate : opcode ≠ EvmYul.Operation.CREATE)
(noCreate2 : opcode ≠ EvmYul.Operation.CREATE2)
:
theorem
X_bad_pc
{gas : ℕ}
{opcode : UInt8}
{symValidJumps : Array EvmYul.UInt256}
{symState : EvmYul.EVM.State}
(gpos : 1 < gas)
(pc1 : symState.pc = EvmYul.UInt256.ofNat 1)
(opcode_single : symState.executionEnv.code = { data := #[opcode] })
(stack_ok : List.length symState.stack < 1025)
:
EvmYul.EVM.X gas symValidJumps symState = Except.ok
(EvmYul.EVM.ExecutionResult.success
{ toState := symState.toState, gasAvailable := symState.gasAvailable, activeWords := symState.activeWords,
memory := symState.memory, returnData := ByteArray.empty, H_return := symState.H_return, pc := symState.pc,
stack := symState.stack, execLength := symState.execLength + 1 }
ByteArray.empty)
Execution result of X
for a single-opcode program when pc
is set to 1