1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 (* This file was automatically generated: do not edit *********************)
17 set "baseuri" "cic:/matita/CoRN-Decl/reals/CauchySeq".
21 (* $Id: CauchySeq.v,v 1.8 2004/04/23 10:01:04 lcf Exp $ *)
23 (*#* printing IR %\ensuremath{\mathbb R}% *)
25 (*#* printing PartIR %\ensuremath{\mathbb R\!\not\rightarrow\!\mathbb R}% *)
27 (*#* printing ZeroR %\ensuremath{\mathbf0}% #0# *)
29 (*#* printing OneR %\ensuremath{\mathbf1}% #1# *)
31 (*#* printing AbsIR %\ensuremath{|\cdot|_{\mathbb R}}% *)
33 include "reals/CReals.ma".
35 (*#* *Real Number Structures
36 %\begin{convention}% Let [IR] be a structure for real numbers.
41 Require Export R_CReals.
42 Definition IR : CReals := Concrete_R.
46 alias id "IR" = "cic:/CoRN/reals/CauchySeq/IR.var".
49 Notation PartIR := (PartFunct IR).
53 Notation ProjIR1 := (prj1 IR _ _ _).
57 Notation ProjIR2 := (prj2 IR _ _ _).
60 include "tactics/Transparent_algebra.ma".
65 Notation ZeroR := (Zero:IR).
69 Notation OneR := (One:IR).
78 (*#* ** [CReals] axioms *)
80 inline "cic:/CoRN/reals/CauchySeq/CReals_is_CReals.con".
82 (*#* First properties which follow trivially from the axioms. *)
84 inline "cic:/CoRN/reals/CauchySeq/Lim_Cauchy.con".
86 inline "cic:/CoRN/reals/CauchySeq/Archimedes.con".
88 inline "cic:/CoRN/reals/CauchySeq/Archimedes'.con".
90 (*#* A stronger version, which often comes in useful. *)
92 inline "cic:/CoRN/reals/CauchySeq/str_Archimedes.con".
94 inline "cic:/CoRN/reals/CauchySeq/CauchySeqR.con".
104 (*#* ** Cauchy sequences
105 *** Alternative definitions
106 This section gives several definitions of Cauchy sequences. There
107 are no lemmas in this section.
109 The current definition of Cauchy ([Cauchy_prop]) is:
111 %\[\forall \epsilon>0. \exists N. \forall m\geq N. |seq_m - seq_N|\leq\varepsilon\]%
112 #for all e>0 there exists N such that for all m≥ N |seqm-seqN|≤ e#
114 Variant 1 of Cauchy ([Cauchy_prop1]) is:
116 %\[\forall k. \exists N. \forall m \geq N. |seq_m - seq_N|\leq1/(k+1)\]%
117 #for all k there exists N such that for all m ≥ N |seqm-seqN| ≤ 1/(k+1)#
119 In all of the following variants the limit occurs in the definition.
120 Therefore it is useful to define an auxiliary predicate
121 [Cauchy_Lim_prop?], in terms of which [Cauchy_prop?] is defined.
123 Variant 2 of Cauchy ([Cauchy_prop2]) is [exists y, (Cauchy_Lim_prop2 seq y)]
126 Cauchy_Lim_prop2 seq y := forall eps [>] Zero, exists N, forall m >= N, (AbsIR seq m - y) [<=] eps
129 Note that [Cauchy_Lim_prop2] equals [seqLimit].
131 Variant 3 of Cauchy ([Cauchy_prop3]) reads [exists y, (Cauchy_Lim_prop3 seq y)]
134 Cauchy_Lim_prop3 seq y := forall k, exists N, forall m >= N, (AbsIR seq m - y) [<=] One[/] (k[+]1)
137 The following variant is more restricted.
139 Variant 4 of Cauchy ([Cauchy_prop4]): [exists y, (Cauchy_Lim_prop4 seq y)]
142 Cauchy_Lim_prop4 seq y := forall k, (AbsIR seq m - y) [<=] One[/] (k[+]1)
147 Cauchy_prop4 -> Cauchy_prop3 Iff Cauchy_prop2 Iff Cauchy_prop1 Iff Cauchy_prop
149 Note: we don't know which formulations are useful.
151 The inequalities are stated with [[<=]] rather than with [<] for the
152 following reason: both formulations are equivalent, as is well known;
153 and [[<=]] being a negative statement, this makes proofs
154 sometimes easier and program extraction much more efficient.
157 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop1.con".
159 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop2.con".
161 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop2.con".
163 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop3.con".
165 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop3.con".
167 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop4.con".
169 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop4.con".
179 (*#* *** Inequalities of Limits
181 The next lemma is equal to lemma [Lim_Cauchy]. *)
183 inline "cic:/CoRN/reals/CauchySeq/Cauchy_complete.con".
185 inline "cic:/CoRN/reals/CauchySeq/less_Lim_so_less_seq.con".
187 inline "cic:/CoRN/reals/CauchySeq/Lim_less_so_seq_less.con".
189 inline "cic:/CoRN/reals/CauchySeq/Lim_less_Lim_so_seq_less_seq.con".
191 (*#* The next lemma follows from [less_Lim_so_less_seq] with [y := (y[+] (Lim seq)) [/]TwoNZ]. *)
193 inline "cic:/CoRN/reals/CauchySeq/less_Lim_so.con".
195 inline "cic:/CoRN/reals/CauchySeq/Lim_less_so.con".
197 inline "cic:/CoRN/reals/CauchySeq/leEq_seq_so_leEq_Lim.con".
199 inline "cic:/CoRN/reals/CauchySeq/str_leEq_seq_so_leEq_Lim.con".
201 inline "cic:/CoRN/reals/CauchySeq/Lim_leEq_Lim.con".
203 inline "cic:/CoRN/reals/CauchySeq/seq_leEq_so_Lim_leEq.con".
205 inline "cic:/CoRN/reals/CauchySeq/str_seq_leEq_so_Lim_leEq.con".
207 inline "cic:/CoRN/reals/CauchySeq/Limits_unique.con".
209 inline "cic:/CoRN/reals/CauchySeq/Lim_wd.con".
211 inline "cic:/CoRN/reals/CauchySeq/Lim_strext.con".
213 inline "cic:/CoRN/reals/CauchySeq/Lim_ap_imp_seq_ap.con".
215 inline "cic:/CoRN/reals/CauchySeq/Lim_ap_imp_seq_ap'.con".
225 (*#* *** Equivalence of formulations of Cauchy *)
227 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop1_prop.con".
229 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop2_prop.con".
231 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop3_prop2.con".
233 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop3_prop2.con".
235 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop3_prop.con".
237 inline "cic:/CoRN/reals/CauchySeq/Build_CauchySeq1.con".
239 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop4_prop3.con".
241 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop4_prop2.con".
243 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop4_prop3.con".
245 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop4_prop.con".
247 inline "cic:/CoRN/reals/CauchySeq/Build_CauchySeq4.con".
249 inline "cic:/CoRN/reals/CauchySeq/Build_CauchySeq4_y.con".
251 inline "cic:/CoRN/reals/CauchySeq/Lim_CauchySeq4.con".
253 inline "cic:/CoRN/reals/CauchySeq/Build_CauchySeq2.con".
255 inline "cic:/CoRN/reals/CauchySeq/Build_CauchySeq2_y.con".
257 inline "cic:/CoRN/reals/CauchySeq/Lim_CauchySeq2.con".
259 (*#* Well definedness. *)
261 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop_wd.con".
263 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop2_wd.con".
265 inline "cic:/CoRN/reals/CauchySeq/Lim_wd'.con".
267 inline "cic:/CoRN/reals/CauchySeq/Lim_unique.con".
277 (*#* *** Properties of Cauchy sequences
279 Some of these lemmas are now obsolete, because they were reproved for arbitrary ordered fields$\ldots$#...#
281 We begin by defining the constant sequence and proving that it is Cauchy with the expected limit.
284 inline "cic:/CoRN/reals/CauchySeq/Cauchy_const.con".
286 inline "cic:/CoRN/reals/CauchySeq/Lim_const.con".
288 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_plus.con".
290 inline "cic:/CoRN/reals/CauchySeq/Cauchy_plus.con".
292 inline "cic:/CoRN/reals/CauchySeq/Lim_plus.con".
294 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_inv.con".
296 inline "cic:/CoRN/reals/CauchySeq/Cauchy_inv.con".
298 inline "cic:/CoRN/reals/CauchySeq/Lim_inv.con".
300 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_minus.con".
302 inline "cic:/CoRN/reals/CauchySeq/Cauchy_minus.con".
304 inline "cic:/CoRN/reals/CauchySeq/Lim_minus.con".
306 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_mult.con".
308 inline "cic:/CoRN/reals/CauchySeq/Cauchy_mult.con".
310 inline "cic:/CoRN/reals/CauchySeq/Lim_mult.con".