(*****************************************************)
(**                   Addition                       *)

Definition def_add (x y : N.t) := recursion y (fun _ => S) x.Local Infix "+++" := def_add (at level 50, left associativity).#[global]
Instance def_add_wd : Proper (N.eq ==> N.eq ==> N.eq) def_add.

Theorem def_add_add : forall n m, n +++ m == n + m.