law lists_step
lawful-bytes@0.1.1.0 · proof_same.bend:425
import lawful-bytes@0.1.1.0/proof_same.bend as ProofSame
import Base
import lawful-bytes@0.1.1.0/defs.bend as D
425
426
427law lists_step:
428 for +acc: Bool
429 for +xs: List<&2, U32>
430 for +ys: List<&2, U32>
431 for +i: Nat
432 for +j: Nat
433 for +i1: U32
434 for +j1: U32
435 for +k: Nat
436 for +x: U32
437 for +y: U32
438 for +hx: {List.get(&2, U32, xs, i) == Some{x} : Maybe<&2, U32>}
439 for +hy: {List.get(&2, U32, ys, j) == Some{y} : Maybe<&2, U32>}
440 for +ei: {U32.to_nat(i1) == Nat.add(i, 1n) : Nat}
441 for +ej: {U32.to_nat(j1) == Nat.add(j, 1n) : Nat}
442 {Bool.and(Bool.and(acc, U32.is_eq(x, y)), D.list_eq(D.slice(xs, U32.to_nat(i1), k), D.slice(ys, U32.to_nat(j1), k)))
443 == Bool.and(acc, D.list_eq(D.slice(xs, i, 1n+k), D.slice(ys, j, 1n+k))) : Bool}