def lt96

bend-collections-laws-crypto@1.0.0.0 · proofs/crypto/argon2/password.bend:75

import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/argon2/password.bend as Password
import Base
import bend-collections-laws-crypto@1.0.0.0/proofs/lib/nat.bend as N

75def lt96(+q: Nat, +r: Nat, +hq: {Nat.is_lt(q, 3n) == True{} : Bool}, +hr: {Nat.is_lt(r, 32n) == True{} : Bool}) -> {Nat.is_lt(Nat.add(Nat.mul(q, 32n), r), 96n) == True{} : Bool}:
76  match q:
77    case 0n:
78      N.lt_trans(r, 32n, 96n, hr, {==})
79    case 1n:
80      N.lt_trans(r, 32n, 64n, hr, {==})
81    case 2n:
82      hr
83    case 3n+j:
84      Empty.absurd({Nat.is_lt(Nat.add(Nat.mul(3n+j, 32n), r), 96n) == True{} : Bool}, N.lt_zero_absurd(j, hq))

Uses (8)

Used by (1)