law tl_view_k

lawful-bytes@0.1.1.0 · proof_same.bend:331

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
import lawful-bytes@0.1.1.0/bytes.bend as B
import lawful-bytes@0.1.1.0/proof_core.bend as C
import lawful-arrays@0.1.0.0/proof_tree.bend as P

331# to_list(BT, s, n) with k = n bytes: none, or 1 + p read from s + n - 1.
332law tl_view_k:
333  for +k: Nat
334  for +len: U32
335  for +t: P.Tree<U32>
336  for +d: Nat
337  for +s: U32
338  for +n: U32
339  for +h: {D.ok(C.BT(len, t), d) == True{} : Bool}
340  for +hk: {U32.to_nat(n) == k : Nat}
341  for +hs: {Nat.is_le(Nat.add(U32.to_nat(s), U32.to_nat(n)), U32.to_nat(len)) == True{} : Bool}
342  {Pair.snd(D.Bytes, List<&2, U32>, B.to_list.go(k, B.at(C.BT(len, t), ((s + n : U32) - 1 : U32)), ((s + n : U32) - 1 : U32), Nil{})) == D.slice(D.view(C.BT(len, t)), U32.to_nat(s), k) : List<&2, U32>}

Uses (43)

Used by (1)