law lift_round_trip

bend-osdev-crypto@0.1.0.0 · LAWS.bend:255

import bend-osdev-crypto@0.1.0.0/LAWS.bend as LAWS
import Base
import bend-osdev-bytes@0.1.0.0/bytes.bend as B
import bend-osdev-crypto@0.1.0.0/crypto.bend as Cr

255law lift_round_trip:
256  for ~E: Data
257  for ~f: E -> Cr.CrError
258  for d: B.Octets -> Result<&2, &2, E, B.Octets>
259  for r: Result<&2, &2, E, B.Octets>
260  for +p: B.Octets
261  for h: {Result.bind(&2, &2, E, B.Octets, B.Octets, r, d) == Result.map(&2, &2, E, B.Octets, B.Octets, c => p, r) : Result<&2, &2, E, B.Octets>}
262  {Result.bind(&2, &2, Cr.CrError, B.Octets, B.Octets, Cr.CrError.lift(~E, ~B.Octets, ~f, r), c => Cr.CrError.lift(~E, ~B.Octets, ~f, d(c))) == Result.map(&2, &2, Cr.CrError, B.Octets, B.Octets, c => p, Cr.CrError.lift(~E, ~B.Octets, ~f, r)) : Result<&2, &2, Cr.CrError, B.Octets>}

Uses (7)

Used by (1)