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/IntervalFunct".
19 (* $Id: IntervalFunct.v,v 1.5 2004/04/08 15:28:06 lcf Exp $ *)
29 (*#* * Functions with compact domain
31 In this section we concern ourselves with defining operations on the
32 set of functions from an arbitrary interval [[a,b]] to [IR].
33 Although these are a particular kind of partial function, they have
34 the advantage that, given [a] and [b], they have type [Set] and can
35 thus be quantified over and extracted from existential hypothesis.
36 This will be important when we want to define concepts like
37 differentiability, which involve the existence of an object satisfying
38 some given properties.
40 Throughout this section we will focus on a compact interval and define
41 operators analogous to those we already have for arbitrary partial
44 %\begin{convention}% Let [a,b] be real numbers and denote by [I] the
45 compact interval [[a,b]]. Let [f, g] be setoid functions of
50 inline cic:/CoRN/ftc/IntervalFunct/a.var.
52 inline cic:/CoRN/ftc/IntervalFunct/b.var.
54 inline cic:/CoRN/ftc/IntervalFunct/Hab.var.
58 inline cic:/CoRN/ftc/IntervalFunct/I.con.
62 inline cic:/CoRN/ftc/IntervalFunct/f.var.
64 inline cic:/CoRN/ftc/IntervalFunct/g.var.
71 Constant and identity functions are defined.
73 %\begin{convention}% Let [c:IR].
77 inline cic:/CoRN/ftc/IntervalFunct/c.var.
79 inline cic:/CoRN/ftc/IntervalFunct/IConst_strext.con.
81 inline cic:/CoRN/ftc/IntervalFunct/IConst.con.
87 inline cic:/CoRN/ftc/IntervalFunct/IId_strext.con.
89 inline cic:/CoRN/ftc/IntervalFunct/IId.con.
92 Next, we define addition, algebraic inverse, subtraction and product of functions.
95 inline cic:/CoRN/ftc/IntervalFunct/IPlus_strext.con.
97 inline cic:/CoRN/ftc/IntervalFunct/IPlus.con.
99 inline cic:/CoRN/ftc/IntervalFunct/IInv_strext.con.
101 inline cic:/CoRN/ftc/IntervalFunct/IInv.con.
103 inline cic:/CoRN/ftc/IntervalFunct/IMinus_strext.con.
105 inline cic:/CoRN/ftc/IntervalFunct/IMinus.con.
107 inline cic:/CoRN/ftc/IntervalFunct/IMult_strext.con.
109 inline cic:/CoRN/ftc/IntervalFunct/IMult.con.
116 Exponentiation to a natural power [n] is also useful.
119 inline cic:/CoRN/ftc/IntervalFunct/n.var.
121 inline cic:/CoRN/ftc/IntervalFunct/INth_strext.con.
123 inline cic:/CoRN/ftc/IntervalFunct/INth.con.
130 If a function is non-zero in all the interval then we can define its multiplicative inverse.
139 inline cic:/CoRN/ftc/IntervalFunct/Hg.var.
143 inline cic:/CoRN/ftc/IntervalFunct/IRecip_strext.con.
145 inline cic:/CoRN/ftc/IntervalFunct/IRecip.con.
147 inline cic:/CoRN/ftc/IntervalFunct/IDiv_strext.con.
149 inline cic:/CoRN/ftc/IntervalFunct/IDiv.con.
156 Absolute value will also be needed at some point.
159 inline cic:/CoRN/ftc/IntervalFunct/IAbs_strext.con.
161 inline cic:/CoRN/ftc/IntervalFunct/IAbs.con.
168 The set of these functions form a ring with relation to the operations
169 of sum and multiplication. As they actually form a set, this fact can
170 be proved in Coq for this class of functions; unfortunately, due to a
171 problem with the coercions, we are not able to use it (Coq will not
172 recognize the elements of that ring as functions which can be applied
173 to elements of [[a,b]]), so we merely state this fact here as a
176 Finally, we define composition; for this we need two functions with
179 %\begin{convention}% [a',b'] be real numbers and denote by [I'] the
180 compact interval [[a',b']], and let [g] be a setoid function of type
189 inline cic:/CoRN/ftc/IntervalFunct/a.var.
191 inline cic:/CoRN/ftc/IntervalFunct/b.var.
193 inline cic:/CoRN/ftc/IntervalFunct/Hab.var.
197 inline cic:/CoRN/ftc/IntervalFunct/I.con.
201 inline cic:/CoRN/ftc/IntervalFunct/a'.var.
203 inline cic:/CoRN/ftc/IntervalFunct/b'.var.
205 inline cic:/CoRN/ftc/IntervalFunct/Hab'.var.
209 inline cic:/CoRN/ftc/IntervalFunct/I'.con.
213 inline cic:/CoRN/ftc/IntervalFunct/f.var.
215 inline cic:/CoRN/ftc/IntervalFunct/g.var.
217 inline cic:/CoRN/ftc/IntervalFunct/Hfg.var.
219 inline cic:/CoRN/ftc/IntervalFunct/IComp_strext.con.
221 inline cic:/CoRN/ftc/IntervalFunct/IComp.con.
228 Implicit Arguments IConst [a b Hab].
232 Implicit Arguments IId [a b Hab].
236 Implicit Arguments IPlus [a b Hab].
240 Implicit Arguments IInv [a b Hab].
244 Implicit Arguments IMinus [a b Hab].
248 Implicit Arguments IMult [a b Hab].
252 Implicit Arguments INth [a b Hab].
256 Implicit Arguments IRecip [a b Hab].
260 Implicit Arguments IDiv [a b Hab].
264 Implicit Arguments IAbs [a b Hab].
268 Implicit Arguments IComp [a b Hab a' b' Hab'].