def okb_len_le

bend-collections-laws-crypto@1.0.0.0 · proofs/crypto/curve25519/poly.bend:68

import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/curve25519/poly.bend as Poly
import Base
import bend-collections-laws-crypto@1.0.0.0/proofs/lib/logic.bend as L
import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/curve25519/limbs.bend as LM

68def okb_len_le(+n: Nat, +xs: List<&2, U32>, +b: Nat, +e: {LM.okb(n, xs, b) == True{} : Bool}) -> {len_le(n, xs) == True{} : Bool}:
69  match n xs:
70    case 0n Nil{}:
71      {==}
72    case 0n Con{y, yt}:
73      Empty.absurd({len_le(0n, Con{y, yt}) == True{} : Bool}, L.false_true(e))
74    case 1n+m Nil{}:
75      {==}
76    case 1n+ +m Con{+y, +yt}:
77      okb_len_le(m, yt, b, LM.okb_tail(m, y, yt, b, e))

Uses (9)

Used by (3)