(*****************************************************)
(**                     Even                         *)
#[global]
Instance even_wd : Proper (N.eq==>Logic.eq) even.

(* Specifications: *)
Theorem even_0 : even 0 = true.
Theorem even_succ : forall x, even (S x) = negb (even x).
Definition half_aux (x : N.t) : N.t * N.t :=
recursion (0, 0) (fun _ p => let (x1, x2) := p in (S x2, x1)) x.