]> matita.cs.unibo.it Git - helm.git/blob - helm/software/matita/contribs/procedural/Coq/NArith/Pnat.mma
Preparing for 0.5.9 release.
[helm.git] / helm / software / matita / contribs / procedural / Coq / NArith / Pnat.mma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 (* This file was automatically generated: do not edit *********************)
16
17 include "Coq.ma".
18
19 (*#***********************************************************************)
20
21 (*  v      *   The Coq Proof Assistant  /  The Coq Development Team     *)
22
23 (* <O___,, * CNRS-Ecole Polytechnique-INRIA Futurs-Universite Paris Sud *)
24
25 (*   \VV/  **************************************************************)
26
27 (*    //   *      This file is distributed under the terms of the       *)
28
29 (*         *       GNU Lesser General Public License Version 2.1        *)
30
31 (*#***********************************************************************)
32
33 (*i $Id: Pnat.v,v 1.3.2.1 2004/07/16 19:31:07 herbelin Exp $ i*)
34
35 include "NArith/BinPos.ma".
36
37 (*#*********************************************************************)
38
39 (*#* Properties of the injection from binary positive numbers to Peano 
40     natural numbers *)
41
42 (*#* Original development by Pierre Cr\233\gut, CNET, Lannion, France *)
43
44 include "Arith/Le.ma".
45
46 include "Arith/Lt.ma".
47
48 include "Arith/Gt.ma".
49
50 include "Arith/Plus.ma".
51
52 include "Arith/Mult.ma".
53
54 include "Arith/Minus.ma".
55
56 (*#* [nat_of_P] is a morphism for addition *)
57
58 inline procedural "cic:/Coq/NArith/Pnat/Pmult_nat_succ_morphism.con" as lemma.
59
60 inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_succ_morphism.con" as lemma.
61
62 inline procedural "cic:/Coq/NArith/Pnat/Pmult_nat_plus_carry_morphism.con" as theorem.
63
64 inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_plus_carry_morphism.con" as theorem.
65
66 inline procedural "cic:/Coq/NArith/Pnat/Pmult_nat_l_plus_morphism.con" as theorem.
67
68 inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_plus_morphism.con" as theorem.
69
70 (*#* [Pmult_nat] is a morphism for addition *)
71
72 inline procedural "cic:/Coq/NArith/Pnat/Pmult_nat_r_plus_morphism.con" as lemma.
73
74 inline procedural "cic:/Coq/NArith/Pnat/ZL6.con" as lemma.
75
76 (*#* [nat_of_P] is a morphism for multiplication *)
77
78 inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_mult_morphism.con" as theorem.
79
80 (*#* [nat_of_P] maps to the strictly positive subset of [nat] *)
81
82 inline procedural "cic:/Coq/NArith/Pnat/ZL4.con" as lemma.
83
84 (*#* Extra lemmas on [lt] on Peano natural numbers *)
85
86 inline procedural "cic:/Coq/NArith/Pnat/ZL7.con" as lemma.
87
88 inline procedural "cic:/Coq/NArith/Pnat/ZL8.con" as lemma.
89
90 (*#* [nat_of_P] is a morphism from [positive] to [nat] for [lt] (expressed
91     from [compare] on [positive])
92
93     Part 1: [lt] on [positive] is finer than [lt] on [nat]
94 *)
95
96 inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_lt_Lt_compare_morphism.con" as lemma.
97
98 (*#* [nat_of_P] is a morphism from [positive] to [nat] for [gt] (expressed
99     from [compare] on [positive])
100
101     Part 1: [gt] on [positive] is finer than [gt] on [nat]
102 *)
103
104 inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_gt_Gt_compare_morphism.con" as lemma.
105
106 (*#* [nat_of_P] is a morphism from [positive] to [nat] for [lt] (expressed
107     from [compare] on [positive])
108
109     Part 2: [lt] on [nat] is finer than [lt] on [positive]
110 *)
111
112 inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_lt_Lt_compare_complement_morphism.con" as lemma.
113
114 (*#* [nat_of_P] is a morphism from [positive] to [nat] for [gt] (expressed
115     from [compare] on [positive])
116
117     Part 2: [gt] on [nat] is finer than [gt] on [positive]
118 *)
119
120 inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_gt_Gt_compare_complement_morphism.con" as lemma.
121
122 (*#* [nat_of_P] is strictly positive *)
123
124 inline procedural "cic:/Coq/NArith/Pnat/le_Pmult_nat.con" as lemma.
125
126 inline procedural "cic:/Coq/NArith/Pnat/lt_O_nat_of_P.con" as lemma.
127
128 (*#* Pmult_nat permutes with multiplication *)
129
130 inline procedural "cic:/Coq/NArith/Pnat/Pmult_nat_mult_permute.con" as lemma.
131
132 inline procedural "cic:/Coq/NArith/Pnat/Pmult_nat_2_mult_2_permute.con" as lemma.
133
134 inline procedural "cic:/Coq/NArith/Pnat/Pmult_nat_4_mult_2_permute.con" as lemma.
135
136 (*#* Mapping of xH, xO and xI through [nat_of_P] *)
137
138 inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_xH.con" as lemma.
139
140 inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_xO.con" as lemma.
141
142 inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_xI.con" as lemma.
143
144 (*#*********************************************************************)
145
146 (*#* Properties of the shifted injection from Peano natural numbers to 
147     binary positive numbers *)
148
149 (*#* Composition of [P_of_succ_nat] and [nat_of_P] is successor on [nat] *)
150
151 inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_o_P_of_succ_nat_eq_succ.con" as theorem.
152
153 (*#* Miscellaneous lemmas on [P_of_succ_nat] *)
154
155 inline procedural "cic:/Coq/NArith/Pnat/ZL3.con" as lemma.
156
157 inline procedural "cic:/Coq/NArith/Pnat/ZL5.con" as lemma.
158
159 (*#* Composition of [nat_of_P] and [P_of_succ_nat] is successor on [positive] *)
160
161 inline procedural "cic:/Coq/NArith/Pnat/P_of_succ_nat_o_nat_of_P_eq_succ.con" as theorem.
162
163 (*#* Composition of [nat_of_P], [P_of_succ_nat] and [Ppred] is identity
164     on [positive] *)
165
166 inline procedural "cic:/Coq/NArith/Pnat/pred_o_P_of_succ_nat_o_nat_of_P_eq_id.con" as theorem.
167
168 (*#*********************************************************************)
169
170 (*#* Extra properties of the injection from binary positive numbers to Peano 
171     natural numbers *)
172
173 (*#* [nat_of_P] is a morphism for subtraction on positive numbers *)
174
175 inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_minus_morphism.con" as theorem.
176
177 (*#* [nat_of_P] is injective *)
178
179 inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_inj.con" as lemma.
180
181 inline procedural "cic:/Coq/NArith/Pnat/ZL16.con" as lemma.
182
183 inline procedural "cic:/Coq/NArith/Pnat/ZL17.con" as lemma.
184
185 (*#* Comparison and subtraction *)
186
187 inline procedural "cic:/Coq/NArith/Pnat/Pcompare_minus_r.con" as lemma.
188
189 inline procedural "cic:/Coq/NArith/Pnat/Pcompare_minus_l.con" as lemma.
190
191 (*#* Distributivity of multiplication over subtraction *)
192
193 inline procedural "cic:/Coq/NArith/Pnat/Pmult_minus_distr_l.con" as theorem.
194