Definition update_rounds (non_empty_additional: bool): Z :=
if non_empty_additional then 2 else 1.

Lemma HMAC_DRBG_update_round_incremental:
forall key V initial_state_abs contents n,
(key, V) = HMAC_DRBG_update_round HMAC256 contents
(hmac256drbgabs_key initial_state_abs)
(hmac256drbgabs_value initial_state_abs) n ->
(HMAC256 (V ++ Byte.repr (Z.of_nat n) :: contents) key,
HMAC256 V (HMAC256 (V ++ Byte.repr (Z.of_nat n) :: contents) key)) =
HMAC_DRBG_update_round HMAC256 contents
(hmac256drbgabs_key initial_state_abs)
(hmac256drbgabs_value initial_state_abs) (n + 1).