Opaque FunGenerate.

Lemma Generate_ok RI k v z n (Z: (z<=RI)%Z) (N:(0<n)%nat)
(KL: Datatypes.length (bytesToBits k) = 256%nat)
(VL:Datatypes.length (bytesToBits v) = 256%nat):
match GenUpdate_original_core (of_list_length _ KL, of_list_length _ VL) n with (blocks, (kk,vv)) =>
FunGenerate RI (v, k, z) (Z.of_nat ((32 * n)%nat))
= generate_algorithm_success (firstn (32 * n) (bitsToBytes (flatten (map (@Vector.to_list _ 256) blocks))))
(bitsToBytes (@Vector.to_list _ 256 vv), bitsToBytes (@Vector.to_list _ 256 kk), z+1)
end.