law same_view_t
lawful-bytes@0.1.1.0 · proof_same.bend:549
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
549law same_view_t:
550 for +la: U32
551 for +ta: P.Tree<U32>
552 for +lb: U32
553 for +tb: P.Tree<U32>
554 for +d: Nat
555 for +e: Nat
556 for +i: U32
557 for +j: U32
558 for +n: U32
559 for +ha: {D.ok(C.BT(la, ta), d) == True{} : Bool}
560 for +hb: {D.ok(C.BT(lb, tb), e) == True{} : Bool}
561 for +hi: {Nat.is_le(Nat.add(U32.to_nat(i), U32.to_nat(n)), D.size(C.BT(la, ta))) == True{} : Bool}
562 for +hj: {Nat.is_le(Nat.add(U32.to_nat(j), U32.to_nat(n)), D.size(C.BT(lb, tb))) == True{} : Bool}
563 {Pair.snd(D.Bytes, Bool, Pair.snd(D.Bytes, D.Bytes & Bool, B.same(C.BT(la, ta), i, C.BT(lb, tb), j, n))) == D.list_eq(D.slice(D.view(C.BT(la, ta)), U32.to_nat(i), U32.to_nat(n)), D.slice(D.view(C.BT(lb, tb)), U32.to_nat(j), U32.to_nat(n))) : Bool}