Definition Equiv n:= forall k v blocks u
(G: Gen_loop_Zlist k v n = (blocks, u)) m
(M: 32*(Z.of_nat n-1) < m <=32*(Z.of_nat n)),
HMAC_DRBG_generate_helper_Z HMAC256 k v m = (u,flatten (rev blocks)).

Lemma EE n (N:(0<n)%nat): Equiv n.
Definition GenUpdate_original_Blist (state : Blist * Blist) (n : nat) :
(list Blist * (Blist * Blist)) :=
match state with (k, v) =>
match Gen_loop_Blist k v n with (bits, v') =>
let k' := HMAC_Blist k (v' ++ zeroes) in
let v'' := HMAC_Blist k' v' in (bits, (k', v''))
end
end.