Definition nat_to_pos (n : nat) : (n <> 0) -> positive :=
  fun _ => (P_of_succ_nat (pred n)).

(* Specifications: *)
Lemma double_nat_nz : forall(a : nat)(pf : a <> 0), ((2 * a) <> 0).
Lemma s_nat_nz : forall(a : nat)(pf : a <> 0), ((S a) <> 0).
Lemma factor_s_conv : forall(a : nat)(pf1 : (a <> 0))(pf2 : (S a) <> 0), (nat_to_pos (pf2)) = (Pos.succ (nat_to_pos pf1)).
Lemma add_s_r : forall a b, a + (S b) = S (a + b).
Lemma factor_double_s : forall a, (2 * (S a)) = (S (S (2 * a))).
Lemma factor_double_conv : forall(a : nat)(pf1 : (a <> 0))(pf2 : (2 * a) <> 0), (nat_to_pos pf2) = (Pmult 2 (nat_to_pos pf1)).