(** [of_nat] is injective *)

Corollary of_nat_inj n m : of_nat n = of_nat m -> n = m.

(* Specifications: *)
Lemma to_nat_spec x y : to_nat (x, y) * 2 = y * 2 + (y + x) * S (y + x).
Lemma to_nat_spec2 x y : to_nat (x, y) = y + (y + x) * S (y + x) / 2.
Lemma to_nat_non_decreasing x y : y + x <= to_nat (x, y).