Ltac wlt_ind :=
  match goal with
  | [ |- forall (n: word ?len), ?P ] =>
    refine (well_founded_ind (@wlt_wf len) (fun n => P) _)
  end.

Lemma ZToWord_Npow2_sub_z : forall (sz : nat) (z : Z) (k: Z), ZToWord sz (z - k * Z.of_N (Npow2 sz)) = ZToWord sz z.