intros sz a b c H.
apply (f_equal (fun x => x ^+ ^~ c)) in H.
repeat rewrite <- wplus_assoc in H.
rewrite wminus_inv in H.
repeat rewrite (wplus_comm _ (wzero sz)) in H.
repeat rewrite wplus_unit in H.
assumption.
Qed.

(* Chain [lt_word_lt_nat] and [Nat.lt_le_incl] Avoids using [Hint Resolve Nat.lt_le_incl] for this specific lemma, though this may be a premature optimization. *)
Lemma lt_word_le_nat : forall (sz:nat) (n:word sz) (m:nat),
(n < (natToWord sz m))%word ->
(wordToNat n <= m)%nat.