Module Pos2Nat.
(** [Pos.to_nat] is a morphism for successor, addition, multiplication *)
(** Mapping of xH, xO and xI through [Pos.to_nat] *)
(** [Pos.to_nat] maps to the strictly positive subset of [nat] *)
(** [Pos.to_nat] is strictly positive *)
(** [Pos.to_nat] is a bijection between [positive] and non-zero [nat], with [Pos.of_nat] as reciprocal. See [Nat2Pos.id] below for the dual equation. *)
(** [Pos.to_nat] is hence injective *)
(** [Pos.to_nat] is a morphism for comparison *)
(** [Pos.to_nat] is a morphism for [lt], [le], etc *)
(** [Pos.to_nat] is a morphism for subtraction *)
(** [Pos.to_nat] and other operations *)

Theorem inj_iter :
forall p {A} (f:A->A) (x:A),
Pos.iter f x p = nat_rect _ x (fun _ => f) (to_nat p).