law padded_compress_correct
bend-collections-laws-crypto@1.0.0.0 · proofs/crypto/keccak/sponge.bend:1209
import bend-collections-laws-crypto@1.0.0.0/proofs/crypto/keccak/sponge.bend as Sponge
import Base
import bend-collections-laws-crypto@1.0.0.0/src/crypto/keccak/types.bend as T
import bend-collections-laws-crypto@1.0.0.0/src/crypto/keccak/keccak.bend as K
import bend-collections-laws-crypto@1.0.0.0/src/crypto/keccak/permutation.bend as P
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/keccak/permutation.bend as F
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/keccak/main.bend as R
1209law padded_compress_correct:
1210 for +r: Nat
1211 for +remain: Nat
1212 for +s: T.State
1213 for +w0: U32
1214 for +w1: U32
1215 for +w2: U32
1216 for +w3: U32
1217 for +w4: U32
1218 for +w5: U32
1219 for +w6: U32
1220 for +w7: U32
1221 for +w8: U32
1222 for +w9: U32
1223 for +w10: U32
1224 for +w11: U32
1225 for +w12: U32
1226 for +w13: U32
1227 for +w14: U32
1228 for +w15: U32
1229 for +w16: U32
1230 for +w17: U32
1231 for +w18: U32
1232 for +w19: U32
1233 for +w20: U32
1234 for +w21: U32
1235 for +w22: U32
1236 for +w23: U32
1237 for +w24: U32
1238 for +w25: U32
1239 for +w26: U32
1240 for +w27: U32
1241 for +w28: U32
1242 for +w29: U32
1243 for +w30: U32
1244 for +w31: U32
1245 for +w32: U32
1246 for +w33: U32
1247 {P.rounds(r,0n,K.mix(s,K.pad_word(w0,0n,remain),K.pad_word(w1,4n,remain),K.pad_word(w2,8n,remain),K.pad_word(w3,12n,remain),K.pad_word(w4,16n,remain),K.pad_word(w5,20n,remain),K.pad_word(w6,24n,remain),K.pad_word(w7,28n,remain),K.pad_word(w8,32n,remain),K.pad_word(w9,36n,remain),K.pad_word(w10,40n,remain),K.pad_word(w11,44n,remain),K.pad_word(w12,48n,remain),K.pad_word(w13,52n,remain),K.pad_word(w14,56n,remain),K.pad_word(w15,60n,remain),K.pad_word(w16,64n,remain),K.pad_word(w17,68n,remain),K.pad_word(w18,72n,remain),K.pad_word(w19,76n,remain),K.pad_word(w20,80n,remain),K.pad_word(w21,84n,remain),K.pad_word(w22,88n,remain),K.pad_word(w23,92n,remain),K.pad_word(w24,96n,remain),K.pad_word(w25,100n,remain),K.pad_word(w26,104n,remain),K.pad_word(w27,108n,remain),K.pad_word(w28,112n,remain),K.pad_word(w29,116n,remain),K.pad_word(w30,120n,remain),K.pad_word(w31,124n,remain),K.pad_word(w32,128n,remain),U32.or(K.pad_word(w33,132n,remain),2147483648))) == F.rounds(r,0n,R.inject(s,R.prepare(True{},[w0,w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12,w13,w14,w15,w16,w17,w18,w19,w20,w21,w22,w23,w24,w25,w26,w27,w28,w29,w30,w31,w32,w33],remain))) : T.State}