law avc
lawful-bytes@0.1.1.0 · proof_fast_append.bend:1469
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/proof_core.bend as C
import lawful-arrays@0.1.0.0/proof_tree.bend as P
1469
1470law avc:
1471 for +b0: Bool
1472 for +ld: U32
1473 for +td: P.Tree<U32>
1474 for +ls: U32
1475 for +ts: P.Tree<U32>
1476 for +d: Nat
1477 for +e: Nat
1478 for +s: U32
1479 for +n: U32
1480 for +l1: U32
1481 for +t1: P.Tree<U32>
1482 for +hb0: {Nat.is_lt(U32.to_nat(H0(ld)), U32.to_nat(n)) == b0 : Bool}
1483 for +e1: {C.BT(l1, t1) == D1(ld, td, ls, ts, s, n) : D.Bytes}
1484 for +hd: {D.ok(C.BT(ld, td), d) == True{} : Bool}
1485 for +he: {D.ok(C.BT(ls, ts), e) == True{} : Bool}
1486 for +hs: {Nat.is_le(Nat.add(U32.to_nat(s), U32.to_nat(n)), D.size(C.BT(ls, ts))) == True{} : Bool}
1487 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}
1488 {List.take(&2, U32, US(TF(ld, ts, s, n, l1, t1)), Nat.add(U32.to_nat(l1), U32.to_nat(NPw(ld, n)))) == List.append(&2, U32, D.view(C.BT(l1, t1)), List.take(&2, U32, List.drop(&2, U32, US(ts), U32.to_nat(QQ(ld, s, n))), U32.to_nat(NPw(ld, n)))) : List<&2, U32>}