(** For compatibility, old names and old-style lemmas *)

Notation Psucc_S := Pos2Nat.inj_succ (only parsing).Notation Pplus_plus := Pos2Nat.inj_add (only parsing).Notation Pmult_mult := Pos2Nat.inj_mul (only parsing).Notation Pcompare_nat_compare := Pos2Nat.inj_compare (only parsing).Notation nat_of_P_xH := Pos2Nat.inj_1 (only parsing).Notation nat_of_P_xO := Pos2Nat.inj_xO (only parsing).Notation nat_of_P_xI := Pos2Nat.inj_xI (only parsing).Notation nat_of_P_is_S := Pos2Nat.is_succ (only parsing).Notation nat_of_P_pos := Pos2Nat.is_pos (only parsing).Notation nat_of_P_inj_iff := Pos2Nat.inj_iff (only parsing).Notation nat_of_P_inj := Pos2Nat.inj (only parsing).Notation Plt_lt := Pos2Nat.inj_lt (only parsing).Notation Pgt_gt := Pos2Nat.inj_gt (only parsing).Notation Ple_le := Pos2Nat.inj_le (only parsing).Notation Pge_ge := Pos2Nat.inj_ge (only parsing).Notation Pminus_minus := Pos2Nat.inj_sub (only parsing).Notation iter_nat_of_P := @Pos2Nat.inj_iter (only parsing).Notation nat_of_P_of_succ_nat := SuccNat2Pos.id_succ (only parsing).Notation P_of_succ_nat_of_P := Pos2SuccNat.id_succ (only parsing).Notation nat_of_P_succ_morphism := Pos2Nat.inj_succ (only parsing).Notation nat_of_P_plus_morphism := Pos2Nat.inj_add (only parsing).Notation nat_of_P_mult_morphism := Pos2Nat.inj_mul (only parsing).Notation nat_of_P_compare_morphism := Pos2Nat.inj_compare (only parsing).Notation lt_O_nat_of_P := Pos2Nat.is_pos (only parsing).Notation ZL4 := Pos2Nat.is_succ (only parsing).Notation nat_of_P_o_P_of_succ_nat_eq_succ := SuccNat2Pos.id_succ (only parsing).Notation P_of_succ_nat_o_nat_of_P_eq_succ := Pos2SuccNat.id_succ (only parsing).Notation pred_o_P_of_succ_nat_o_nat_of_P_eq_id := Pos2SuccNat.pred_id (only parsing).

(* Specifications: *)
Lemma nat_of_P_minus_morphism p q : Pos.compare_cont Eq p q = Gt -> Pos.to_nat (p - q) = Pos.to_nat p - Pos.to_nat q.
Lemma nat_of_P_lt_Lt_compare_morphism p q : Pos.compare_cont Eq p q = Lt -> Pos.to_nat p < Pos.to_nat q.
Lemma nat_of_P_gt_Gt_compare_morphism p q : Pos.compare_cont Eq p q = Gt -> Pos.to_nat p > Pos.to_nat q.
Lemma nat_of_P_lt_Lt_compare_complement_morphism p q : Pos.to_nat p < Pos.to_nat q -> Pos.compare_cont Eq p q = Lt.
Lemma nat_of_P_gt_Gt_compare_complement_morphism p q : Pos.to_nat p > Pos.to_nat q -> Pos.compare_cont Eq p q = Gt.
Lemma Pmult_nat_mult : forall p n, Pmult_nat p n = Pos.to_nat p * n.
Lemma Pmult_nat_succ_morphism : forall p n, Pmult_nat (Pos.succ p) n = n + Pmult_nat p n.
Theorem Pmult_nat_l_plus_morphism : forall p q n, Pmult_nat (p + q) n = Pmult_nat p n + Pmult_nat q n.
Theorem Pmult_nat_plus_carry_morphism : forall p q n, Pmult_nat (Pos.add_carry p q) n = n + Pmult_nat (p + q) n.
Lemma Pmult_nat_r_plus_morphism : forall p n, Pmult_nat p (n + n) = Pmult_nat p n + Pmult_nat p n.
Lemma ZL6 : forall p, Pmult_nat p 2 = Pos.to_nat p + Pos.to_nat p.
Lemma le_Pmult_nat : forall p n, n <= Pmult_nat p n.