(*****************************************************)
(**                  Multiplication                  *)

Definition def_mul (x y : N.t) := recursion 0 (fun _ p => p +++ x) y.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_succ_r : forall x y, x ** S y == x ** y +++ x.