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/Intervals".
19 include "CoRN_notation.ma".
21 (* $Id: Intervals.v,v 1.10 2004/04/23 10:01:04 lcf Exp $ *)
23 include "algebra/CSetoidInc.ma".
25 include "reals/RealLists.ma".
32 In this section we define (compact) intervals of the real line and
33 some useful functions to work with them.
37 We start by defining the compact interval [[a,b]] as being the set of
38 points less or equal than [b] and greater or equal than [a]. We
39 require [a [<=] b], as we want to work only in nonempty intervals.
42 inline "cic:/CoRN/reals/Intervals/compact.con".
45 %\begin{convention}% Let [a,b : IR] and [Hab : a [<=] b].
48 As expected, both [a] and [b] are members of [[a,b]]. Also they are
49 members of the interval [[Min(a,b),Max(a,b)]].
52 inline "cic:/CoRN/reals/Intervals/a.var".
54 inline "cic:/CoRN/reals/Intervals/b.var".
56 inline "cic:/CoRN/reals/Intervals/Hab.var".
58 inline "cic:/CoRN/reals/Intervals/compact_inc_lft.con".
60 inline "cic:/CoRN/reals/Intervals/compact_inc_rht.con".
62 inline "cic:/CoRN/reals/Intervals/compact_Min_lft.con".
64 inline "cic:/CoRN/reals/Intervals/compact_Min_rht.con".
67 As we will be interested in taking functions with domain in a compact
68 interval, we want this predicate to be well defined.
71 inline "cic:/CoRN/reals/Intervals/compact_wd.con".
74 Also, it will sometimes be necessary to rewrite the endpoints of an interval.
77 inline "cic:/CoRN/reals/Intervals/compact_wd'.con".
80 As we identify subsets with predicates, inclusion is simply implication.
84 Finally, we define a restriction operator that takes a function [F]
85 and a well defined predicate [P] included in the domain of [F] and
86 returns the restriction $F|_P$# of F to P#.
89 inline "cic:/CoRN/reals/Intervals/Frestr.con".
96 Implicit Arguments Frestr [F P].
100 Section More_Intervals.
103 inline "cic:/CoRN/reals/Intervals/included_refl'.con".
105 (*#* We prove some inclusions of compact intervals. *)
107 inline "cic:/CoRN/reals/Intervals/compact_map1.con".
109 inline "cic:/CoRN/reals/Intervals/compact_map2.con".
111 inline "cic:/CoRN/reals/Intervals/compact_map3.con".
118 Hint Resolve included_refl' compact_map1 compact_map2 compact_map3 : included.
122 Section Totally_Bounded.
125 (*#* ** Totally Bounded
127 Totally bounded sets will play an important role in what is
128 to come. The definition (equivalent to the classical one) states that
129 [P] is totally bounded iff
130 %\[\forall_{\varepsilon>0}\exists_{x_1,\ldots,x_n}\forall_{y\in P}
131 \exists_{1\leq i\leq n}|y-x_i|<\varepsilon\]%#∀e>0
132 ∃x<sub>1</sub>,...,x<sub>n</sub>∀y∈P∃
133 1≤i≤n.|y-x<sub>i</sub>|<e#.
135 Notice the use of lists for quantification.
138 inline "cic:/CoRN/reals/Intervals/totally_bounded.con".
141 This definition is classically, but not constructively, equivalent to
142 the definition of compact (if completeness is assumed); the next
143 result, classically equivalent to the Heine-Borel theorem, justifies
144 that we take the definition of totally bounded to be the relevant one
145 and that we defined compacts as we did.
148 inline "cic:/CoRN/reals/Intervals/compact_is_totally_bounded.con".
151 Suprema and infima will be needed throughout; we define them here both
152 for arbitrary subsets of [IR] and for images of functions.
155 inline "cic:/CoRN/reals/Intervals/set_glb_IR.con".
157 inline "cic:/CoRN/reals/Intervals/set_lub_IR.con".
159 inline "cic:/CoRN/reals/Intervals/fun_image.con".
161 inline "cic:/CoRN/reals/Intervals/fun_glb_IR.con".
163 inline "cic:/CoRN/reals/Intervals/fun_lub_IR.con".
167 inline "cic:/CoRN/reals/Intervals/aux_seq_lub.con".
169 inline "cic:/CoRN/reals/Intervals/aux_seq_lub_prop.con".
174 The following are probably the most important results in this section.
177 inline "cic:/CoRN/reals/Intervals/totally_bounded_has_lub.con".
181 inline "cic:/CoRN/reals/Intervals/aux_seq_glb.con".
183 inline "cic:/CoRN/reals/Intervals/aux_seq_glb_prop.con".
187 inline "cic:/CoRN/reals/Intervals/totally_bounded_has_glb.con".
199 In this section we dwell a bit farther into the definition of compactness
200 and explore some of its properties.
202 The following characterization of inclusion can be very useful:
205 inline "cic:/CoRN/reals/Intervals/included_compact.con".
208 At several points in our future development of a theory we will need
209 to partition a compact interval in subintervals of length smaller than
210 some predefined value [eps]. Although this seems a
211 consequence of every compact interval being totally bounded, it is in
212 fact a stronger property. In this section we perform that
213 construction (requiring the endpoints of the interval to be distinct)
214 and prove some of its good properties.
216 %\begin{convention}% Let [a,b : IR], [Hab : (a [<=] b)] and denote by [I]
217 the compact interval [[a,b]]. Also assume that [a [<] b], and let [e] be
218 a positive real number.
222 inline "cic:/CoRN/reals/Intervals/a.var".
224 inline "cic:/CoRN/reals/Intervals/b.var".
226 inline "cic:/CoRN/reals/Intervals/Hab.var".
230 inline "cic:/CoRN/reals/Intervals/I.con".
234 inline "cic:/CoRN/reals/Intervals/Hab'.var".
236 inline "cic:/CoRN/reals/Intervals/e.var".
238 inline "cic:/CoRN/reals/Intervals/He.var".
241 We start by finding a natural number [n] such that [(b[-]a) [/] n [<] e].
244 inline "cic:/CoRN/reals/Intervals/compact_nat.con".
246 (*#* Obviously such an [n] must be greater than zero.*)
248 inline "cic:/CoRN/reals/Intervals/pos_compact_nat.con".
251 We now define a sequence on [n] points in [[a,b]] by
252 [x_i [=] Min(a,b) [+]i[*] (b[-]a) [/]n] and
253 prove that all of its points are really in that interval.
256 inline "cic:/CoRN/reals/Intervals/compact_part.con".
258 inline "cic:/CoRN/reals/Intervals/compact_part_hyp.con".
261 This sequence is strictly increasing and each two consecutive points
262 are apart by less than [e].*)
264 inline "cic:/CoRN/reals/Intervals/compact_less.con".
266 inline "cic:/CoRN/reals/Intervals/compact_leEq.con".
268 (*#* When we proceed to integration, this lemma will also be useful: *)
270 inline "cic:/CoRN/reals/Intervals/compact_partition_lemma.con".
272 (*#* The next lemma provides an upper bound for the distance between two points in an interval: *)
274 inline "cic:/CoRN/reals/Intervals/compact_elements.con".
280 (*#* The following is a variation on the previous lemma: *)
282 inline "cic:/CoRN/reals/Intervals/compact_elements'.con".
284 (*#* The following lemma is a bit more specific: it shows that we can
285 also estimate the distance from the center of a compact interval to
286 any of its points. *)
288 inline "cic:/CoRN/reals/Intervals/compact_bnd_AbsIR.con".
290 (*#* Finally, two more useful lemmas to prove inclusion of compact
291 intervals. They will be necessary for the definition and proof of the
292 elementary properties of the integral. *)
294 inline "cic:/CoRN/reals/Intervals/included2_compact.con".
296 inline "cic:/CoRN/reals/Intervals/included3_compact.con".
303 Hint Resolve included_compact included2_compact included3_compact : included.