(*****************************************************)
(**                  Multiplication                  *)
Local Infix "**" := def_mul (at level 40, left associativity).
#[global]
Instance def_mul_wd : Proper (N.eq ==> N.eq ==> N.eq) def_mul.

Theorem def_mul_mul : forall n m, n ** m == n * m.
Definition ltb (m : N.t) : N.t -> bool :=
recursion
(if_zero false true)
(fun _ f n => recursion false (fun n' _ => f n') n)
m.