law run_skip

lawful-bytes@0.1.1.0 · proof_fast_find.bend:185

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

185# No c in xs, and n reaches past it: the search goes on in ys.
186law run_skip:
187  for +xs: List<&2, U32>
188  for +ys: List<&2, U32>
189  for +n: Nat
190  for +c: U32
191  for +b: Bool
192  for +hb: {hd_eq(xs, c) == b : Bool}
193  for +h: {D.run_len(xs, c) == List.length(&2, U32, xs) : Nat}
194  for +hn: {Nat.is_le(List.length(&2, U32, xs), n) == True{} : Bool}
195  {D.run_len(List.take(&2, U32, List.append(&2, U32, xs, ys), n), c) == Nat.add(List.length(&2, U32, xs), D.run_len(List.take(&2, U32, ys, Nat.sub(n, List.length(&2, U32, xs))), c)) : Nat}

Uses (20)

Used by (1)