def parity_f
bend-collections-laws-crypto@1.0.0.0 · proofs/crypto/secp256k1/fwrap.bend:35
import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/secp256k1/fwrap.bend as Fwrap
import Base
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/secp256k1/field.bend as FS
import bend-collections-laws-crypto@1.0.0.0/src/crypto/secp256k1/limbs.bend as L
import bend-collections-laws-crypto@1.0.0.0/src/crypto/secp256k1/field.bend as F
import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/secp256k1/limbs.bend as LV
import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/secp256k1/listops.bend as LO
35def parity_f(+one: Nat, +h1: {one == 1n : Nat}, +a: List<&2, Nat>) -> {F.parity(a) == Nat.mod(FS.value(one, a), 2n) : Nat}:
36 %Equal.sym(Nat, Nat.mod(L.hd0(a), 2n), Nat.mod(LV.ev(a), 2n), LO.parity_v(a)) : {_ == Nat.mod(FS.value(one, a), 2n) : Nat}
37 %Equal.sym(Nat, FS.value(one, a), LV.ev(a), LV.ev_value(one, h1, a)) : {Nat.mod(LV.ev(a), 2n) == Nat.mod(_, 2n) : Nat}
38 {==}