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/ftc/Composition".
21 (* $Id: Composition.v,v 1.4 2004/04/23 10:00:58 lcf Exp $ *)
23 include "ftc/MoreFunctions.ma".
26 Section Maps_into_Compacts
35 Preservation results for functional composition are treated in this
36 separate file. We start by defining some auxiliary predicates, and
37 then prove the preservation of continuity through composition and the
38 chain rule for differentiation, both for compact and arbitrary
41 %\begin{convention}% Throughout this section:
42 - [a, b : IR] and [I] will denote [[a,b]];
43 - [c, d : IR] and [J] will denote [[c,d]];
44 - [F, F', G, G'] will be partial functions.
50 Both continuity and differentiability proofs require extra hypothesis
51 on the functions involved---namely, that every compact interval is
52 mapped into another compact interval. We define this concept for
53 partial functions, and prove some trivial results.
56 alias id "F" = "cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/F.var".
58 alias id "G" = "cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/G.var".
60 alias id "a" = "cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/a.var".
62 alias id "b" = "cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/b.var".
64 alias id "Hab" = "cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/Hab.var".
66 alias id "c" = "cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/c.var".
68 alias id "d" = "cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/d.var".
70 alias id "Hcd" = "cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/Hcd.var".
74 inline "cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/I.con" "Maps_into_Compacts__Part_Funct__".
80 alias id "Hf" = "cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/Hf.var".
84 inline "cic:/CoRN/ftc/Composition/maps_into_compacts.con".
88 alias id "maps" = "cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/maps.var".
92 inline "cic:/CoRN/ftc/Composition/maps_lemma'.con".
94 inline "cic:/CoRN/ftc/Composition/maps_lemma.con".
96 inline "cic:/CoRN/ftc/Composition/maps_lemma_less.con".
98 inline "cic:/CoRN/ftc/Composition/maps_lemma_inc.con".
105 End Maps_into_Compacts
113 As was the case for division of partial functions, this condition
114 completely characterizes the domain of the composite function.
117 alias id "F" = "cic:/CoRN/ftc/Composition/Mapping/F.var".
119 alias id "G" = "cic:/CoRN/ftc/Composition/Mapping/G.var".
121 alias id "a" = "cic:/CoRN/ftc/Composition/Mapping/a.var".
123 alias id "b" = "cic:/CoRN/ftc/Composition/Mapping/b.var".
125 alias id "Hab" = "cic:/CoRN/ftc/Composition/Mapping/Hab.var".
127 alias id "c" = "cic:/CoRN/ftc/Composition/Mapping/c.var".
129 alias id "d" = "cic:/CoRN/ftc/Composition/Mapping/d.var".
131 alias id "Hcd" = "cic:/CoRN/ftc/Composition/Mapping/Hcd.var".
135 alias id "Hf" = "cic:/CoRN/ftc/Composition/Mapping/Hf.var".
137 alias id "Hg" = "cic:/CoRN/ftc/Composition/Mapping/Hg.var".
139 alias id "maps" = "cic:/CoRN/ftc/Composition/Mapping/maps.var".
143 inline "cic:/CoRN/ftc/Composition/included_comp.con".
150 Section Interval_Continuity
155 We now prove that the composition of two continuous partial functions is continuous.
158 alias id "a" = "cic:/CoRN/ftc/Composition/Interval_Continuity/a.var".
160 alias id "b" = "cic:/CoRN/ftc/Composition/Interval_Continuity/b.var".
162 alias id "Hab" = "cic:/CoRN/ftc/Composition/Interval_Continuity/Hab.var".
166 inline "cic:/CoRN/ftc/Composition/Interval_Continuity/I.con" "Interval_Continuity__".
170 alias id "c" = "cic:/CoRN/ftc/Composition/Interval_Continuity/c.var".
172 alias id "d" = "cic:/CoRN/ftc/Composition/Interval_Continuity/d.var".
174 alias id "Hcd" = "cic:/CoRN/ftc/Composition/Interval_Continuity/Hcd.var".
176 alias id "F" = "cic:/CoRN/ftc/Composition/Interval_Continuity/F.var".
178 alias id "G" = "cic:/CoRN/ftc/Composition/Interval_Continuity/G.var".
182 alias id "contF" = "cic:/CoRN/ftc/Composition/Interval_Continuity/contF.var".
184 alias id "contG" = "cic:/CoRN/ftc/Composition/Interval_Continuity/contG.var".
186 alias id "Hmap" = "cic:/CoRN/ftc/Composition/Interval_Continuity/Hmap.var".
190 inline "cic:/CoRN/ftc/Composition/Continuous_I_comp.con".
193 End Interval_Continuity
202 We now work with the derivative relation and prove the chain rule for partial functions.
205 alias id "F" = "cic:/CoRN/ftc/Composition/Derivative/F.var".
207 alias id "F'" = "cic:/CoRN/ftc/Composition/Derivative/F'.var".
209 alias id "G" = "cic:/CoRN/ftc/Composition/Derivative/G.var".
211 alias id "G'" = "cic:/CoRN/ftc/Composition/Derivative/G'.var".
213 alias id "a" = "cic:/CoRN/ftc/Composition/Derivative/a.var".
215 alias id "b" = "cic:/CoRN/ftc/Composition/Derivative/b.var".
217 alias id "Hab'" = "cic:/CoRN/ftc/Composition/Derivative/Hab'.var".
219 alias id "c" = "cic:/CoRN/ftc/Composition/Derivative/c.var".
221 alias id "d" = "cic:/CoRN/ftc/Composition/Derivative/d.var".
223 alias id "Hcd'" = "cic:/CoRN/ftc/Composition/Derivative/Hcd'.var".
227 inline "cic:/CoRN/ftc/Composition/Derivative/Hab.con" "Derivative__".
229 inline "cic:/CoRN/ftc/Composition/Derivative/Hcd.con" "Derivative__".
231 inline "cic:/CoRN/ftc/Composition/Derivative/I.con" "Derivative__".
237 alias id "derF" = "cic:/CoRN/ftc/Composition/Derivative/derF.var".
239 alias id "derG" = "cic:/CoRN/ftc/Composition/Derivative/derG.var".
241 alias id "Hmap" = "cic:/CoRN/ftc/Composition/Derivative/Hmap.var".
245 inline "cic:/CoRN/ftc/Composition/included_comp'.con".
247 inline "cic:/CoRN/ftc/Composition/maps'.con".
249 inline "cic:/CoRN/ftc/Composition/Derivative_I_comp.con".
252 The next lemma will be useful when we move on to differentiability.
255 inline "cic:/CoRN/ftc/Composition/Diffble_I_comp_aux.con".
262 Section Differentiability
265 (*#* **Differentiability
267 Finally, we move on to differentiability.
270 alias id "F" = "cic:/CoRN/ftc/Composition/Differentiability/F.var".
272 alias id "G" = "cic:/CoRN/ftc/Composition/Differentiability/G.var".
274 alias id "a" = "cic:/CoRN/ftc/Composition/Differentiability/a.var".
276 alias id "b" = "cic:/CoRN/ftc/Composition/Differentiability/b.var".
278 alias id "Hab'" = "cic:/CoRN/ftc/Composition/Differentiability/Hab'.var".
280 alias id "c" = "cic:/CoRN/ftc/Composition/Differentiability/c.var".
282 alias id "d" = "cic:/CoRN/ftc/Composition/Differentiability/d.var".
284 alias id "Hcd'" = "cic:/CoRN/ftc/Composition/Differentiability/Hcd'.var".
288 inline "cic:/CoRN/ftc/Composition/Differentiability/Hab.con" "Differentiability__".
290 inline "cic:/CoRN/ftc/Composition/Differentiability/Hcd.con" "Differentiability__".
292 inline "cic:/CoRN/ftc/Composition/Differentiability/I.con" "Differentiability__".
298 alias id "diffF" = "cic:/CoRN/ftc/Composition/Differentiability/diffF.var".
300 alias id "diffG" = "cic:/CoRN/ftc/Composition/Differentiability/diffG.var".
302 alias id "Hmap" = "cic:/CoRN/ftc/Composition/Differentiability/Hmap.var".
306 inline "cic:/CoRN/ftc/Composition/Diffble_I_comp.con".
309 End Differentiability
313 Section Generalized_Intervals
316 (*#* **Generalizations
318 We now generalize this results to arbitrary intervals. We begin by generalizing the notion of mapping compacts into compacts.
320 %\begin{convention}% We assume [I,J] to be proper intervals.
324 alias id "I" = "cic:/CoRN/ftc/Composition/Generalized_Intervals/I.var".
326 alias id "J" = "cic:/CoRN/ftc/Composition/Generalized_Intervals/J.var".
328 alias id "pI" = "cic:/CoRN/ftc/Composition/Generalized_Intervals/pI.var".
330 alias id "pJ" = "cic:/CoRN/ftc/Composition/Generalized_Intervals/pJ.var".
332 inline "cic:/CoRN/ftc/Composition/maps_compacts_into.con".
335 Now everything comes naturally:
338 inline "cic:/CoRN/ftc/Composition/comp_inc_lemma.con".
340 alias id "F" = "cic:/CoRN/ftc/Composition/Generalized_Intervals/F.var".
342 alias id "F'" = "cic:/CoRN/ftc/Composition/Generalized_Intervals/F'.var".
344 alias id "G" = "cic:/CoRN/ftc/Composition/Generalized_Intervals/G.var".
346 alias id "G'" = "cic:/CoRN/ftc/Composition/Generalized_Intervals/G'.var".
350 alias id "Hmap" = "cic:/CoRN/ftc/Composition/Generalized_Intervals/Hmap.var".
354 inline "cic:/CoRN/ftc/Composition/Continuous_comp.con".
358 alias id "Hmap'" = "cic:/CoRN/ftc/Composition/Generalized_Intervals/Hmap'.var".
362 inline "cic:/CoRN/ftc/Composition/Derivative_comp.con".
365 End Generalized_Intervals
373 Finally, some criteria to prove that a function with a specific domain maps compacts into compacts:
376 inline "cic:/CoRN/ftc/Composition/positive_fun.con".
378 inline "cic:/CoRN/ftc/Composition/negative_fun.con".
380 inline "cic:/CoRN/ftc/Composition/positive_imp_maps_compacts_into.con".
382 inline "cic:/CoRN/ftc/Composition/negative_imp_maps_compacts_into.con".
384 inline "cic:/CoRN/ftc/Composition/Continuous_imp_maps_compacts_into.con".
387 As a corollary, we get the generalization of differentiability property.
390 inline "cic:/CoRN/ftc/Composition/Diffble_comp.con".
397 Hint Immediate included_comp: included.
401 Hint Immediate Continuous_I_comp Continuous_comp: continuous.