law fold_ev

bend-collections-laws-crypto@1.0.0.0 · proofs/crypto/poly1305/step.bend:80

import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/poly1305/step.bend as Step
import Base
import bend-collections-laws-crypto@1.0.0.0/spec/lib/common.bend as C
import bend-collections-laws-crypto@1.0.0.0/src/crypto/poly1305/limbs.bend as Li
import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/poly1305/value.bend as V

80law fold_ev:
81  for +one: Nat
82  for +h1: {one == 1n : Nat}
83  for +z: List<&2, U32>
84  for +hz: {V.le_all(z, s21(one)) == True{} : Bool}
85  {V.ev(z) == Nat.add(V.ev(Li.fold(z)), Nat.mul(C.shift(6n, V.ev(Li.skip(17n, z))), pm(one))) : Nat}

Uses (33)

Used by (1)