law fast_append_view_t

lawful-bytes@0.1.1.0 · proof_fast_append.bend:1609

import lawful-bytes@0.1.1.0/proof_fast_append.bend as ProofFastAppend
import Base
import lawful-bytes@0.1.1.0/defs.bend as D
import lawful-bytes@0.1.1.0/fast.bend as FA
import lawful-bytes@0.1.1.0/proof_core.bend as C
import lawful-arrays@0.1.0.0/proof_tree.bend as P

1609law fast_append_view_t:
1610  for +ld: U32
1611  for +td: P.Tree<U32>
1612  for +ls: U32
1613  for +ts: P.Tree<U32>
1614  for +d: Nat
1615  for +e: Nat
1616  for +s: U32
1617  for +n: U32
1618  for +hd: {D.ok(C.BT(ld, td), d) == True{} : Bool}
1619  for +he: {D.ok(C.BT(ls, ts), e) == True{} : Bool}
1620  for +hs: {Nat.is_le(Nat.add(U32.to_nat(s), U32.to_nat(n)), D.size(C.BT(ls, ts))) == True{} : Bool}
1621  for +hc: {Nat.is_le(Nat.add(D.size(C.BT(ld, td)), U32.to_nat(n)), D.cap(C.BT(ld, td))) == True{} : Bool}
1622  {D.view(Pair.fst(D.Bytes, D.Bytes, FA.append(C.BT(ld, td), C.BT(ls, ts), s, n))) == List.append(&2, U32, D.view(C.BT(ld, td)), D.slice(D.view(C.BT(ls, ts)), U32.to_nat(s), U32.to_nat(n))) : List<&2, U32>}

Uses (21)

Used by (1)