law drop_word

lawful-bytes@0.1.1.0 · proof_fast_find.bend:119

import lawful-bytes@0.1.1.0/proof_fast_find.bend as ProofFastFind
import Base
import lawful-bytes@0.1.1.0/defs.bend as D
import lawful-bytes@0.1.1.0/proof_core.bend as C

119# Byte 4q + o onwards: the rest of word q, then the words after it.
120law drop_word:
121  for +ws: List<&2, U32>
122  for +q: Nat
123  for +o: Nat
124  for +w: U32
125  for +hw: {List.get(&2, U32, ws, q) == Some{w} : Maybe<&2, U32>}
126  for +ho: {Nat.is_le(o, 4n) == True{} : Bool}
127  {List.drop(&2, U32, D.unpack(ws), Nat.add(Nat.mul(q, 4n), o)) == List.append(&2, U32, List.drop(&2, U32, C.L4(w), o), D.unpack(List.drop(&2, U32, ws, Nat.add(q, 1n)))) : List<&2, U32>}

Uses (19)

Used by (1)