X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Fsoftware%2Fmatita%2Fcontribs%2FCoRN-Decl%2Fftc%2FFunctSums.ma;fp=helm%2Fsoftware%2Fmatita%2Fcontribs%2FCoRN-Decl%2Fftc%2FFunctSums.ma;h=5006a55f98b7ba36b8222f3768ea11b864043c31;hb=3199f2a8428b5d19a3a803c1b03d9f90e4120f74;hp=0000000000000000000000000000000000000000;hpb=438a29376390222b94c1fe9772917c3aad50d42e;p=helm.git diff --git a/helm/software/matita/contribs/CoRN-Decl/ftc/FunctSums.ma b/helm/software/matita/contribs/CoRN-Decl/ftc/FunctSums.ma new file mode 100644 index 000000000..5006a55f9 --- /dev/null +++ b/helm/software/matita/contribs/CoRN-Decl/ftc/FunctSums.ma @@ -0,0 +1,167 @@ +(**************************************************************************) +(* ___ *) +(* ||M|| *) +(* ||A|| A project by Andrea Asperti *) +(* ||T|| *) +(* ||I|| Developers: *) +(* ||T|| The HELM team. *) +(* ||A|| http://helm.cs.unibo.it *) +(* \ / *) +(* \ / This file is distributed under the terms of the *) +(* v GNU General Public License Version 2 *) +(* *) +(**************************************************************************) + +(* This file was automatically generated: do not edit *********************) + +set "baseuri" "cic:/matita/CoRN-Decl/ftc/FunctSums". + +(* $Id: FunctSums.v,v 1.5 2004/04/23 10:00:59 lcf Exp $ *) + +(*#* printing FSum0 %\ensuremath{\sum_0}% #∑0# *) + +(*#* printing FSum %\ensuremath{\sum}% #∑# *) + +(*#* printing FSumx %\ensuremath{\sum'}% #∑'&*) + +(* INCLUDE +CSumsReals +*) + +(* INCLUDE +PartFunEquality +*) + +(*#* *Sums of Functions + +In this file we define sums are defined of arbitrary families of +partial functions. + +Given a countable family of functions, their sum is defined on the +intersection of all the domains. As is the case for groups, we will +define three different kinds of sums. + +We will first consider the case of a family +$\{f_i\}_{i\in\NN}$#{fi}# of functions; we can both define +$\sum_{i=0}^{n-1}f_i$#the sum of the first n functions# ( [FSum0]) or +$\sum_{i=m}^nf_i$#the sum of fm through fn# +( [FSum]). +*) + +inline cic:/CoRN/ftc/FunctSums/FSum0.con. + +inline cic:/CoRN/ftc/FunctSums/FSum.con. + +(*#* +Although [FSum] is here defined directly, it has the same relationship +to the [FSum0] operator as [Sum] has to [Sum0]. Also, all the results +for [Sum] and [Sum0] hold when these operators are replaced by their +functional equivalents. This is an immediate consequence of the fact +that the partial functions form a group; however, as we already +mentioned, their forming too big a type makes it impossible to use +those results. +*) + +inline cic:/CoRN/ftc/FunctSums/FSum_FSum0.con. + +inline cic:/CoRN/ftc/FunctSums/FSum0_wd.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_one.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_FSum.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_first.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_last.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_last'.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_wd.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_plus_FSum.con. + +inline cic:/CoRN/ftc/FunctSums/inv_FSum.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_minus_FSum.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_wd'.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_resp_less.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_resp_leEq.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_comm_scal.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_comm_scal'.con. + +(*#* +Also important is the case when we have a finite family +$\{f_i\}_{i=0}^{n-1}$ of #exactly n# functions; in this case we need +to use the [FSumx] operator. +*) + +inline cic:/CoRN/ftc/FunctSums/FSumx.con. + +(*#* +This operator is well defined, as expected. +*) + +inline cic:/CoRN/ftc/FunctSums/FSumx_wd.con. + +inline cic:/CoRN/ftc/FunctSums/FSumx_wd'.con. + +(*#* +As was already the case for [Sumx], in many cases we will need to +explicitly assume that $f_i$#f1# is independent of the proof that +[i [<] n]. This holds both for the value and the domain of the partial +function $f_i$#fi#. +*) + +inline cic:/CoRN/ftc/FunctSums/ext_fun_seq.con. + +inline cic:/CoRN/ftc/FunctSums/ext_fun_seq'.con. + +(* UNEXPORTED +Implicit Arguments ext_fun_seq [n]. +*) + +(* UNEXPORTED +Implicit Arguments ext_fun_seq' [n]. +*) + +(*#* +Under these assumptions, we can characterize the domain and the value of the sum function from the domains and values of the summands: +*) + +inline cic:/CoRN/ftc/FunctSums/FSumx_pred.con. + +inline cic:/CoRN/ftc/FunctSums/FSumx_pred'.con. + +inline cic:/CoRN/ftc/FunctSums/FSumx_char.con. + +(*#* +As we did for arbitrary groups, it is often useful to rewrite this sums as ordinary sums. +*) + +inline cic:/CoRN/ftc/FunctSums/FSumx_to_FSum.con. + +inline cic:/CoRN/ftc/FunctSums/FSumx_lt.con. + +inline cic:/CoRN/ftc/FunctSums/FSumx_le.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_FSumx_to_FSum.con. + +(*#* +Some useful lemmas follow. +*) + +inline cic:/CoRN/ftc/FunctSums/FSum0_0.con. + +inline cic:/CoRN/ftc/FunctSums/FSum0_S.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_0.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_S.con. + +inline cic:/CoRN/ftc/FunctSums/FSum_FSum0'.con. +