Definition nthB (b: list int) (i: nat) (n: Z) :=
  nth (Z.to_nat (Z.of_nat i - 16 + n)) (rev (generate_word (rev b) 48)) Int.zero.

Lemma nth_rev_generate_word: forall i b, length b = 16%nat -> (16 <= i < 64)%nat -> nth i (rev (generate_word (rev b) 48)) Int.zero = Int.add (nthB b i 0) (Int.add (Int.add (sigma_0 (nthB b i 1)) (sigma_1 (nthB b i 14))) (nthB b i 9)).