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".
19 include "CoRN_notation.ma".
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 inline "cic:/CoRN/reals/CauchySeq/IR.var".
48 include "tactics/Transparent_algebra.ma".
55 Section CReals_axioms.
58 (*#* ** [CReals] axioms *)
60 inline "cic:/CoRN/reals/CauchySeq/CReals_is_CReals.con".
62 (*#* First properties which follow trivially from the axioms. *)
64 inline "cic:/CoRN/reals/CauchySeq/Lim_Cauchy.con".
66 inline "cic:/CoRN/reals/CauchySeq/Archimedes.con".
68 inline "cic:/CoRN/reals/CauchySeq/Archimedes'.con".
70 (*#* A stronger version, which often comes in useful. *)
72 inline "cic:/CoRN/reals/CauchySeq/str_Archimedes.con".
74 inline "cic:/CoRN/reals/CauchySeq/CauchySeqR.con".
84 (*#* ** Cauchy sequences
85 *** Alternative definitions
86 This section gives several definitions of Cauchy sequences. There
87 are no lemmas in this section.
89 The current definition of Cauchy ([Cauchy_prop]) is:
91 %\[\forall \epsilon>0. \exists N. \forall m\geq N. |seq_m - seq_N|\leq\varepsilon\]%
92 #for all e>0 there exists N such that for all m≥ N |seqm-seqN|≤ e#
94 Variant 1 of Cauchy ([Cauchy_prop1]) is:
96 %\[\forall k. \exists N. \forall m \geq N. |seq_m - seq_N|\leq1/(k+1)\]%
97 #for all k there exists N such that for all m ≥ N |seqm-seqN| ≤ 1/(k+1)#
99 In all of the following variants the limit occurs in the definition.
100 Therefore it is useful to define an auxiliary predicate
101 [Cauchy_Lim_prop?], in terms of which [Cauchy_prop?] is defined.
103 Variant 2 of Cauchy ([Cauchy_prop2]) is [exists y, (Cauchy_Lim_prop2 seq y)]
106 Cauchy_Lim_prop2 seq y := forall eps [>] Zero, exists N, forall m >= N, (AbsIR seq m - y) [<=] eps
109 Note that [Cauchy_Lim_prop2] equals [seqLimit].
111 Variant 3 of Cauchy ([Cauchy_prop3]) reads [exists y, (Cauchy_Lim_prop3 seq y)]
114 Cauchy_Lim_prop3 seq y := forall k, exists N, forall m >= N, (AbsIR seq m - y) [<=] One[/] (k[+]1)
117 The following variant is more restricted.
119 Variant 4 of Cauchy ([Cauchy_prop4]): [exists y, (Cauchy_Lim_prop4 seq y)]
122 Cauchy_Lim_prop4 seq y := forall k, (AbsIR seq m - y) [<=] One[/] (k[+]1)
127 Cauchy_prop4 -> Cauchy_prop3 Iff Cauchy_prop2 Iff Cauchy_prop1 Iff Cauchy_prop
129 Note: we don't know which formulations are useful.
131 The inequalities are stated with [[<=]] rather than with [<] for the
132 following reason: both formulations are equivalent, as is well known;
133 and [[<=]] being a negative statement, this makes proofs
134 sometimes easier and program extraction much more efficient.
137 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop1.con".
139 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop2.con".
141 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop2.con".
143 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop3.con".
145 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop3.con".
147 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop4.con".
149 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop4.con".
156 Section Inequalities.
159 (*#* *** Inequalities of Limits
161 The next lemma is equal to lemma [Lim_Cauchy]. *)
163 inline "cic:/CoRN/reals/CauchySeq/Cauchy_complete.con".
165 inline "cic:/CoRN/reals/CauchySeq/less_Lim_so_less_seq.con".
167 inline "cic:/CoRN/reals/CauchySeq/Lim_less_so_seq_less.con".
169 inline "cic:/CoRN/reals/CauchySeq/Lim_less_Lim_so_seq_less_seq.con".
171 (*#* The next lemma follows from [less_Lim_so_less_seq] with [y := (y[+] (Lim seq)) [/]TwoNZ]. *)
173 inline "cic:/CoRN/reals/CauchySeq/less_Lim_so.con".
175 inline "cic:/CoRN/reals/CauchySeq/Lim_less_so.con".
177 inline "cic:/CoRN/reals/CauchySeq/leEq_seq_so_leEq_Lim.con".
179 inline "cic:/CoRN/reals/CauchySeq/str_leEq_seq_so_leEq_Lim.con".
181 inline "cic:/CoRN/reals/CauchySeq/Lim_leEq_Lim.con".
183 inline "cic:/CoRN/reals/CauchySeq/seq_leEq_so_Lim_leEq.con".
185 inline "cic:/CoRN/reals/CauchySeq/str_seq_leEq_so_Lim_leEq.con".
187 inline "cic:/CoRN/reals/CauchySeq/Limits_unique.con".
189 inline "cic:/CoRN/reals/CauchySeq/Lim_wd.con".
191 inline "cic:/CoRN/reals/CauchySeq/Lim_strext.con".
193 inline "cic:/CoRN/reals/CauchySeq/Lim_ap_imp_seq_ap.con".
195 inline "cic:/CoRN/reals/CauchySeq/Lim_ap_imp_seq_ap'.con".
202 Section Equiv_Cauchy.
205 (*#* *** Equivalence of formulations of Cauchy *)
207 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop1_prop.con".
209 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop2_prop.con".
211 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop3_prop2.con".
213 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop3_prop2.con".
215 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop3_prop.con".
217 inline "cic:/CoRN/reals/CauchySeq/Build_CauchySeq1.con".
219 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop4_prop3.con".
221 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop4_prop2.con".
223 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop4_prop3.con".
225 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop4_prop.con".
227 inline "cic:/CoRN/reals/CauchySeq/Build_CauchySeq4.con".
229 inline "cic:/CoRN/reals/CauchySeq/Build_CauchySeq4_y.con".
231 inline "cic:/CoRN/reals/CauchySeq/Lim_CauchySeq4.con".
233 inline "cic:/CoRN/reals/CauchySeq/Build_CauchySeq2.con".
235 inline "cic:/CoRN/reals/CauchySeq/Build_CauchySeq2_y.con".
237 inline "cic:/CoRN/reals/CauchySeq/Lim_CauchySeq2.con".
239 (*#* Well definedness. *)
241 inline "cic:/CoRN/reals/CauchySeq/Cauchy_prop_wd.con".
243 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop2_wd.con".
245 inline "cic:/CoRN/reals/CauchySeq/Lim_wd'.con".
247 inline "cic:/CoRN/reals/CauchySeq/Lim_unique.con".
254 Section Cauchy_props.
257 (*#* *** Properties of Cauchy sequences
259 Some of these lemmas are now obsolete, because they were reproved for arbitrary ordered fields$\ldots$#...#
261 We begin by defining the constant sequence and proving that it is Cauchy with the expected limit.
264 inline "cic:/CoRN/reals/CauchySeq/Cauchy_const.con".
266 inline "cic:/CoRN/reals/CauchySeq/Lim_const.con".
268 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_plus.con".
270 inline "cic:/CoRN/reals/CauchySeq/Cauchy_plus.con".
272 inline "cic:/CoRN/reals/CauchySeq/Lim_plus.con".
274 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_inv.con".
276 inline "cic:/CoRN/reals/CauchySeq/Cauchy_inv.con".
278 inline "cic:/CoRN/reals/CauchySeq/Lim_inv.con".
280 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_minus.con".
282 inline "cic:/CoRN/reals/CauchySeq/Cauchy_minus.con".
284 inline "cic:/CoRN/reals/CauchySeq/Lim_minus.con".
286 inline "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_mult.con".
288 inline "cic:/CoRN/reals/CauchySeq/Cauchy_mult.con".
290 inline "cic:/CoRN/reals/CauchySeq/Lim_mult.con".