def ceil_ok

bend-collections-laws-crypto@1.0.0.0 · proofs/crypto/kdf/okm.bend:93

import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/kdf/okm.bend as Okm
import Base
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/hkdf.bend as Spec

93def ceil_ok(len: Nat) -> {Nat.is_le(len, Nat.mul(Spec.block_count(len), 32n)) == True{} : Bool}:
94  match len:
95    case 0n:
96      {==}
97    case 1n:
98      {==}
99    case 2n:
100      {==}
101    case 3n:
102      {==}
103    case 4n:
104      {==}
105    case 5n:
106      {==}
107    case 6n:
108      {==}
109    case 7n:
110      {==}
111    case 8n:
112      {==}
113    case 9n:
114      {==}
115    case 10n:
116      {==}
117    case 11n:
118      {==}
119    case 12n:
120      {==}
121    case 13n:
122      {==}
123    case 14n:
124      {==}
125    case 15n:
126      {==}
127    case 16n:
128      {==}
129    case 17n:
130      {==}
131    case 18n:
132      {==}
133    case 19n:
134      {==}
135    case 20n:
136      {==}
137    case 21n:
138      {==}
139    case 22n:
140      {==}
141    case 23n:
142      {==}
143    case 24n:
144      {==}
145    case 25n:
146      {==}
147    case 26n:
148      {==}
149    case 27n:
150      {==}
151    case 28n:
152      {==}
153    case 29n:
154      {==}
155    case 30n:
156      {==}
157    case 31n:
158      {==}
159    case 32n+ +q:
160      %Equal.sym(Nat, Nat.div(Nat.add(32n+q, 31n), 32n), 1n+Nat.div(Nat.add(q, 31n), 32n), div_step(q)) : {Nat.is_le(32n+q, Nat.mul(_, 32n)) == True{} : Bool}
161      ceil_ok(q)

Uses (9)

Used by (3)