law append_go_view
lawful-bytes@0.1.1.0 · proof_append.bend:324
import lawful-bytes@0.1.1.0/proof_append.bend as ProofAppend
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
324law append_go_view:
325 for +n: Nat
326 for +ld: U32
327 for +td: P.Tree<U32>
328 for +ls: U32
329 for +ts: P.Tree<U32>
330 for +d: Nat
331 for +e: Nat
332 for +s: U32
333 for +hd: {D.ok(C.BT(ld, td), d) == True{} : Bool}
334 for +he: {D.ok(C.BT(ls, ts), e) == True{} : Bool}
335 for +hs: {Nat.is_le(Nat.add(U32.to_nat(s), n), U32.to_nat(ls)) == True{} : Bool}
336 for +hc: {Nat.is_le(Nat.add(U32.to_nat(ld), n), D.cap(C.BT(ld, td))) == True{} : Bool}
337 {D.view(Pair.fst(D.Bytes, D.Bytes, B.append.go(n, C.BT(ld, td), B.at(C.BT(ls, ts), s), s))) == List.append(&2, U32, D.view(C.BT(ld, td)), D.slice(D.view(C.BT(ls, ts)), U32.to_nat(s), n)) : List<&2, U32>}