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 *********************)
19 (* $Id: Continuity.v,v 1.6 2004/04/23 10:00:58 lcf Exp $ *)
21 (*#* printing Norm_Funct %\ensuremath{\|\cdot\|}% *)
23 include "reals/NRootIR.ma".
25 include "ftc/FunctSums.ma".
28 Section Definitions_and_Basic_Results
33 Constructively, continuity is the most fundamental property of any
34 function---so strongly that no example is known of a constructive
35 function that is not continuous. However, the classical definition of
36 continuity is not good for our purposes, as it is not true, for
37 example, that a function which is continuous in a compact interval is
38 uniformly continuous in that same interval (for a discussion of this
39 see Bishop 1967). Thus, our notion of continuity will be the uniform
40 one#. #%\footnote{%Similar remarks apply to convergence of sequences
41 of functions, which we will define ahead, and elsewhere; we will
42 refrain from discussing this issue at those places.%}.%
44 %\begin{convention}% Throughout this section, [a] and [b] will be real
45 numbers, [I] will denote the compact interval [[a,b]] and
46 [F, G, H] will denote arbitrary partial functions with domains
47 respectively [P, Q] and [R].
50 ** Definitions and Basic Results
52 Here we define continuity and prove some basic properties of continuous functions.
55 alias id "a" = "cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/a.var".
57 alias id "b" = "cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/b.var".
59 alias id "Hab" = "cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/Hab.var".
63 inline procedural "cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/I.con" "Definitions_and_Basic_Results__" as definition.
67 alias id "F" = "cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/F.var".
71 inline procedural "cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/P.con" "Definitions_and_Basic_Results__" as definition.
75 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I.con" as definition.
78 For convenience, we distinguish the two properties of continuous functions.
81 inline procedural "cic:/CoRN/ftc/Continuity/contin_imp_inc.con" as lemma.
83 inline procedural "cic:/CoRN/ftc/Continuity/contin_prop.con" as lemma.
86 Assume [F] to be continuous in [I]. Then it has a least upper bound and a greater lower bound on [I].
89 alias id "contF" = "cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/contF.var".
93 inline procedural "cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/Hinc'.con" "Definitions_and_Basic_Results__" as definition.
97 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_imp_tb_image.con" as lemma.
99 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_imp_lub.con" as lemma.
101 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_imp_glb.con" as lemma.
104 We now make this glb and lub into operators.
107 inline procedural "cic:/CoRN/ftc/Continuity/lub_funct.con" as definition.
109 inline procedural "cic:/CoRN/ftc/Continuity/glb_funct.con" as definition.
112 These operators have the expected properties.
115 inline procedural "cic:/CoRN/ftc/Continuity/lub_is_lub.con" as lemma.
117 inline procedural "cic:/CoRN/ftc/Continuity/glb_is_glb.con" as lemma.
119 inline procedural "cic:/CoRN/ftc/Continuity/glb_prop.con" as lemma.
121 inline procedural "cic:/CoRN/ftc/Continuity/lub_prop.con" as lemma.
124 The norm of a function is defined as being the supremum of its absolute value; that is equivalent to the following definition (which is often more convenient to use).
127 inline procedural "cic:/CoRN/ftc/Continuity/Norm_Funct.con" as definition.
130 The norm effectively bounds the absolute value of a function.
133 inline procedural "cic:/CoRN/ftc/Continuity/norm_bnd_AbsIR.con" as lemma.
136 The following is another way of characterizing the norm:
139 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_imp_abs_lub.con" as lemma.
142 We now prove some basic properties of the norm---namely that it is positive, and that it provides a least upper bound for the absolute value of its argument.
145 inline procedural "cic:/CoRN/ftc/Continuity/positive_norm.con" as lemma.
147 inline procedural "cic:/CoRN/ftc/Continuity/norm_fun_lub.con" as lemma.
149 inline procedural "cic:/CoRN/ftc/Continuity/leEq_Norm_Funct.con" as lemma.
151 inline procedural "cic:/CoRN/ftc/Continuity/less_Norm_Funct.con" as lemma.
154 End Definitions_and_Basic_Results
158 Implicit Arguments Continuous_I [a b].
162 Implicit Arguments Norm_Funct [a b Hab F].
166 Section Local_Results
169 (*#* **Algebraic Properties
171 We now state and prove some results about continuous functions. Assume that [I] is included in the domain of both [F] and [G].
174 alias id "a" = "cic:/CoRN/ftc/Continuity/Local_Results/a.var".
176 alias id "b" = "cic:/CoRN/ftc/Continuity/Local_Results/b.var".
178 alias id "Hab" = "cic:/CoRN/ftc/Continuity/Local_Results/Hab.var".
182 inline procedural "cic:/CoRN/ftc/Continuity/Local_Results/I.con" "Local_Results__" as definition.
186 alias id "F" = "cic:/CoRN/ftc/Continuity/Local_Results/F.var".
188 alias id "G" = "cic:/CoRN/ftc/Continuity/Local_Results/G.var".
192 inline procedural "cic:/CoRN/ftc/Continuity/Local_Results/P.con" "Local_Results__" as definition.
194 inline procedural "cic:/CoRN/ftc/Continuity/Local_Results/Q.con" "Local_Results__" as definition.
198 alias id "incF" = "cic:/CoRN/ftc/Continuity/Local_Results/incF.var".
200 alias id "incG" = "cic:/CoRN/ftc/Continuity/Local_Results/incG.var".
203 The first result does not require the function to be continuous; however, its preconditions are easily verified by continuous functions, which justifies its inclusion in this section.
206 inline procedural "cic:/CoRN/ftc/Continuity/cont_no_sign_change.con" as lemma.
208 inline procedural "cic:/CoRN/ftc/Continuity/cont_no_sign_change_pos.con" as lemma.
210 inline procedural "cic:/CoRN/ftc/Continuity/cont_no_sign_change_neg.con" as lemma.
213 Being continuous is an extensional property.
216 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_wd.con" as lemma.
219 A continuous function remains continuous if you restrict its domain.
222 inline procedural "cic:/CoRN/ftc/Continuity/included_imp_contin.con" as lemma.
225 Constant functions and identity are continuous.
228 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_const.con" as lemma.
230 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_id.con" as lemma.
233 Assume [F] and [G] are continuous in [I]. Then functions derived from these through algebraic operations are also continuous, provided (in the case of reciprocal and division) some extra conditions are met.
236 alias id "contF" = "cic:/CoRN/ftc/Continuity/Local_Results/contF.var".
238 alias id "contG" = "cic:/CoRN/ftc/Continuity/Local_Results/contG.var".
240 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_plus.con" as lemma.
242 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_inv.con" as lemma.
244 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_mult.con" as lemma.
251 Transparent AbsIR Max.
254 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_max.con" as lemma.
258 alias id "Hg'" = "cic:/CoRN/ftc/Continuity/Local_Results/Hg'.var".
260 alias id "Hg''" = "cic:/CoRN/ftc/Continuity/Local_Results/Hg''.var".
264 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_recip.con" as lemma.
271 Hint Resolve contin_imp_inc: included.
278 alias id "a" = "cic:/CoRN/ftc/Continuity/Corolaries/a.var".
280 alias id "b" = "cic:/CoRN/ftc/Continuity/Corolaries/b.var".
282 alias id "Hab" = "cic:/CoRN/ftc/Continuity/Corolaries/Hab.var".
286 inline procedural "cic:/CoRN/ftc/Continuity/Corolaries/I.con" "Corolaries__" as definition.
290 alias id "F" = "cic:/CoRN/ftc/Continuity/Corolaries/F.var".
292 alias id "G" = "cic:/CoRN/ftc/Continuity/Corolaries/G.var".
296 inline procedural "cic:/CoRN/ftc/Continuity/Corolaries/P.con" "Corolaries__" as definition.
298 inline procedural "cic:/CoRN/ftc/Continuity/Corolaries/Q.con" "Corolaries__" as definition.
302 alias id "contF" = "cic:/CoRN/ftc/Continuity/Corolaries/contF.var".
304 alias id "contG" = "cic:/CoRN/ftc/Continuity/Corolaries/contG.var".
307 The corresponding properties for subtraction, division and
308 multiplication by a scalar are easily proved as corollaries;
309 exponentiation is proved by induction, appealing to the results on
310 product and constant functions.
313 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_minus.con" as lemma.
315 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_scal.con" as lemma.
317 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_nth.con" as lemma.
319 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_min.con" as lemma.
321 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_abs.con" as lemma.
323 alias id "Hg'" = "cic:/CoRN/ftc/Continuity/Corolaries/Hg'.var".
325 alias id "Hg''" = "cic:/CoRN/ftc/Continuity/Corolaries/Hg''.var".
327 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_div.con" as lemma.
342 We finally prove that the sum of an arbitrary family of continuous functions is still a continuous function.
345 alias id "a" = "cic:/CoRN/ftc/Continuity/Other/Sums/a.var".
347 alias id "b" = "cic:/CoRN/ftc/Continuity/Other/Sums/b.var".
349 alias id "Hab" = "cic:/CoRN/ftc/Continuity/Other/Sums/Hab.var".
351 alias id "Hab'" = "cic:/CoRN/ftc/Continuity/Other/Sums/Hab'.var".
355 inline procedural "cic:/CoRN/ftc/Continuity/Other/Sums/I.con" "Other__Sums__" as definition.
359 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_Sum0.con" as lemma.
361 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_Sumx.con" as lemma.
363 inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_Sum.con" as lemma.
370 For practical purposes, these characterization results are useful:
373 inline procedural "cic:/CoRN/ftc/Continuity/lub_charact.con" as lemma.
375 inline procedural "cic:/CoRN/ftc/Continuity/glb_charact.con" as lemma.
378 The following result is also extremely useful, as it allows us to set a lower bound on the glb of a function.
381 inline procedural "cic:/CoRN/ftc/Continuity/leEq_glb.con" as lemma.
384 The norm is also an extensional property.
387 inline procedural "cic:/CoRN/ftc/Continuity/Norm_Funct_wd.con" as lemma.
390 The value of the norm is covariant with the length of the interval.
393 inline procedural "cic:/CoRN/ftc/Continuity/included_imp_norm_leEq.con" as lemma.
400 Hint Resolve Continuous_I_const Continuous_I_id Continuous_I_plus
401 Continuous_I_inv Continuous_I_minus Continuous_I_mult Continuous_I_scal
402 Continuous_I_recip Continuous_I_max Continuous_I_min Continuous_I_div
403 Continuous_I_nth Continuous_I_abs: continuous.