Documentation

EvmEquivalence.Interfaces.EvmYulInterface

theorem USize.toNat_ofNat_eq (n : ) (n_small : n < UInt32.size) :
@[irreducible]
Equations
Instances For
    theorem toBytes'_le {k n : } (h : n < 2 ^ (8 * k)) :

    This should either be provable at some point or a reasonable assumption

    Needed to bypass private attribute of toBytes'

    theorem BE_size_le_32 (n : ) (h : n < EvmYul.UInt256.size) :
    (BE n).size 32
    theorem UInt256.add_succ_mod_size {p : } (pos : 0 p) (size_ok : p + 1 < EvmYul.UInt256.size) :
    (p + 1) % EvmYul.UInt256.size = p + 1
    theorem UInt256.sub_to_fin (n m : EvmYul.UInt256) :
    n - m = { val := n.val - m.val }
    theorem UInt256.toNat_sub_dist (n m : EvmYul.UInt256) (le_ok : m n) :
    (n - m).toNat = n.toNat - m.toNat
    @[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