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}

Uses (18)

Used by (1)