intros w1; induction w1 as [|a w1 IHw1]; intros w2 H.
- simpl.
rewrite (gen_phiNword0_ok _ H).
reflexivity.
- rewrite gen_phiNword_cons.
destruct w2 as [|n w2].
+ simpl in H.
destruct a; try  discriminate.
rewrite (gen_phiNword0_ok _ H).
norm.
+ simpl in H.
rewrite gen_phiNword_cons.
case_eq (N.eqb a n); intros H0.
* rewrite H0 in H.
apply N.eqb_eq in H0. rewrite <- H0.
rewrite (IHw1 _ H).
reflexivity.
* rewrite H0 in H;  discriminate H.
Qed.

(* Specifications: *)
Lemma Nwadd_ok : forall x y,
gen_phiNword (Nwadd x y) == gen_phiNword x + gen_phiNword y.