(*Specialization of HMAC256_DRBG_generate_algorithm: no additional input*)
Definition FunGenerate RI (WS: DRBG_functions.DRBG_working_state) n: DRBG_functions.DRBG_generate_algorithm_result :=
HMAC256_DRBG_functional_prog.HMAC256_DRBG_generate_algorithm RI
WS
n
nil.
Opaque mult.

Lemma GenerateCorrect RI k v z n (Z: (z<=RI)%Z) (N:(0<n)%nat):
match GenUpdate_original_Zlist (k,v) n with (blocks,(k',v')) =>
FunGenerate RI (v, k, z) (Z.of_nat ((32 * n)%nat)) =
generate_algorithm_success (firstn ((32 * n)%nat) (FCF.Fold.flatten (rev blocks))) (v',k',(z+1)%Z)
end.