]> matita.cs.unibo.it Git - helm.git/blob - helm/software/matita/contribs/procedural/CoRN/ftc/WeakIVT.mma
Preparing for 0.5.9 release.
[helm.git] / helm / software / matita / contribs / procedural / CoRN / ftc / WeakIVT.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 "CoRN.ma".
18
19 (* $Id: WeakIVT.v,v 1.9 2004/04/23 10:01:01 lcf Exp $ *)
20
21 (*#* printing ** %\ensuremath\times% #×# *)
22
23 (* begin hide *)
24
25 (* NOTATION
26 Infix "**" := prodT (at level 20).
27 *)
28
29 (* end hide *)
30
31 include "ftc/Continuity.ma".
32
33 (*#* *IVT for Partial Functions
34
35 In general, we cannot prove the classically valid Intermediate Value
36 Theorem for arbitrary partial functions, which states that in any
37 interval [[a,b]], for any value [z] between [f(a)] and [f(b)]
38 there exists $x\in[a,b]$#x∈[a,b]# such that [f(x) [=] z].
39
40 However, as is usually the case, there are some good aproximation results.  We
41 will prove them here.
42 *)
43
44 (* UNEXPORTED
45 Section Lemma1
46 *)
47
48 (* UNEXPORTED
49 cic:/CoRN/ftc/WeakIVT/Lemma1/a.var
50 *)
51
52 (* UNEXPORTED
53 cic:/CoRN/ftc/WeakIVT/Lemma1/b.var
54 *)
55
56 (* UNEXPORTED
57 cic:/CoRN/ftc/WeakIVT/Lemma1/Hab.var
58 *)
59
60 (* begin hide *)
61
62 inline procedural "cic:/CoRN/ftc/WeakIVT/Lemma1/I.con" "Lemma1__" as definition.
63
64 (* end hide *)
65
66 (* UNEXPORTED
67 cic:/CoRN/ftc/WeakIVT/Lemma1/F.var
68 *)
69
70 (* UNEXPORTED
71 cic:/CoRN/ftc/WeakIVT/Lemma1/contF.var
72 *)
73
74 (*#* **First Lemmas
75
76 %\begin{convention}% Let [a, b : IR] and [Hab : a [<=] b] and denote by [I]
77 the interval [[a,b]].  Let [F] be a continuous function on [I].
78 %\end{convention}%
79
80 We begin by proving that, if [f(a) [<] f(b)], then for every [y] in 
81 [[f(a),f(b)]] there is an $x\in[a,b]$#x&isin;[a,b]# such that [f(x)] is close
82 enough to [z].
83 *)
84
85 inline procedural "cic:/CoRN/ftc/WeakIVT/Weak_IVT_ap_lft.con" as lemma.
86
87 (* UNEXPORTED
88 End Lemma1
89 *)
90
91 (* UNEXPORTED
92 Section Lemma2
93 *)
94
95 (* UNEXPORTED
96 cic:/CoRN/ftc/WeakIVT/Lemma2/a.var
97 *)
98
99 (* UNEXPORTED
100 cic:/CoRN/ftc/WeakIVT/Lemma2/b.var
101 *)
102
103 (* UNEXPORTED
104 cic:/CoRN/ftc/WeakIVT/Lemma2/Hab.var
105 *)
106
107 (* begin hide *)
108
109 inline procedural "cic:/CoRN/ftc/WeakIVT/Lemma2/I.con" "Lemma2__" as definition.
110
111 (* end hide *)
112
113 (* UNEXPORTED
114 cic:/CoRN/ftc/WeakIVT/Lemma2/F.var
115 *)
116
117 (* UNEXPORTED
118 cic:/CoRN/ftc/WeakIVT/Lemma2/contF.var
119 *)
120
121 (*#*
122 If [f(b) [<] f(a)], a similar result holds:
123 *)
124
125 inline procedural "cic:/CoRN/ftc/WeakIVT/Weak_IVT_ap_rht.con" as lemma.
126
127 (* UNEXPORTED
128 End Lemma2
129 *)
130
131 (* UNEXPORTED
132 Section IVT
133 *)
134
135 (*#* **The IVT
136
137 We will now assume that [a [<] b] and that [F] is not only
138 continuous, but also strictly increasing in [I].  Under
139 these assumptions, we can build two sequences of values which
140 converge to [x0] such that [f(x0) [=] z].
141 *)
142
143 (* UNEXPORTED
144 cic:/CoRN/ftc/WeakIVT/IVT/a.var
145 *)
146
147 (* UNEXPORTED
148 cic:/CoRN/ftc/WeakIVT/IVT/b.var
149 *)
150
151 (* UNEXPORTED
152 cic:/CoRN/ftc/WeakIVT/IVT/Hab'.var
153 *)
154
155 (* UNEXPORTED
156 cic:/CoRN/ftc/WeakIVT/IVT/Hab.var
157 *)
158
159 (* begin hide *)
160
161 inline procedural "cic:/CoRN/ftc/WeakIVT/IVT/I.con" "IVT__" as definition.
162
163 (* end hide *)
164
165 (* UNEXPORTED
166 cic:/CoRN/ftc/WeakIVT/IVT/F.var
167 *)
168
169 (* UNEXPORTED
170 cic:/CoRN/ftc/WeakIVT/IVT/contF.var
171 *)
172
173 (* begin hide *)
174
175 inline procedural "cic:/CoRN/ftc/WeakIVT/IVT/incF.con" "IVT__" as definition.
176
177 (* end hide *)
178
179 (* begin show *)
180
181 (* UNEXPORTED
182 cic:/CoRN/ftc/WeakIVT/IVT/incrF.var
183 *)
184
185 (* end show *)
186
187 (* begin hide *)
188
189 inline procedural "cic:/CoRN/ftc/WeakIVT/IVT/Ha.con" "IVT__" as definition.
190
191 inline procedural "cic:/CoRN/ftc/WeakIVT/IVT/Hb.con" "IVT__" as definition.
192
193 inline procedural "cic:/CoRN/ftc/WeakIVT/IVT/HFab'.con" "IVT__" as definition.
194
195 (* end hide *)
196
197 (* begin show *)
198
199 (* UNEXPORTED
200 cic:/CoRN/ftc/WeakIVT/IVT/z.var
201 *)
202
203 (* UNEXPORTED
204 cic:/CoRN/ftc/WeakIVT/IVT/Haz.var
205 *)
206
207 (* UNEXPORTED
208 cic:/CoRN/ftc/WeakIVT/IVT/Hzb.var
209 *)
210
211 (* end show *)
212
213 (*#* Given any two points [x [<] y] in [[a,b]] such that [x [<=] z [<=] y],
214 we can find [x' [<] y'] such that $|x'-y'|=\frac23|x-y|$#|x'-y'|=2/3|x-y|#
215 and [x' [<=] z [<=] y'].
216 *)
217
218 inline procedural "cic:/CoRN/ftc/WeakIVT/IVT_seq_lemma.con" as lemma.
219
220 (* end hide *)
221
222 (*#*
223 We now iterate this construction.
224 *)
225
226 inline procedural "cic:/CoRN/ftc/WeakIVT/IVT_aux_seq_type.ind".
227
228 inline procedural "cic:/CoRN/ftc/WeakIVT/IVT_iter.con" as definition.
229
230 inline procedural "cic:/CoRN/ftc/WeakIVT/IVT_seq.con" as definition.
231
232 (*#*
233 We now define the sequences built from this iteration, starting with [a] and [b].
234 *)
235
236 inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq.con" as definition.
237
238 inline procedural "cic:/CoRN/ftc/WeakIVT/b_seq.con" as definition.
239
240 inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_I.con" as definition.
241
242 inline procedural "cic:/CoRN/ftc/WeakIVT/b_seq_I.con" as definition.
243
244 inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_less_b_seq.con" as lemma.
245
246 inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_leEq_z.con" as lemma.
247
248 inline procedural "cic:/CoRN/ftc/WeakIVT/z_leEq_b_seq.con" as lemma.
249
250 inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_mon.con" as lemma.
251
252 inline procedural "cic:/CoRN/ftc/WeakIVT/b_seq_mon.con" as lemma.
253
254 inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_b_seq_dist_n.con" as lemma.
255
256 inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_b_seq_dist.con" as lemma.
257
258 inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_Cauchy.con" as lemma.
259
260 inline procedural "cic:/CoRN/ftc/WeakIVT/b_seq_Cauchy.con" as lemma.
261
262 inline procedural "cic:/CoRN/ftc/WeakIVT/IVT/xa.con" "IVT__" as definition.
263
264 inline procedural "cic:/CoRN/ftc/WeakIVT/IVT/xb.con" "IVT__" as definition.
265
266 inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_b_seq_lim.con" as lemma.
267
268 inline procedural "cic:/CoRN/ftc/WeakIVT/xa_in_interval.con" as lemma.
269
270 inline procedural "cic:/CoRN/ftc/WeakIVT/IVT_I.con" as lemma.
271
272 (* UNEXPORTED
273 End IVT
274 *)
275