From: Ferruccio Guidi Date: Wed, 15 Nov 2006 19:52:45 +0000 (+0000) Subject: new CoRN development, generated by transcript X-Git-Tag: 0.4.95@7852~804 X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=commitdiff_plain;h=0e0d5c57eb154bf20d101f09e560401434156c1d;p=helm.git new CoRN development, generated by transcript --- diff --git a/matita/contribs/CoRN-Decl/CoRN.ma b/matita/contribs/CoRN-Decl/CoRN.ma new file mode 100644 index 000000000..45e4664b5 --- /dev/null +++ b/matita/contribs/CoRN-Decl/CoRN.ma @@ -0,0 +1,813 @@ +(**************************************************************************) +(* ___ *) +(* ||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/CoRN". + +(* From algebra/Basics ****************************************************) + +(* NOTATION +Notation Pair := (pair (B:=_)). +*) + +(* NOTATION +Notation Proj1 := (proj1 (B:=_)). +*) + +(* NOTATION +Notation Proj2 := (proj2 (B:=_)). +*) + +(* COERCION +Z_of_nat +*) + +(* From algebra/CAbGroups *************************************************) + +(* COERCION +cag_crr +*) + +(* From algebra/CAbMonoids ************************************************) + +(* COERCION +cam_crr +*) + +(* From algebra/CFields ***************************************************) + +(* COERCION +cf_crr +*) + +(* NOTATION +Notation "x [/] y [//] Hy" := (cf_div x y Hy) (at level 80). +*) + +(* NOTATION +Notation "{1/} x" := (Frecip x) (at level 2, right associativity). +*) + +(* NOTATION +Infix "{/}" := Fdiv (at level 41, no associativity). +*) + +(* From algebra/CGroups ***************************************************) + +(* COERCION +cg_crr +*) + +(* NOTATION +Notation "[--] x" := (cg_inv x) (at level 2, right associativity). +*) + +(* NOTATION +Infix "[-]" := cg_minus (at level 50, left associativity). +*) + +(* NOTATION +Notation "{--} x" := (Finv x) (at level 2, right associativity). +*) + +(* NOTATION +Infix "{-}" := Fminus (at level 50, left associativity). +*) + +(* From algebra/CLogic ****************************************************) + +(* NOTATION +Infix "IFF" := Iff (at level 60, right associativity). +*) + +(* NOTATION +Infix "or" := COr (at level 85, right associativity). +*) + +(* NOTATION +Infix "and" := CAnd (at level 80, right associativity). +*) + +(* NOTATION +Notation "{ x : A | P }" := (sigT (fun x : A => P):CProp) + (at level 0, x at level 99) : type_scope. +*) + +(* NOTATION +Notation "{ x : A | P | Q }" := + (sig2T A (fun x : A => P) (fun x : A => Q)) (at level 0, x at level 99) : + type_scope. +*) + +(* NOTATION +Notation ProjT1 := (proj1_sigT _ _). +*) + +(* NOTATION +Notation ProjT2 := (proj2_sigT _ _). +*) + +(* From algebra/CMonoids **************************************************) + +(* COERCION +cm_crr +*) + +(* NOTATION +Notation Zero := (cm_unit _). +*) + +(* From algebra/COrdAbs ***************************************************) + +(* NOTATION +Notation ZeroR := (Zero:R). +*) + +(* NOTATION +Notation AbsBig := (absBig _). +*) + +(* From algebra/COrdCauchy ************************************************) + +(* COERCION +CS_seq +*) + +(* From algebra/COrdFields ************************************************) + +(* COERCION +cof_crr +*) + +(* NOTATION +Infix "[<]" := cof_less (at level 70, no associativity). +*) + +(* NOTATION +Infix "[>]" := greater (at level 70, no associativity). +*) + +(* NOTATION +Infix "[<=]" := leEq (at level 70, no associativity). +*) + +(* NOTATION +Notation " x [/]OneNZ" := (x[/] One[//]ring_non_triv _) (at level 20). +*) + +(* NOTATION +Notation " x [/]TwoNZ" := (x[/] Two[//]two_ap_zero _) (at level 20). +*) + +(* NOTATION +Notation " x [/]ThreeNZ" := (x[/] Three[//]three_ap_zero _) (at level 20). +*) + +(* NOTATION +Notation " x [/]FourNZ" := (x[/] Four[//]four_ap_zero _) (at level 20). +*) + +(* NOTATION +Notation " x [/]SixNZ" := (x[/] Six[//]six_ap_zero _) (at level 20). +*) + +(* NOTATION +Notation " x [/]EightNZ" := (x[/] Eight[//]eight_ap_zero _) (at level 20). +*) + +(* NOTATION +Notation " x [/]NineNZ" := (x[/] Nine[//]nine_ap_zero _) (at level 20). +*) + +(* NOTATION +Notation " x [/]TwelveNZ" := (x[/] Twelve[//]twelve_ap_zero _) (at level 20). +*) + +(* NOTATION +Notation " x [/]SixteenNZ" := (x[/] Sixteen[//]sixteen_ap_zero _) (at level 20). +*) + +(* NOTATION +Notation " x [/]EighteenNZ" := (x[/] Eighteen[//]eighteen_ap_zero _) (at level 20). +*) + +(* NOTATION +Notation " x [/]TwentyFourNZ" := (x[/] TwentyFour[//]twentyfour_ap_zero _) (at level 20). +*) + +(* NOTATION +Notation " x [/]FortyEightNZ" := (x[/] FortyEight[//]fortyeight_ap_zero _) (at level 20). +*) + +(* From algebra/COrdFields2 ***********************************************) + +(* NOTATION +Notation ZeroR := (Zero:R). +*) + +(* NOTATION +Notation OneR := (One:R). +*) + +(* From algebra/CPoly_ApZero **********************************************) + +(* NOTATION +Notation RX := (cpoly_cring R). +*) + +(* NOTATION +Notation RX := (cpoly_cring R). +*) + +(* NOTATION +Notation RX := (cpoly_cring R). +*) + +(* From algebra/CPoly_Degree **********************************************) + +(* NOTATION +Notation RX := (cpoly_cring R). +*) + +(* NOTATION +Notation RX := (cpoly_cring R). +*) + +(* NOTATION +Notation FX := (cpoly_cring F). +*) + +(* From algebra/CPoly_NthCoeff ********************************************) + +(* NOTATION +Notation RX := (cpoly_cring R). +*) + +(* NOTATION +Notation RX := (cpoly_cring R). +*) + +(* From algebra/CPolynomials **********************************************) + +(* NOTATION +Infix "[+X*]" := cpoly_linear_fun' (at level 50, left associativity). +*) + +(* NOTATION +Notation RX := (cpoly_cring CR). +*) + +(* NOTATION +Infix "!" := cpoly_apply_fun (at level 1, no associativity). +*) + +(* NOTATION +Notation RX := (cpoly_cring R). +*) + +(* NOTATION +Notation Cpoly := (cpoly CR). +*) + +(* NOTATION +Notation Cpoly_zero := (cpoly_zero CR). +*) + +(* NOTATION +Notation Cpoly_linear := (cpoly_linear CR). +*) + +(* NOTATION +Notation Cpoly_cring := (cpoly_cring CR). +*) + +(* From algebra/CRings ****************************************************) + +(* COERCION +cr_crr +*) + +(* NOTATION +Notation One := (cr_one _). +*) + +(* NOTATION +Infix "[*]" := cr_mult (at level 40, left associativity). +*) + +(* NOTATION +Notation "x [^] n" := (nexp_op _ n x) (at level 20). +*) + +(* NOTATION +Notation Two := (nring 2). +*) + +(* NOTATION +Notation Three := (nring 3). +*) + +(* NOTATION +Notation Four := (nring 4). +*) + +(* NOTATION +Notation Six := (nring 6). +*) + +(* NOTATION +Notation Eight := (nring 8). +*) + +(* NOTATION +Notation Twelve := (nring 12). +*) + +(* NOTATION +Notation Sixteen := (nring 16). +*) + +(* NOTATION +Notation Nine := (nring 9). +*) + +(* NOTATION +Notation Eighteen := (nring 18). +*) + +(* NOTATION +Notation TwentyFour := (nring 24). +*) + +(* NOTATION +Notation FortyEight := (nring 48). +*) + +(* NOTATION +Infix "{*}" := Fmult (at level 40, left associativity). +*) + +(* NOTATION +Infix "{**}" := Fscalmult (at level 40, left associativity). +*) + +(* NOTATION +Infix "{^}" := Fnth (at level 30, right associativity). +*) + +(* From algebra/CSemiGroups ***********************************************) + +(* COERCION +csg_crr +*) + +(* NOTATION +Infix "[+]" := csg_op (at level 50, left associativity). +*) + +(* NOTATION +Infix "{+}" := Fplus (at level 50, left associativity). +*) + +(* From algebra/CSetoidFun ************************************************) + +(* NOTATION +Notation Conj := (conjP _). +*) + +(* COERCION +bpfpfun +*) + +(* NOTATION +Notation BDom := (bpfdom _ _). +*) + +(* COERCION +pfpfun +*) + +(* NOTATION +Notation Dom := (pfdom _). +*) + +(* NOTATION +Notation Part := (pfpfun _). +*) + +(* NOTATION +Notation "[-C-] x" := (Fconst x) (at level 2, right associativity). +*) + +(* NOTATION +Notation FId := (Fid _). +*) + +(* NOTATION +Infix "[o]" := Fcomp (at level 65, no associativity). +*) + +(* NOTATION +Notation Prj1 := (prj1 _ _ _ _). +*) + +(* NOTATION +Notation Prj2 := (prj2 _ _ _ _). +*) + +(* From algebra/CSetoids **************************************************) + +(* COERCION +cs_crr +*) + +(* NOTATION +Infix "[=]" := cs_eq (at level 70, no associativity). +*) + +(* NOTATION +Infix "[#]" := cs_ap (at level 70, no associativity). +*) + +(* NOTATION +Infix "[~=]" := cs_neq (at level 70, no associativity). +*) + +(* COERCION +csp_pred +*) + +(* COERCION +csp'_pred +*) + +(* COERCION +csr_rel +*) + +(* COERCION +Ccsr_rel +*) + +(* COERCION +csf_fun +*) + +(* COERCION +csbf_fun +*) + +(* COERCION +un_op_fun +*) + +(* COERCION +bin_op_bin_fun +*) + +(* COERCION +outer_op_bin_fun +*) + +(* COERCION +scs_elem +*) + +(* From algebra/CVectorSpace **********************************************) + +(* COERCION +vs_vs +*) + +(* NOTATION +Infix "[']" := vs_op (at level 30, no associativity). +*) + +(* From algebra/Expon *****************************************************) + +(* NOTATION +Notation "( x [//] Hx ) [^^] n" := (zexp x Hx n) (at level 0). +*) + +(* From complex/CComplex **************************************************) + +(* NOTATION +Notation CCX := (cpoly_cring CC). +*) + +(* NOTATION +Infix "[+I*]" := cc_set_CC (at level 48, no associativity). +*) + +(* From fta/CC_Props ******************************************************) + +(* COERCION +CC_seq +*) + +(* From fta/FTAreg ********************************************************) + +(* COERCION +z_el +*) + +(* COERCION +Kntup +*) + +(* From ftc/FTC ***********************************************************) + +(* NOTATION +Notation "[-S-] F" := (Fprim F) (at level 20). +*) + +(* From ftc/Integral ******************************************************) + +(* NOTATION +Notation Integral := (integral _ _ Hab). +*) + +(* From ftc/MoreIntervals *************************************************) + +(* COERCION +iprop +*) + +(* From ftc/Partitions ****************************************************) + +(* COERCION +Pts +*) + +(* From ftc/RefLemma ******************************************************) + +(* NOTATION +Notation g := RL_g. +*) + +(* NOTATION +Notation h := RL_h. +*) + +(* NOTATION +Notation just1 := (incF _ (Pts_part_lemma _ _ _ _ _ _ HfP _ _)). +*) + +(* NOTATION +Notation just2 := (incF _ (Pts_part_lemma _ _ _ _ _ _ HfQ _ _)). +*) + +(* NOTATION +Notation just := (fun z => incF _ (Pts_part_lemma _ _ _ _ _ _ z _ _)). +*) + +(* From ftc/RefSeparated **************************************************) + +(* NOTATION +Notation just1 := (incF _ (Pts_part_lemma _ _ _ _ _ _ gP _ _)). +*) + +(* NOTATION +Notation just2 := + (incF _ (Pts_part_lemma _ _ _ _ _ _ sep__sep_points_lemma _ _)). +*) + +(* From ftc/RefSeparating *************************************************) + +(* NOTATION +Notation m := RS'_m. +*) + +(* NOTATION +Notation h := RS'_h. +*) + +(* NOTATION +Notation just1 := (incF _ (Pts_part_lemma _ _ _ _ _ _ gP _ _)). +*) + +(* NOTATION +Notation just2 := + (incF _ (Pts_part_lemma _ _ _ _ _ _ sep__part_pts_in_Partition _ _)). +*) + +(* From ftc/Rolle *********************************************************) + +(* NOTATION +Notation cp := (compact_part a b Hab' d Hd). +*) + +(* From ftc/TaylorLemma ***************************************************) + +(* NOTATION +Notation A := (Build_subcsetoid_crr IR _ _ TL_compact_a). +*) + +(* NOTATION +Notation B := (Build_subcsetoid_crr IR _ _ TL_compact_b). +*) + +(* From ftc/WeakIVT *******************************************************) + +(* NOTATION +Infix "**" := prodT (at level 20). +*) + +(* From metrics/CMetricSpaces *********************************************) + +(* COERCION +scms_crr +*) + +(* From metrics/CPseudoMSpaces ********************************************) + +(* COERCION +cms_crr +*) + +(* NOTATION +Infix "[-d]" := cms_d (at level 68, left associativity). +*) + +(* From model/structures/Nsec *********************************************) + +(* NOTATION +Infix "{#N}" := ap_nat (no associativity, at level 90). +*) + +(* From model/structures/Qsec *********************************************) + +(* NOTATION +Infix "{=Q}" := Qeq (no associativity, at level 90). +*) + +(* NOTATION +Infix "{#Q}" := Qap (no associativity, at level 90). +*) + +(* NOTATION +Infix "{N# *) + +(*#* printing Z %\ensuremath{\mathbb Z}% #Z# *) + +(* INCLUDE +Omega +*) + +(* INCLUDE +Even +*) + +(* INCLUDE +Max +*) + +(* INCLUDE +Min +*) + +(* INCLUDE +ListType +*) + +(*#* *Basics +This is random stuff that should be in the Coq basic library. +*) + +inline cic:/CoRN/algebra/Basics/lt_le_dec.con. + +inline cic:/CoRN/algebra/Basics/lt_z_two.con. + +inline cic:/CoRN/algebra/Basics/le_pred.con. + +inline cic:/CoRN/algebra/Basics/lt_mult_right.con. + +inline cic:/CoRN/algebra/Basics/le_mult_right.con. + +(*#* The power function does not exist in the standard library *) + +inline cic:/CoRN/algebra/Basics/power.con. + +(*#* Factorial function. Does not exist in Arith. +Needed for special operations on polynomials. *) + +inline cic:/CoRN/algebra/Basics/fac.con. + +inline cic:/CoRN/algebra/Basics/nat_fac_gtzero.con. + +(* needed for computational behavior of "Inversion" tactic *) + +(* UNEXPORTED +Transparent sym_eq. +*) + +(* UNEXPORTED +Transparent f_equal. +*) + +(* Following only needed in finite, but tha's now obsolete + +Lemma deMorgan_or_and: (A,B,X:Prop)((A\/B)->X)->(A->X)/\(B->X). +Tauto. +Qed. + +Lemma deMorgan_and_or: (A,B,X:Prop)(A->X)/\(B->X)->(A\/B->X). +Tauto. +Qed. + +Lemma deMorgan_ex_all: + (A:Set)(P:A->Prop)(X:Prop)((Ex P)->X)->(a:A)(P a)->X. +Intros. Apply H; Exists a; Assumption. +Qed. + +Lemma deMorgan_all_ex: + (A:Set)(P:A->Prop)(X:Prop)((a:A)(P a)->X)->(Ex P)->X. +Intros. Elim H0; Assumption. +Qed. + +Implicit Arguments Off. + +Three lemmas for proving properties about definitions made with case +distinction to a sumbool, i.e. [{A} + {B}]. + +Lemma sumbool_rec_or : (A,B:Prop)(S:Set)(l,r:S)(s:{A}+{B}) + (sumbool_rec A B [_:{A}+{B}]S [x:A]l [x:B]r s) = l \/ + (sumbool_rec A B [_:{A}+{B}]S [x:A]l [x:B]r s) = r. +Intros. Elim s. +Intros. Left. Reflexivity. +Intros. Right. Reflexivity. +Qed. +*) + +inline cic:/CoRN/algebra/Basics/not_r_sumbool_rec.con. + +inline cic:/CoRN/algebra/Basics/not_l_sumbool_rec.con. + +(* begin hide *) + +(* UNEXPORTED +Set Implicit Arguments. +*) + +(* UNEXPORTED +Unset Strict Implicit. +*) + +(* end hide *) + +(*#* **Some results about [Z] + +We consider the injection [inject_nat] from [nat] to [Z] as a +coercion. *) + +(* begin hide *) + +(* end hide *) + +inline cic:/CoRN/algebra/Basics/POS_anti_convert.con. + +inline cic:/CoRN/algebra/Basics/NEG_anti_convert.con. + +inline cic:/CoRN/algebra/Basics/lt_O_positive_to_nat.con. + +inline cic:/CoRN/algebra/Basics/anti_convert_pred_convert.con. + +inline cic:/CoRN/algebra/Basics/p_is_some_anti_convert.con. + +inline cic:/CoRN/algebra/Basics/convert_is_POS.con. + +inline cic:/CoRN/algebra/Basics/min_convert_is_NEG.con. + +inline cic:/CoRN/algebra/Basics/inject_nat_convert.con. + +inline cic:/CoRN/algebra/Basics/Z_exh.con. + +inline cic:/CoRN/algebra/Basics/nats_Z_ind.con. + +inline cic:/CoRN/algebra/Basics/pred_succ_Z_ind.con. + +inline cic:/CoRN/algebra/Basics/Zmult_minus_distr_r.con. + +inline cic:/CoRN/algebra/Basics/Zodd_Zeven_min1.con. + +(* begin hide *) + +(* UNEXPORTED +Set Implicit Arguments. +*) + +(* UNEXPORTED +Unset Strict Implicit. +*) + +(* end hide *) + +inline cic:/CoRN/algebra/Basics/caseZ_diff.con. + +(* begin hide *) + +(* UNEXPORTED +Set Strict Implicit. +*) + +(* UNEXPORTED +Unset Implicit Arguments. +*) + +(* end hide *) + +inline cic:/CoRN/algebra/Basics/caseZ_diff_O.con. + +inline cic:/CoRN/algebra/Basics/caseZ_diff_Pos.con. + +inline cic:/CoRN/algebra/Basics/caseZ_diff_Neg.con. + +inline cic:/CoRN/algebra/Basics/proper_caseZ_diff.con. + +inline cic:/CoRN/algebra/Basics/diff_Z_ind.con. + +inline cic:/CoRN/algebra/Basics/Zlt_reg_mult_l.con. + +inline cic:/CoRN/algebra/Basics/Zlt_opp.con. + +inline cic:/CoRN/algebra/Basics/Zlt_conv_mult_l.con. + +inline cic:/CoRN/algebra/Basics/Zgt_not_eq.con. + +inline cic:/CoRN/algebra/Basics/Zmult_absorb.con. + +(* UNEXPORTED +Section Well_foundedT. +*) + +inline cic:/CoRN/algebra/Basics/A.var. + +inline cic:/CoRN/algebra/Basics/R.var. + +(*#* The accessibility predicate is defined to be non-informative *) + +inline cic:/CoRN/algebra/Basics/Acc.ind. + +(* UNEXPORTED +End Well_foundedT. +*) + +(* UNEXPORTED +Section AccT. +*) + +inline cic:/CoRN/algebra/Basics/A.var. + +inline cic:/CoRN/algebra/Basics/well_founded.con. + +(* UNEXPORTED +End AccT. +*) + +(* UNEXPORTED +Implicit Arguments Acc [A]. +*) + +(* UNEXPORTED +Section IndT. +*) + +inline cic:/CoRN/algebra/Basics/A.var. + +inline cic:/CoRN/algebra/Basics/R.var. + +(* UNEXPORTED +Section AccIter. +*) + +inline cic:/CoRN/algebra/Basics/P.var. + +inline cic:/CoRN/algebra/Basics/F.var. + +inline cic:/CoRN/algebra/Basics/Acc_inv.con. + +inline cic:/CoRN/algebra/Basics/Acc_iter.con. + +(* UNEXPORTED +End AccIter. +*) + +inline cic:/CoRN/algebra/Basics/Rwf.var. + +inline cic:/CoRN/algebra/Basics/well_founded_induction_type.con. + +(* UNEXPORTED +End IndT. +*) + +(* UNEXPORTED +Section InductionT. +*) + +inline cic:/CoRN/algebra/Basics/A.var. + +inline cic:/CoRN/algebra/Basics/f.var. + +inline cic:/CoRN/algebra/Basics/ltof.con. + +inline cic:/CoRN/algebra/Basics/well_founded_ltof.con. + +inline cic:/CoRN/algebra/Basics/induction_ltof2T.con. + +(* UNEXPORTED +End InductionT. +*) + +(* UNEXPORTED +Section InductionTT. +*) + +inline cic:/CoRN/algebra/Basics/lt_wf_rect.con. + +(* UNEXPORTED +End InductionTT. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CAbGroups.ma b/matita/contribs/CoRN-Decl/algebra/CAbGroups.ma new file mode 100644 index 000000000..b137c572c --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CAbGroups.ma @@ -0,0 +1,302 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CAbGroups". + +(* INCLUDE +CGroups +*) + +(* UNEXPORTED +Section Abelian_Groups. +*) + +(*#* +* Abelian Groups +Now we introduce commutativity and add some results. +*) + +inline cic:/CoRN/algebra/CAbGroups/is_CAbGroup.con. + +inline cic:/CoRN/algebra/CAbGroups/CAbGroup.ind. + +(* UNEXPORTED +Section AbGroup_Axioms. +*) + +inline cic:/CoRN/algebra/CAbGroups/G.var. + +(*#* +%\begin{convention}% Let [G] be an Abelian Group. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CAbGroups/CAbGroup_is_CAbGroup.con. + +inline cic:/CoRN/algebra/CAbGroups/cag_commutes.con. + +inline cic:/CoRN/algebra/CAbGroups/cag_commutes_unfolded.con. + +(* UNEXPORTED +End AbGroup_Axioms. +*) + +(* UNEXPORTED +Section SubCAbGroups. +*) + +(*#* +** Subgroups of an Abelian Group +*) + +inline cic:/CoRN/algebra/CAbGroups/G.var. + +inline cic:/CoRN/algebra/CAbGroups/P.var. + +inline cic:/CoRN/algebra/CAbGroups/Punit.var. + +inline cic:/CoRN/algebra/CAbGroups/op_pres_P.var. + +inline cic:/CoRN/algebra/CAbGroups/inv_pres_P.var. + +(*#* +%\begin{convention}% +Let [G] be an Abelian Group and [P] be a ([CProp]-valued) predicate on [G] +that contains [Zero] and is closed under [[+]] and [[--]]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CAbGroups/subcrr.con. + +inline cic:/CoRN/algebra/CAbGroups/isabgrp_scrr.con. + +inline cic:/CoRN/algebra/CAbGroups/Build_SubCAbGroup.con. + +(* UNEXPORTED +End SubCAbGroups. +*) + +(* UNEXPORTED +Section Various. +*) + +(*#* +** Basic properties of Abelian groups +*) + +(* UNEXPORTED +Hint Resolve cag_commutes_unfolded: algebra. +*) + +inline cic:/CoRN/algebra/CAbGroups/G.var. + +(*#* +%\begin{convention}% Let [G] be an Abelian Group. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CAbGroups/cag_op_inv.con. + +(* UNEXPORTED +Hint Resolve cag_op_inv: algebra. +*) + +inline cic:/CoRN/algebra/CAbGroups/assoc_1.con. + +inline cic:/CoRN/algebra/CAbGroups/minus_plus.con. + +inline cic:/CoRN/algebra/CAbGroups/op_lft_resp_ap.con. + +inline cic:/CoRN/algebra/CAbGroups/cag_ap_cancel_lft.con. + +inline cic:/CoRN/algebra/CAbGroups/plus_cancel_ap_lft.con. + +(* UNEXPORTED +End Various. +*) + +(* UNEXPORTED +End Abelian_Groups. +*) + +(* UNEXPORTED +Hint Resolve cag_commutes_unfolded: algebra. +*) + +(* UNEXPORTED +Hint Resolve cag_op_inv assoc_1 zero_minus minus_plus op_lft_resp_ap: algebra. +*) + +(* UNEXPORTED +Section Nice_Char. +*) + +(*#* +** Building an abelian group + +In order to actually define concrete abelian groups, +it is not in general practical to construct first a semigroup, +then a monoid, then a group and finally an abelian group. The +presence of commutativity, for example, makes many of the monoid +proofs trivial. In this section, we provide a constructor that +will allow us to go directly from a setoid to an abelian group. + +We start from a setoid S with an element [unit], a +commutative and associative binary operation [plus] which +is strongly extensional in its first argument and admits [unit] +as a left unit, and a unary setoid +function [inv] which inverts elements respective to [plus]. +*) + +inline cic:/CoRN/algebra/CAbGroups/S.var. + +inline cic:/CoRN/algebra/CAbGroups/unit.var. + +inline cic:/CoRN/algebra/CAbGroups/plus.var. + +(*#* +%\begin{convention}% +Let [S] be a Setoid and [unit:S], [plus:S->S->S] and [inv] a unary +setoid operation on [S]. +Assume that [plus] is commutative, associative and `left-strongly-extensional +([(plus x z) [#] (plus y z) -> x [#] y]), that [unit] is a left-unit +for [plus] and [(inv x)] is a right-inverse of [x] w.r.t.%\% [plus]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CAbGroups/plus_lext.var. + +inline cic:/CoRN/algebra/CAbGroups/plus_lunit.var. + +inline cic:/CoRN/algebra/CAbGroups/plus_comm.var. + +inline cic:/CoRN/algebra/CAbGroups/plus_assoc.var. + +inline cic:/CoRN/algebra/CAbGroups/inv.var. + +inline cic:/CoRN/algebra/CAbGroups/inv_inv.var. + +inline cic:/CoRN/algebra/CAbGroups/plus_rext.con. + +inline cic:/CoRN/algebra/CAbGroups/plus_runit.con. + +inline cic:/CoRN/algebra/CAbGroups/plus_is_fun.con. + +inline cic:/CoRN/algebra/CAbGroups/inv_inv'.con. + +inline cic:/CoRN/algebra/CAbGroups/plus_fun.con. + +inline cic:/CoRN/algebra/CAbGroups/Build_CSemiGroup'.con. + +inline cic:/CoRN/algebra/CAbGroups/Build_CMonoid'.con. + +inline cic:/CoRN/algebra/CAbGroups/Build_CGroup'.con. + +inline cic:/CoRN/algebra/CAbGroups/Build_CAbGroup'.con. + +(* UNEXPORTED +End Nice_Char. +*) + +(*#* ** Iteration + +For reflection the following is needed; hopefully it is also useful. +*) + +(* UNEXPORTED +Section Group_Extras. +*) + +inline cic:/CoRN/algebra/CAbGroups/G.var. + +inline cic:/CoRN/algebra/CAbGroups/nmult.con. + +inline cic:/CoRN/algebra/CAbGroups/nmult_wd.con. + +inline cic:/CoRN/algebra/CAbGroups/nmult_one.con. + +inline cic:/CoRN/algebra/CAbGroups/nmult_Zero.con. + +inline cic:/CoRN/algebra/CAbGroups/nmult_plus.con. + +inline cic:/CoRN/algebra/CAbGroups/nmult_mult.con. + +inline cic:/CoRN/algebra/CAbGroups/nmult_inv.con. + +inline cic:/CoRN/algebra/CAbGroups/nmult_plus'.con. + +(* UNEXPORTED +Hint Resolve nmult_wd nmult_Zero nmult_inv nmult_plus nmult_plus': algebra. +*) + +inline cic:/CoRN/algebra/CAbGroups/zmult.con. + +(* +Lemma Zeq_imp_nat_eq : forall m n:nat, m = n -> m = n. +auto. +intro m; induction m. +intro n; induction n; auto. + +intro; induction n. +intro. inversion H. +intros. +rewrite (IHm n). +auto. +repeat rewrite inj_S in H. +auto with zarith. +Qed. +*) + +inline cic:/CoRN/algebra/CAbGroups/zmult_char.con. + +inline cic:/CoRN/algebra/CAbGroups/zmult_wd.con. + +inline cic:/CoRN/algebra/CAbGroups/zmult_one.con. + +inline cic:/CoRN/algebra/CAbGroups/zmult_min_one.con. + +inline cic:/CoRN/algebra/CAbGroups/zmult_zero.con. + +inline cic:/CoRN/algebra/CAbGroups/zmult_Zero.con. + +(* UNEXPORTED +Hint Resolve zmult_zero: algebra. +*) + +inline cic:/CoRN/algebra/CAbGroups/zmult_plus.con. + +inline cic:/CoRN/algebra/CAbGroups/zmult_mult.con. + +inline cic:/CoRN/algebra/CAbGroups/zmult_plus'.con. + +(* UNEXPORTED +End Group_Extras. +*) + +(* UNEXPORTED +Hint Resolve nmult_wd nmult_one nmult_Zero nmult_plus nmult_inv nmult_mult + nmult_plus' zmult_wd zmult_one zmult_min_one zmult_zero zmult_Zero + zmult_plus zmult_mult zmult_plus': algebra. +*) + +(* UNEXPORTED +Implicit Arguments nmult [G]. +*) + +(* UNEXPORTED +Implicit Arguments zmult [G]. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CAbMonoids.ma b/matita/contribs/CoRN-Decl/algebra/CAbMonoids.ma new file mode 100644 index 000000000..8b671e37f --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CAbMonoids.ma @@ -0,0 +1,97 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CAbMonoids". + +(* INCLUDE +CMonoids +*) + +(* UNEXPORTED +Section Abelian_Monoids. +*) + +(*#* +* Abelian Monoids +Now we introduce commutativity and add some results. +*) + +inline cic:/CoRN/algebra/CAbMonoids/is_CAbMonoid.con. + +inline cic:/CoRN/algebra/CAbMonoids/CAbMonoid.ind. + +(* UNEXPORTED +Section AbMonoid_Axioms. +*) + +inline cic:/CoRN/algebra/CAbMonoids/M.var. + +(*#* +%\begin{convention}% Let [M] be an abelian monoid. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CAbMonoids/CAbMonoid_is_CAbMonoid.con. + +inline cic:/CoRN/algebra/CAbMonoids/cam_commutes.con. + +inline cic:/CoRN/algebra/CAbMonoids/cam_commutes_unfolded.con. + +(* UNEXPORTED +End AbMonoid_Axioms. +*) + +(* UNEXPORTED +Section SubCAbMonoids. +*) + +(*#* +** Subgroups of an Abelian Monoid +*) + +inline cic:/CoRN/algebra/CAbMonoids/M.var. + +inline cic:/CoRN/algebra/CAbMonoids/P.var. + +inline cic:/CoRN/algebra/CAbMonoids/Punit.var. + +inline cic:/CoRN/algebra/CAbMonoids/op_pres_P.var. + +(*#* +%\begin{convention}% +Let [M] be an Abelian Monoid and [P] be a ([CProp]-valued) predicate on [M] +that contains [Zero] and is closed under [[+]] and [[--]]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CAbMonoids/subcrr.con. + +inline cic:/CoRN/algebra/CAbMonoids/isabgrp_scrr.con. + +inline cic:/CoRN/algebra/CAbMonoids/Build_SubCAbMonoid.con. + +(* UNEXPORTED +End SubCAbMonoids. +*) + +(* UNEXPORTED +End Abelian_Monoids. +*) + +(* UNEXPORTED +Hint Resolve cam_commutes_unfolded: algebra. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CFields.ma b/matita/contribs/CoRN-Decl/algebra/CFields.ma new file mode 100644 index 000000000..606136603 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CFields.ma @@ -0,0 +1,571 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CFields". + +(* $Id: CFields.v,v 1.12 2004/04/23 10:00:52 lcf Exp $ *) + +(*#* printing [/] %\ensuremath{/}% #/# *) + +(*#* printing [//] %\ensuremath\ddagger% #‡# *) + +(*#* printing {/} %\ensuremath{/}% #/# *) + +(*#* printing {1/} %\ensuremath{\frac1\cdot}% #1/# *) + +(*#* printing [/]?[//] %\ensuremath{/?\ddagger}% #/?‡# *) + +(* INCLUDE +CRings +*) + +(* UNEXPORTED +Transparent sym_eq. +*) + +(* UNEXPORTED +Transparent f_equal. +*) + +(* UNEXPORTED +Transparent cs_crr. +*) + +(* UNEXPORTED +Transparent csg_crr. +*) + +(* UNEXPORTED +Transparent cm_crr. +*) + +(* UNEXPORTED +Transparent cg_crr. +*) + +(* UNEXPORTED +Transparent cr_crr. +*) + +(* UNEXPORTED +Transparent csf_fun. +*) + +(* UNEXPORTED +Transparent csbf_fun. +*) + +(* UNEXPORTED +Transparent csr_rel. +*) + +(* UNEXPORTED +Transparent cs_eq. +*) + +(* UNEXPORTED +Transparent cs_neq. +*) + +(* UNEXPORTED +Transparent cs_ap. +*) + +(* UNEXPORTED +Transparent cm_unit. +*) + +(* UNEXPORTED +Transparent csg_op. +*) + +(* UNEXPORTED +Transparent cg_inv. +*) + +(* UNEXPORTED +Transparent cg_minus. +*) + +(* UNEXPORTED +Transparent cr_one. +*) + +(* UNEXPORTED +Transparent cr_mult. +*) + +(* UNEXPORTED +Transparent nexp_op. +*) + +(* Begin_SpecReals *) + +(* FIELDS *) + +(*#* +* Fields %\label{section:fields}% +** Definition of the notion Field +*) + +inline cic:/CoRN/algebra/CFields/is_CField.con. + +inline cic:/CoRN/algebra/CFields/CField.ind. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CFields/f_rcpcl'.con. + +inline cic:/CoRN/algebra/CFields/f_rcpcl.con. + +(* UNEXPORTED +Implicit Arguments f_rcpcl [F]. +*) + +(*#* +[cf_div] is the division in a field. It is defined in terms of +multiplication and the reciprocal. [x[/]y] is only defined if +we have a proof of [y [#] Zero]. +*) + +inline cic:/CoRN/algebra/CFields/cf_div.con. + +(* UNEXPORTED +Implicit Arguments cf_div [F]. +*) + +(*#* +%\begin{convention}\label{convention:div-form}% +- Division in fields is a (type dependent) ternary function: [(cf_div x y Hy)] is denoted infix by [x [/] y [//] Hy]. +- In lemmas, a hypothesis that [t [#] Zero] will be named [t_]. +- We do not use [NonZeros], but write the condition [ [#] Zero] separately. +- In each lemma, we use only variables for proof objects, and these variables + are universally quantified. +For example, the informal lemma +$\frac{1}{x}\cdot\frac{1}{y} = \frac{1}{x\cdot y}$ +#(1/x).(1/y) = 1/(x.y)# for all [x] and [y]is formalized as +[[ +forall (x y : F) x_ y_ xy_, (1[/]x[//]x_) [*] (1[/]y[//]y_) [=] 1[/] (x[*]y)[//]xy_ +]] +and not as +[[ +forall (x y : F) x_ y_, (1[/]x[//]x_) [*] (1[/]y[//]y_) [=] 1[/] (x[*]y)[//](prod_nz x y x_ y_) +]] +We have made this choice to make it easier to apply lemmas; this can +be quite awkward if we would use the last formulation. +- So every division occurring in the formulation of a lemma is of the +form [e[/]e'[//]H] where [H] is a variable. Only exceptions: we may +write [e[/] (Snring n)] and [e[/]TwoNZ], [e[/]ThreeNZ] and so on. +(Constants like [TwoNZ] will be defined later on.) + +%\end{convention}% + +** Field axioms +%\begin{convention}% Let [F] be a field. +%\end{convention}% +*) + +(* UNEXPORTED +Section Field_axioms. +*) + +inline cic:/CoRN/algebra/CFields/F.var. + +inline cic:/CoRN/algebra/CFields/CField_is_CField.con. + +inline cic:/CoRN/algebra/CFields/rcpcl_is_inverse.con. + +(* UNEXPORTED +End Field_axioms. +*) + +(* UNEXPORTED +Section Field_basics. +*) + +(*#* ** Field basics +%\begin{convention}% Let [F] be a field. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CFields/F.var. + +inline cic:/CoRN/algebra/CFields/rcpcl_is_inverse_unfolded.con. + +inline cic:/CoRN/algebra/CFields/field_mult_inv.con. + +(* UNEXPORTED +Hint Resolve field_mult_inv: algebra. +*) + +inline cic:/CoRN/algebra/CFields/field_mult_inv_op.con. + +(* UNEXPORTED +End Field_basics. +*) + +(* UNEXPORTED +Hint Resolve field_mult_inv field_mult_inv_op: algebra. +*) + +(* UNEXPORTED +Section Field_multiplication. +*) + +(*#* +** Properties of multiplication +%\begin{convention}% Let [F] be a field. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CFields/F.var. + +inline cic:/CoRN/algebra/CFields/mult_resp_ap_zero.con. + +inline cic:/CoRN/algebra/CFields/mult_lft_resp_ap.con. + +inline cic:/CoRN/algebra/CFields/mult_rht_resp_ap.con. + +inline cic:/CoRN/algebra/CFields/mult_resp_neq_zero.con. + +inline cic:/CoRN/algebra/CFields/mult_resp_neq.con. + +inline cic:/CoRN/algebra/CFields/mult_eq_zero.con. + +inline cic:/CoRN/algebra/CFields/mult_cancel_lft.con. + +inline cic:/CoRN/algebra/CFields/mult_cancel_rht.con. + +inline cic:/CoRN/algebra/CFields/square_eq_aux.con. + +inline cic:/CoRN/algebra/CFields/square_eq_weak.con. + +inline cic:/CoRN/algebra/CFields/cond_square_eq.con. + +(* UNEXPORTED +End Field_multiplication. +*) + +(* UNEXPORTED +Section x_square. +*) + +inline cic:/CoRN/algebra/CFields/x_xminone.con. + +inline cic:/CoRN/algebra/CFields/square_id.con. + +(* UNEXPORTED +End x_square. +*) + +(* UNEXPORTED +Hint Resolve mult_resp_ap_zero: algebra. +*) + +(* UNEXPORTED +Section Rcpcl_properties. +*) + +(*#* +** Properties of reciprocal +%\begin{convention}% Let [F] be a field. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CFields/F.var. + +inline cic:/CoRN/algebra/CFields/inv_one.con. + +inline cic:/CoRN/algebra/CFields/f_rcpcl_wd.con. + +inline cic:/CoRN/algebra/CFields/f_rcpcl_mult.con. + +inline cic:/CoRN/algebra/CFields/f_rcpcl_resp_ap_zero.con. + +inline cic:/CoRN/algebra/CFields/f_rcpcl_f_rcpcl.con. + +(* UNEXPORTED +End Rcpcl_properties. +*) + +(* UNEXPORTED +Section MultipGroup. +*) + +(*#* +** The multiplicative group of nonzeros of a field. +%\begin{convention}% Let [F] be a field +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CFields/F.var. + +(*#* +The multiplicative monoid of NonZeros. +*) + +inline cic:/CoRN/algebra/CFields/NonZeroMonoid.con. + +inline cic:/CoRN/algebra/CFields/fmg_cs_inv.con. + +inline cic:/CoRN/algebra/CFields/plus_nonzeros_eq_mult_dom.con. + +inline cic:/CoRN/algebra/CFields/cfield_to_mult_cgroup.con. + +(* UNEXPORTED +End MultipGroup. +*) + +(* UNEXPORTED +Section Div_properties. +*) + +(*#* +** Properties of division +%\begin{convention}% Let [F] be a field. +%\end{convention}% + +%\begin{nameconvention}% +In the names of lemmas, we denote [[/]] by [div], and +[One[/]] by [recip]. +%\end{nameconvention}% +*) + +inline cic:/CoRN/algebra/CFields/F.var. + +inline cic:/CoRN/algebra/CFields/div_prop.con. + +inline cic:/CoRN/algebra/CFields/div_1.con. + +inline cic:/CoRN/algebra/CFields/div_1'.con. + +inline cic:/CoRN/algebra/CFields/div_1''.con. + +(* UNEXPORTED +Hint Resolve div_1: algebra. +*) + +inline cic:/CoRN/algebra/CFields/x_div_x.con. + +(* UNEXPORTED +Hint Resolve x_div_x: algebra. +*) + +inline cic:/CoRN/algebra/CFields/x_div_one.con. + +(*#* +The next lemma says $x\cdot\frac{y}{z} = \frac{x\cdot y}{z}$ +#x.(y/z) = (x.y)/z#. +*) + +inline cic:/CoRN/algebra/CFields/x_mult_y_div_z.con. + +(* UNEXPORTED +Hint Resolve x_mult_y_div_z: algebra. +*) + +inline cic:/CoRN/algebra/CFields/div_wd.con. + +(* UNEXPORTED +Hint Resolve div_wd: algebra_c. +*) + +(*#* +The next lemma says $\frac{\frac{x}{y}}{z} = \frac{x}{y\cdot z}$ +#[(x/y)/z = x/(y.z)]# +*) + +inline cic:/CoRN/algebra/CFields/div_div.con. + +inline cic:/CoRN/algebra/CFields/div_resp_ap_zero_rev.con. + +inline cic:/CoRN/algebra/CFields/div_resp_ap_zero.con. + +(*#* +The next lemma says $\frac{x}{\frac{y}{z}} = \frac{x\cdot z}{y}$ +#[x/(y/z) = (x.z)/y]# +*) + +inline cic:/CoRN/algebra/CFields/div_div2.con. + +(*#* +The next lemma says $\frac{x\cdot p}{y\cdot q} = \frac{x}{y}\cdot \frac{p}{q}$ +#[(x.p)/(y.q) = (x/y).(p/q)]# +*) + +inline cic:/CoRN/algebra/CFields/mult_of_divs.con. + +inline cic:/CoRN/algebra/CFields/div_dist.con. + +inline cic:/CoRN/algebra/CFields/div_dist'.con. + +inline cic:/CoRN/algebra/CFields/div_semi_sym.con. + +(* UNEXPORTED +Hint Resolve div_semi_sym: algebra. +*) + +inline cic:/CoRN/algebra/CFields/eq_div.con. + +inline cic:/CoRN/algebra/CFields/div_strext.con. + +(* UNEXPORTED +End Div_properties. +*) + +(* UNEXPORTED +Hint Resolve div_1 div_1' div_1'' div_wd x_div_x x_div_one div_div div_div2 + mult_of_divs x_mult_y_div_z mult_of_divs div_dist div_dist' div_semi_sym + div_prop: algebra. +*) + +(*#* +** Cancellation laws for apartness and multiplication +%\begin{convention}% Let [F] be a field +%\end{convention}% +*) + +(* UNEXPORTED +Section Mult_Cancel_Ap_Zero. +*) + +inline cic:/CoRN/algebra/CFields/F.var. + +inline cic:/CoRN/algebra/CFields/mult_cancel_ap_zero_lft.con. + +inline cic:/CoRN/algebra/CFields/mult_cancel_ap_zero_rht.con. + +inline cic:/CoRN/algebra/CFields/recip_ap_zero.con. + +inline cic:/CoRN/algebra/CFields/recip_resp_ap.con. + +(* UNEXPORTED +End Mult_Cancel_Ap_Zero. +*) + +(* UNEXPORTED +Section CField_Ops. +*) + +(*#* +** Functional Operations + +We now move on to lifting these operations to functions. As we are +dealing with %\emph{partial}% #partial# functions, we don't +have to worry explicitly about the function by which we are dividing +being non-zero everywhere; this will simply be encoded in its domain. + +%\begin{convention}% +Let [X] be a Field and [F,G:(PartFunct X)] have domains respectively +[P] and [Q]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CFields/X.var. + +inline cic:/CoRN/algebra/CFields/F.var. + +inline cic:/CoRN/algebra/CFields/G.var. + +(* begin hide *) + +inline cic:/CoRN/algebra/CFields/P.con. + +inline cic:/CoRN/algebra/CFields/Q.con. + +(* end hide *) + +(* UNEXPORTED +Section Part_Function_Recip. +*) + +(*#* +Some auxiliary notions are helpful in defining the domain. +*) + +inline cic:/CoRN/algebra/CFields/R.con. + +inline cic:/CoRN/algebra/CFields/Ext2R.con. + +inline cic:/CoRN/algebra/CFields/part_function_recip_strext.con. + +inline cic:/CoRN/algebra/CFields/part_function_recip_pred_wd.con. + +inline cic:/CoRN/algebra/CFields/Frecip.con. + +(* UNEXPORTED +End Part_Function_Recip. +*) + +(* UNEXPORTED +Section Part_Function_Div. +*) + +(*#* +For division things work out almost in the same way. +*) + +inline cic:/CoRN/algebra/CFields/R.con. + +inline cic:/CoRN/algebra/CFields/Ext2R.con. + +inline cic:/CoRN/algebra/CFields/part_function_div_strext.con. + +inline cic:/CoRN/algebra/CFields/part_function_div_pred_wd.con. + +inline cic:/CoRN/algebra/CFields/Fdiv.con. + +(* UNEXPORTED +End Part_Function_Div. +*) + +(*#* +%\begin{convention}% Let [R:X->CProp]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CFields/R.var. + +inline cic:/CoRN/algebra/CFields/included_FRecip.con. + +inline cic:/CoRN/algebra/CFields/included_FRecip'.con. + +inline cic:/CoRN/algebra/CFields/included_FDiv.con. + +inline cic:/CoRN/algebra/CFields/included_FDiv'.con. + +inline cic:/CoRN/algebra/CFields/included_FDiv''.con. + +(* UNEXPORTED +End CField_Ops. +*) + +(* UNEXPORTED +Implicit Arguments Frecip [X]. +*) + +(* UNEXPORTED +Implicit Arguments Fdiv [X]. +*) + +(* UNEXPORTED +Hint Resolve included_FRecip included_FDiv : included. +*) + +(* UNEXPORTED +Hint Immediate included_FRecip' included_FDiv' included_FDiv'' : included. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CGroups.ma b/matita/contribs/CoRN-Decl/algebra/CGroups.ma new file mode 100644 index 000000000..d13953b41 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CGroups.ma @@ -0,0 +1,389 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CGroups". + +(* $Id: CGroups.v,v 1.9 2004/04/23 10:00:52 lcf Exp $ *) + +(*#* printing [-] %\ensuremath-% #−# *) + +(*#* printing [--] %\ensuremath-% #−# *) + +(*#* printing {-} %\ensuremath-% #−# *) + +(*#* printing {--} %\ensuremath-% #−# *) + +(* INCLUDE +CMonoids +*) + +(* Begin_SpecReals *) + +(*#* +* Groups +** Definition of the notion of Group +*) + +inline cic:/CoRN/algebra/CGroups/is_inverse.con. + +(* UNEXPORTED +Implicit Arguments is_inverse [S]. +*) + +inline cic:/CoRN/algebra/CGroups/is_CGroup.con. + +inline cic:/CoRN/algebra/CGroups/CGroup.ind. + +(* End_SpecReals *) + +(* Begin_SpecReals *) + +(* UNEXPORTED +Implicit Arguments cg_inv [c]. +*) + +inline cic:/CoRN/algebra/CGroups/cg_minus.con. + +(*#* +%\begin{nameconvention}% +In the names of lemmas, we will denote [[--] ] with [inv], +and [ [-] ] with [minus]. +%\end{nameconvention}% +*) + +(* UNEXPORTED +Implicit Arguments cg_minus [G]. +*) + +(* End_SpecReals *) + +(*#* +** Group axioms +%\begin{convention}% Let [G] be a group. +%\end{convention}% +*) + +(* UNEXPORTED +Section CGroup_axioms. +*) + +inline cic:/CoRN/algebra/CGroups/G.var. + +inline cic:/CoRN/algebra/CGroups/cg_inverse.con. + +(* UNEXPORTED +End CGroup_axioms. +*) + +(*#* +** Group basics +General properties of groups. +%\begin{convention}% Let [G] be a group. +%\end{convention}% +*) + +(* UNEXPORTED +Section CGroup_basics. +*) + +inline cic:/CoRN/algebra/CGroups/G.var. + +inline cic:/CoRN/algebra/CGroups/cg_rht_inv_unfolded.con. + +inline cic:/CoRN/algebra/CGroups/cg_lft_inv_unfolded.con. + +inline cic:/CoRN/algebra/CGroups/cg_minus_correct.con. + +(* UNEXPORTED +Hint Resolve cg_rht_inv_unfolded cg_lft_inv_unfolded cg_minus_correct: + algebra. +*) + +inline cic:/CoRN/algebra/CGroups/cg_inverse'.con. + +(* Hints for Auto *) + +inline cic:/CoRN/algebra/CGroups/cg_minus_unfolded.con. + +(* UNEXPORTED +Hint Resolve cg_minus_unfolded: algebra. +*) + +inline cic:/CoRN/algebra/CGroups/cg_minus_wd.con. + +(* UNEXPORTED +Hint Resolve cg_minus_wd: algebra_c. +*) + +inline cic:/CoRN/algebra/CGroups/cg_minus_strext.con. + +inline cic:/CoRN/algebra/CGroups/cg_minus_is_csetoid_bin_op.con. + +inline cic:/CoRN/algebra/CGroups/grp_inv_assoc.con. + +(* UNEXPORTED +Hint Resolve grp_inv_assoc: algebra. +*) + +inline cic:/CoRN/algebra/CGroups/cg_inv_unique.con. + +inline cic:/CoRN/algebra/CGroups/cg_inv_inv.con. + +(* UNEXPORTED +Hint Resolve cg_inv_inv: algebra. +*) + +inline cic:/CoRN/algebra/CGroups/cg_cancel_lft.con. + +inline cic:/CoRN/algebra/CGroups/cg_cancel_rht.con. + +inline cic:/CoRN/algebra/CGroups/cg_inv_unique'.con. + +inline cic:/CoRN/algebra/CGroups/cg_inv_unique_2.con. + +inline cic:/CoRN/algebra/CGroups/cg_zero_inv.con. + +(* UNEXPORTED +Hint Resolve cg_zero_inv: algebra. +*) + +inline cic:/CoRN/algebra/CGroups/cg_inv_zero.con. + +inline cic:/CoRN/algebra/CGroups/cg_inv_op.con. + +(*#* +Useful for interactive proof development. +*) + +inline cic:/CoRN/algebra/CGroups/x_minus_x.con. + +(*#* +** Sub-groups +%\begin{convention}% Let [P] be a predicate on [G] containing +[Zero] and closed under [[+]] and [[--] ]. +%\end{convention}% +*) + +(* UNEXPORTED +Section SubCGroups. +*) + +inline cic:/CoRN/algebra/CGroups/P.var. + +inline cic:/CoRN/algebra/CGroups/Punit.var. + +inline cic:/CoRN/algebra/CGroups/op_pres_P.var. + +inline cic:/CoRN/algebra/CGroups/inv_pres_P.var. + +inline cic:/CoRN/algebra/CGroups/subcrr.con. + +inline cic:/CoRN/algebra/CGroups/subinv.con. + +inline cic:/CoRN/algebra/CGroups/isgrp_scrr.con. + +inline cic:/CoRN/algebra/CGroups/Build_SubCGroup.con. + +(* UNEXPORTED +End SubCGroups. +*) + +(* UNEXPORTED +End CGroup_basics. +*) + +(* UNEXPORTED +Hint Resolve cg_rht_inv_unfolded cg_lft_inv_unfolded: algebra. +*) + +(* UNEXPORTED +Hint Resolve cg_inv_inv cg_minus_correct cg_zero_inv cg_inv_zero: algebra. +*) + +(* UNEXPORTED +Hint Resolve cg_minus_unfolded grp_inv_assoc cg_inv_op: algebra. +*) + +(* UNEXPORTED +Hint Resolve cg_minus_wd: algebra_c. +*) + +(*#* +** Associative properties of groups +%\begin{convention}% Let [G] be a group. +%\end{convention}% +*) + +(* UNEXPORTED +Section Assoc_properties. +*) + +inline cic:/CoRN/algebra/CGroups/G.var. + +inline cic:/CoRN/algebra/CGroups/assoc_2.con. + +inline cic:/CoRN/algebra/CGroups/zero_minus.con. + +inline cic:/CoRN/algebra/CGroups/cg_cancel_mixed.con. + +inline cic:/CoRN/algebra/CGroups/plus_resp_eq.con. + +(* UNEXPORTED +End Assoc_properties. +*) + +(* UNEXPORTED +Hint Resolve assoc_2 minus_plus zero_minus cg_cancel_mixed plus_resp_eq: + algebra. +*) + +(*#* +** Apartness in Constructive Groups +Specific properties of apartness. +%\begin{convention}% Let [G] be a group. +%\end{convention}% +*) + +(* UNEXPORTED +Section cgroups_apartness. +*) + +inline cic:/CoRN/algebra/CGroups/G.var. + +inline cic:/CoRN/algebra/CGroups/cg_add_ap_zero.con. + +inline cic:/CoRN/algebra/CGroups/op_rht_resp_ap.con. + +inline cic:/CoRN/algebra/CGroups/cg_ap_cancel_rht.con. + +inline cic:/CoRN/algebra/CGroups/plus_cancel_ap_rht.con. + +inline cic:/CoRN/algebra/CGroups/minus_ap_zero.con. + +inline cic:/CoRN/algebra/CGroups/zero_minus_apart.con. + +inline cic:/CoRN/algebra/CGroups/inv_resp_ap_zero.con. + +inline cic:/CoRN/algebra/CGroups/inv_resp_ap.con. + +inline cic:/CoRN/algebra/CGroups/minus_resp_ap_rht.con. + +inline cic:/CoRN/algebra/CGroups/minus_resp_ap_lft.con. + +inline cic:/CoRN/algebra/CGroups/minus_cancel_ap_rht.con. + +(* UNEXPORTED +End cgroups_apartness. +*) + +(* UNEXPORTED +Hint Resolve op_rht_resp_ap: algebra. +*) + +(* UNEXPORTED +Hint Resolve minus_ap_zero zero_minus_apart inv_resp_ap_zero: algebra. +*) + +(* UNEXPORTED +Section CGroup_Ops. +*) + +(*#* +** Functional operations + +As before, we lift our group operations to the function space of the group. + +%\begin{convention}% +Let [G] be a group and [F,F':(PartFunct G)] with domains given respectively +by [P] and [Q]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CGroups/G.var. + +inline cic:/CoRN/algebra/CGroups/F.var. + +inline cic:/CoRN/algebra/CGroups/F'.var. + +(* begin hide *) + +inline cic:/CoRN/algebra/CGroups/P.con. + +inline cic:/CoRN/algebra/CGroups/Q.con. + +(* end hide *) + +(* UNEXPORTED +Section Part_Function_Inv. +*) + +inline cic:/CoRN/algebra/CGroups/part_function_inv_strext.con. + +inline cic:/CoRN/algebra/CGroups/Finv.con. + +(* UNEXPORTED +End Part_Function_Inv. +*) + +(* UNEXPORTED +Section Part_Function_Minus. +*) + +inline cic:/CoRN/algebra/CGroups/part_function_minus_strext.con. + +inline cic:/CoRN/algebra/CGroups/Fminus.con. + +(* UNEXPORTED +End Part_Function_Minus. +*) + +(*#* +%\begin{convention}% Let [R:G->CProp]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CGroups/R.var. + +inline cic:/CoRN/algebra/CGroups/included_FInv.con. + +inline cic:/CoRN/algebra/CGroups/included_FInv'.con. + +inline cic:/CoRN/algebra/CGroups/included_FMinus.con. + +inline cic:/CoRN/algebra/CGroups/included_FMinus'.con. + +inline cic:/CoRN/algebra/CGroups/included_FMinus''.con. + +(* UNEXPORTED +End CGroup_Ops. +*) + +(* UNEXPORTED +Implicit Arguments Finv [G]. +*) + +(* UNEXPORTED +Implicit Arguments Fminus [G]. +*) + +(* UNEXPORTED +Hint Resolve included_FInv included_FMinus : included. +*) + +(* UNEXPORTED +Hint Immediate included_FInv' included_FMinus' included_FMinus'' : included. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CLogic.ma b/matita/contribs/CoRN-Decl/algebra/CLogic.ma new file mode 100644 index 000000000..73f7f812a --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CLogic.ma @@ -0,0 +1,612 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CLogic". + +(* $Id: CLogic.v,v 1.10 2004/04/09 15:58:31 lcf Exp $ *) + +(*#* printing Not %\ensuremath\neg% #~# *) + +(*#* printing CNot %\ensuremath\neg% #~# *) + +(*#* printing Iff %\ensuremath\Leftrightarrow% #⇔# *) + +(*#* printing CFalse %\ensuremath\bot% #⊥# *) + +(*#* printing False %\ensuremath\bot% #⊥# *) + +(*#* printing CTrue %\ensuremath\top% *) + +(*#* printing True %\ensuremath\top% *) + +(*#* printing or %\ensuremath{\mathrel\vee}% *) + +(*#* printing and %\ensuremath{\mathrel\wedge}% *) + +(* INCLUDE +Compare_dec +*) + +(* INCLUDE +Basics +*) + +(* INCLUDE +ZArith +*) + +(* INCLUDE +ZArithRing +*) + +(* INCLUDE +Div2 +*) + +(* INCLUDE +Wf_nat +*) + +(*#* *Extending the Coq Logic +Because notions of apartness and order have computational meaning, we +will have to define logical connectives in [Type]. In order to +keep a syntactic distinction between types of terms, we define [CProp] +as an alias for [Type], to be used as type of (computationally meaningful) +propositions. + +Falsehood and negation will typically not be needed in [CProp], as +they are used to refer to negative statements, which carry no +computational meaning. Therefore, we will simply define a negation +operator from [Type] to [Prop] . + +Conjunction, disjunction and existential quantification will have to come in +multiple varieties. For conjunction, we will need four operators of type +[s1->s2->s3], where [s3] is [Prop] if both [s1] and [s2] +are [Prop] and [CProp] otherwise. +We here take advantage of the inclusion of [Prop] in [Type]. + +Disjunction is slightly different, as it will always return a value in [CProp] even +if both arguments are propositions. This is because in general +it may be computationally important to know which of the two branches of the +disjunction actually holds. + +Existential quantification will similarly always return a value in [CProp]. + +- [CProp]-valued conjuction will be denoted as [and]; +- [Crop]-valued conjuction will be denoted as [or]; +- Existential quantification will be written as [{x:A & B}] or [{x:A | B}], +according to whether [B] is respectively of type [CProp] or [Prop]. + +In a few specific situations we do need truth, false and negation in [CProp], +so we will also introduce them; this should be a temporary option. + +Finally, for other formulae that might occur in our [CProp]-valued +propositions, such as [(le m n)], we have to introduce a [CProp]-valued +version. +*) + +inline cic:/CoRN/algebra/CLogic/CProp.con. + +(* UNEXPORTED +Section Basics. +*) + +(*#* ** Basics +Here we treat conversion from [Prop] to [CProp] and vice versa, +and some basic connectives in [CProp]. +*) + +inline cic:/CoRN/algebra/CLogic/Not.con. + +inline cic:/CoRN/algebra/CLogic/CAnd.ind. + +inline cic:/CoRN/algebra/CLogic/Iff.con. + +inline cic:/CoRN/algebra/CLogic/CFalse.ind. + +inline cic:/CoRN/algebra/CLogic/CTrue.ind. + +inline cic:/CoRN/algebra/CLogic/proj1_sigT.con. + +inline cic:/CoRN/algebra/CLogic/proj2_sigT.con. + +inline cic:/CoRN/algebra/CLogic/sig2T.ind. + +inline cic:/CoRN/algebra/CLogic/proj1_sig2T.con. + +inline cic:/CoRN/algebra/CLogic/proj2a_sig2T.con. + +inline cic:/CoRN/algebra/CLogic/proj2b_sig2T.con. + +inline cic:/CoRN/algebra/CLogic/toCProp.ind. + +inline cic:/CoRN/algebra/CLogic/toCProp_e.con. + +inline cic:/CoRN/algebra/CLogic/CNot.con. + +inline cic:/CoRN/algebra/CLogic/Ccontrapos'.con. + +inline cic:/CoRN/algebra/CLogic/COr.ind. + +(*#* +Some lemmas to make it possible to use [Step] when reasoning with +biimplications.*) + +inline cic:/CoRN/algebra/CLogic/Iff_left.con. + +inline cic:/CoRN/algebra/CLogic/Iff_right.con. + +inline cic:/CoRN/algebra/CLogic/Iff_refl.con. + +inline cic:/CoRN/algebra/CLogic/Iff_sym.con. + +inline cic:/CoRN/algebra/CLogic/Iff_trans.con. + +inline cic:/CoRN/algebra/CLogic/Iff_imp_imp.con. + +(* UNEXPORTED +Declare Right Step Iff_right. +*) + +(* UNEXPORTED +Declare Left Step Iff_left. +*) + +(* UNEXPORTED +Hint Resolve Iff_trans Iff_sym Iff_refl Iff_right Iff_left Iff_imp_imp : algebra. +*) + +(* UNEXPORTED +End Basics. +*) + +(* begin hide *) + +(* end hide *) + +inline cic:/CoRN/algebra/CLogic/not_r_cor_rect.con. + +inline cic:/CoRN/algebra/CLogic/not_l_cor_rect.con. + +(* begin hide *) + +(* end hide *) + +(* +Section test. + +Variable A:Type. +Variables P,Q:A->Prop. +Variables X,Y:A->CProp. + +Check {x:A | (P x)}. +Check {x:A |(X x)}. +Check {x:A | (X x) | (Y x)}. +Check {x:A | (P x) | (Q x)}. +Check {x:A | (P x) | (X x)}. +Check {x:A | (X x) | (P x)}. + +End test. +*) + +(* UNEXPORTED +Hint Resolve CI CAnd_intro Cinleft Cinright existT exist2T: core. +*) + +(* UNEXPORTED +Section Choice. +*) + +(* **Choice +Let [P] be a predicate on $\NN^2$#N times N#. +*) + +inline cic:/CoRN/algebra/CLogic/P.var. + +inline cic:/CoRN/algebra/CLogic/choice.con. + +(* UNEXPORTED +End Choice. +*) + +(* UNEXPORTED +Section Logical_Remarks. +*) + +(*#* We prove a few logical results which are helpful to have as lemmas +when [A], [B] and [C] are non trivial. +*) + +inline cic:/CoRN/algebra/CLogic/CNot_Not_or.con. + +inline cic:/CoRN/algebra/CLogic/CdeMorgan_ex_all.con. + +(* UNEXPORTED +End Logical_Remarks. +*) + +(* UNEXPORTED +Section CRelation_Definition. +*) + +(*#* ** [CProp]-valued Relations +Similar to Relations.v in Coq's standard library. + +%\begin{convention}% Let [A:Type] and [R:Crelation]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CLogic/A.var. + +inline cic:/CoRN/algebra/CLogic/Crelation.con. + +inline cic:/CoRN/algebra/CLogic/R.var. + +inline cic:/CoRN/algebra/CLogic/Creflexive.con. + +inline cic:/CoRN/algebra/CLogic/Ctransitive.con. + +inline cic:/CoRN/algebra/CLogic/Csymmetric.con. + +inline cic:/CoRN/algebra/CLogic/Cequiv.con. + +(* UNEXPORTED +End CRelation_Definition. +*) + +(* UNEXPORTED +Section TRelation_Definition. +*) + +(*#* ** [Prop]-valued Relations +Analogous. + +%\begin{convention}% Let [A:Type] and [R:Trelation]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CLogic/A.var. + +inline cic:/CoRN/algebra/CLogic/Trelation.con. + +inline cic:/CoRN/algebra/CLogic/R.var. + +inline cic:/CoRN/algebra/CLogic/Treflexive.con. + +inline cic:/CoRN/algebra/CLogic/Ttransitive.con. + +inline cic:/CoRN/algebra/CLogic/Tsymmetric.con. + +inline cic:/CoRN/algebra/CLogic/Tequiv.con. + +(* UNEXPORTED +End TRelation_Definition. +*) + +inline cic:/CoRN/algebra/CLogic/eqs.ind. + +(* UNEXPORTED +Section le_odd. +*) + +(*#* ** The relation [le], [lt], [odd] and [even] in [CProp] +*) + +inline cic:/CoRN/algebra/CLogic/Cle.ind. + +inline cic:/CoRN/algebra/CLogic/Cnat_double_ind.con. + +inline cic:/CoRN/algebra/CLogic/my_Cle_ind.con. + +inline cic:/CoRN/algebra/CLogic/Cle_n_S.con. + +inline cic:/CoRN/algebra/CLogic/toCle.con. + +(* UNEXPORTED +Hint Resolve toCle. +*) + +inline cic:/CoRN/algebra/CLogic/Cle_to.con. + +inline cic:/CoRN/algebra/CLogic/Clt.con. + +inline cic:/CoRN/algebra/CLogic/toCProp_lt.con. + +inline cic:/CoRN/algebra/CLogic/Clt_to.con. + +inline cic:/CoRN/algebra/CLogic/Cle_le_S_eq.con. + +inline cic:/CoRN/algebra/CLogic/Cnat_total_order.con. + +inline cic:/CoRN/algebra/CLogic/Codd.ind. + +inline cic:/CoRN/algebra/CLogic/Codd_even_to.con. + +inline cic:/CoRN/algebra/CLogic/Codd_to.con. + +inline cic:/CoRN/algebra/CLogic/Ceven_to.con. + +inline cic:/CoRN/algebra/CLogic/to_Codd_even.con. + +inline cic:/CoRN/algebra/CLogic/to_Codd.con. + +inline cic:/CoRN/algebra/CLogic/to_Ceven.con. + +(* UNEXPORTED +End le_odd. +*) + +(* UNEXPORTED +Section Misc. +*) + +(*#* **Miscellaneous +*) + +inline cic:/CoRN/algebra/CLogic/CZ_exh.con. + +inline cic:/CoRN/algebra/CLogic/Cnats_Z_ind.con. + +inline cic:/CoRN/algebra/CLogic/Cdiff_Z_ind.con. + +inline cic:/CoRN/algebra/CLogic/Cpred_succ_Z_ind.con. + +inline cic:/CoRN/algebra/CLogic/not_r_sum_rec.con. + +inline cic:/CoRN/algebra/CLogic/not_l_sum_rec.con. + +(* UNEXPORTED +End Misc. +*) + +(*#* **Results about the natural numbers + +We now define a class of predicates on a finite subset of natural +numbers that will be important throughout all our work. Essentially, +these are simply setoid predicates, but for clarity we will never +write them in that form but we will single out the preservation of the +setoid equality. +*) + +inline cic:/CoRN/algebra/CLogic/nat_less_n_pred.con. + +inline cic:/CoRN/algebra/CLogic/nat_less_n_pred'.con. + +(* UNEXPORTED +Implicit Arguments nat_less_n_pred [n]. +*) + +(* UNEXPORTED +Implicit Arguments nat_less_n_pred' [n]. +*) + +(* UNEXPORTED +Section Odd_and_Even. +*) + +(*#* +For our work we will many times need to distinguish cases between even or odd numbers. +We begin by proving that this case distinction is decidable. +Next, we prove the usual results about sums of even and odd numbers: +*) + +inline cic:/CoRN/algebra/CLogic/even_plus_n_n.con. + +inline cic:/CoRN/algebra/CLogic/even_or_odd_plus.con. + +(*#* Finally, we prove that an arbitrary natural number can be written in some canonical way. +*) + +inline cic:/CoRN/algebra/CLogic/even_or_odd_plus_gt.con. + +(* UNEXPORTED +End Odd_and_Even. +*) + +(* UNEXPORTED +Hint Resolve even_plus_n_n: arith. +*) + +(* UNEXPORTED +Hint Resolve toCle: core. +*) + +(* UNEXPORTED +Section Natural_Numbers. +*) + +(*#* **Algebraic Properties + +We now present a series of trivial things proved with [Omega] that are +stated as lemmas to make proofs shorter and to aid in auxiliary +definitions. Giving a name to these results allows us to use them in +definitions keeping conciseness. +*) + +inline cic:/CoRN/algebra/CLogic/Clt_le_weak.con. + +inline cic:/CoRN/algebra/CLogic/lt_5.con. + +inline cic:/CoRN/algebra/CLogic/lt_8.con. + +inline cic:/CoRN/algebra/CLogic/pred_lt.con. + +inline cic:/CoRN/algebra/CLogic/lt_10.con. + +inline cic:/CoRN/algebra/CLogic/lt_pred'.con. + +inline cic:/CoRN/algebra/CLogic/le_1.con. + +inline cic:/CoRN/algebra/CLogic/le_2.con. + +inline cic:/CoRN/algebra/CLogic/plus_eq_one_imp_eq_zero.con. + +inline cic:/CoRN/algebra/CLogic/not_not_lt.con. + +inline cic:/CoRN/algebra/CLogic/plus_pred_pred_plus.con. + +(*#* We now prove some properties of functions on the natural numbers. + +%\begin{convention}% Let [H:nat->nat]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CLogic/h.var. + +(*#* +First we characterize monotonicity by a local condition: if [h(n) < h(n+1)] +for every natural number [n] then [h] is monotonous. An analogous result +holds for weak monotonicity. +*) + +inline cic:/CoRN/algebra/CLogic/nat_local_mon_imp_mon.con. + +inline cic:/CoRN/algebra/CLogic/nat_local_mon_imp_mon_le.con. + +(*#* A strictly increasing function is injective: *) + +inline cic:/CoRN/algebra/CLogic/nat_mon_imp_inj.con. + +(*#* And (not completely trivial) a function that preserves [lt] also preserves [le]. *) + +inline cic:/CoRN/algebra/CLogic/nat_mon_imp_mon'.con. + +(*#* +The last lemmas in this section state that a monotonous function in the + natural numbers completely covers the natural numbers, that is, for every +natural number [n] there is an [i] such that [h(i) <= n<(n+1) <= h(i+1)]. +These are useful for integration. +*) + +inline cic:/CoRN/algebra/CLogic/mon_fun_covers.con. + +inline cic:/CoRN/algebra/CLogic/weird_mon_covers.con. + +(* UNEXPORTED +End Natural_Numbers. +*) + +(*#* +Useful for the Fundamental Theorem of Algebra. +*) + +inline cic:/CoRN/algebra/CLogic/kseq_prop.con. + +(* UNEXPORTED +Section Predicates_to_CProp. +*) + +(*#* **Logical Properties + +This section contains lemmas that aid in logical reasoning with +natural numbers. First, we present some principles of induction, both +for [CProp]- and [Prop]-valued predicates. We begin by presenting the +results for [CProp]-valued predicates: +*) + +inline cic:/CoRN/algebra/CLogic/even_induction.con. + +inline cic:/CoRN/algebra/CLogic/odd_induction.con. + +inline cic:/CoRN/algebra/CLogic/four_induction.con. + +inline cic:/CoRN/algebra/CLogic/nat_complete_double_induction.con. + +inline cic:/CoRN/algebra/CLogic/odd_double_ind.con. + +(*#* For subsetoid predicates in the natural numbers we can eliminate +disjunction (and existential quantification) as follows. +*) + +inline cic:/CoRN/algebra/CLogic/finite_or_elim.con. + +inline cic:/CoRN/algebra/CLogic/str_finite_or_elim.con. + +(* UNEXPORTED +End Predicates_to_CProp. +*) + +(* UNEXPORTED +Section Predicates_to_Prop. +*) + +(*#* Finally, analogous results for [Prop]-valued predicates are presented for +completeness's sake. +*) + +inline cic:/CoRN/algebra/CLogic/even_ind.con. + +inline cic:/CoRN/algebra/CLogic/odd_ind.con. + +inline cic:/CoRN/algebra/CLogic/nat_complete_double_ind.con. + +inline cic:/CoRN/algebra/CLogic/four_ind.con. + +(* UNEXPORTED +End Predicates_to_Prop. +*) + +(*#* **Integers + +Similar results for integers. +*) + +(* begin hide *) + +(* UNEXPORTED +Tactic Notation "ElimCompare" constr(c) constr(d) := elim_compare c d. +*) + +(* end hide *) + +inline cic:/CoRN/algebra/CLogic/Zlts.con. + +inline cic:/CoRN/algebra/CLogic/toCProp_Zlt.con. + +inline cic:/CoRN/algebra/CLogic/CZlt_to.con. + +inline cic:/CoRN/algebra/CLogic/Zsgn_1.con. + +inline cic:/CoRN/algebra/CLogic/Zsgn_2.con. + +inline cic:/CoRN/algebra/CLogic/Zsgn_3.con. + +(*#* The following have unusual names, in line with the series of lemmata in +fast_integers.v. +*) + +inline cic:/CoRN/algebra/CLogic/ZL4'.con. + +inline cic:/CoRN/algebra/CLogic/ZL9.con. + +inline cic:/CoRN/algebra/CLogic/Zsgn_4.con. + +inline cic:/CoRN/algebra/CLogic/Zsgn_5.con. + +inline cic:/CoRN/algebra/CLogic/nat_nat_pos.con. + +inline cic:/CoRN/algebra/CLogic/S_predn.con. + +inline cic:/CoRN/algebra/CLogic/absolu_1.con. + +inline cic:/CoRN/algebra/CLogic/absolu_2.con. + +inline cic:/CoRN/algebra/CLogic/Zgt_mult_conv_absorb_l.con. + +inline cic:/CoRN/algebra/CLogic/Zgt_mult_reg_absorb_l.con. + +inline cic:/CoRN/algebra/CLogic/Zmult_Sm_Sn.con. + diff --git a/matita/contribs/CoRN-Decl/algebra/CMonoids.ma b/matita/contribs/CoRN-Decl/algebra/CMonoids.ma new file mode 100644 index 000000000..2d93e1651 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CMonoids.ma @@ -0,0 +1,169 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CMonoids". + +(* $Id: CMonoids.v,v 1.3 2004/04/07 15:07:57 lcf Exp $ *) + +(*#* printing Zero %\ensuremath{\mathbf0}% #0# *) + +(* INCLUDE +CSemiGroups +*) + +(* Begin_SpecReals *) + +(*#* +* Monoids %\label{section:monoids}% +** Definition of monoids +*) + +inline cic:/CoRN/algebra/CMonoids/is_rht_unit.con. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CMonoids/is_lft_unit.con. + +(* UNEXPORTED +Implicit Arguments is_lft_unit [S]. +*) + +(* Begin_SpecReals *) + +(* UNEXPORTED +Implicit Arguments is_rht_unit [S]. +*) + +inline cic:/CoRN/algebra/CMonoids/is_CMonoid.ind. + +inline cic:/CoRN/algebra/CMonoids/CMonoid.ind. + +(*#* +%\begin{nameconvention}% +In the names of lemmas, we will denote [Zero] with [zero]. +We denote [ [#] Zero] in the names of lemmas by [ap_zero] +(and not, e.g.%\% [nonzero]). +%\end{nameconvention}% +*) + +(* Begin_SpecReals *) + +(*#* +The predicate "non-zero" is defined. +In lemmas we will continue to write [x [#] Zero], rather than +[(nonZeroP x)], but the predicate is useful for some high-level definitions, +e.g. for the setoid of non-zeros. +*) + +inline cic:/CoRN/algebra/CMonoids/nonZeroP.con. + +(* End_SpecReals *) + +(* UNEXPORTED +Implicit Arguments nonZeroP [M]. +*) + +(*#* +** Monoid axioms +%\begin{convention}% Let [M] be a monoid. +%\end{convention}% +*) + +(* UNEXPORTED +Section CMonoid_axioms. +*) + +inline cic:/CoRN/algebra/CMonoids/M.var. + +inline cic:/CoRN/algebra/CMonoids/CMonoid_is_CMonoid.con. + +inline cic:/CoRN/algebra/CMonoids/cm_rht_unit.con. + +inline cic:/CoRN/algebra/CMonoids/cm_lft_unit.con. + +(* UNEXPORTED +End CMonoid_axioms. +*) + +(*#* +** Monoid basics +%\begin{convention}% Let [M] be a monoid. +%\end{convention}% +*) + +(* UNEXPORTED +Section CMonoid_basics. +*) + +inline cic:/CoRN/algebra/CMonoids/M.var. + +inline cic:/CoRN/algebra/CMonoids/cm_rht_unit_unfolded.con. + +inline cic:/CoRN/algebra/CMonoids/cm_lft_unit_unfolded.con. + +(* UNEXPORTED +Hint Resolve cm_rht_unit_unfolded cm_lft_unit_unfolded: algebra. +*) + +inline cic:/CoRN/algebra/CMonoids/cm_unit_unique_lft.con. + +inline cic:/CoRN/algebra/CMonoids/cm_unit_unique_rht.con. + +(* Begin_SpecReals *) + +(*#* +The proof component of the monoid is irrelevant. +*) + +inline cic:/CoRN/algebra/CMonoids/is_CMonoid_proof_irr.con. + +(* End_SpecReals *) + +(*#* +** Submonoids +%\begin{convention}% +Let [P] a predicate on [M] containing [Zero] and closed under [[+]]. +%\end{convention}% +*) + +(* UNEXPORTED +Section SubCMonoids. +*) + +inline cic:/CoRN/algebra/CMonoids/P.var. + +inline cic:/CoRN/algebra/CMonoids/Punit.var. + +inline cic:/CoRN/algebra/CMonoids/op_pres_P.var. + +inline cic:/CoRN/algebra/CMonoids/subcrr.con. + +inline cic:/CoRN/algebra/CMonoids/ismon_scrr.con. + +inline cic:/CoRN/algebra/CMonoids/Build_SubCMonoid.con. + +(* UNEXPORTED +End SubCMonoids. +*) + +(* UNEXPORTED +End CMonoid_basics. +*) + +(* UNEXPORTED +Hint Resolve cm_rht_unit_unfolded cm_lft_unit_unfolded: algebra. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/COrdAbs.ma b/matita/contribs/CoRN-Decl/algebra/COrdAbs.ma new file mode 100644 index 000000000..b779a5716 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/COrdAbs.ma @@ -0,0 +1,152 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/COrdAbs". + +(* INCLUDE +COrdFields2 +*) + +(*#* +** Properties of [AbsSmall] +*) + +(* Begin_SpecReals *) + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall.con. + +(* UNEXPORTED +Implicit Arguments AbsSmall [R]. +*) + +(* End_SpecReals *) + +(* UNEXPORTED +Section AbsSmall_properties. +*) + +(*#* +%\begin{convention}% Let [R] be an ordered field. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/COrdAbs/R.var. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_wdr.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_wdr_unfolded.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_wdl.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_wdl_unfolded.con. + +(* UNEXPORTED +Declare Left Step AbsSmall_wdl_unfolded. +*) + +(* UNEXPORTED +Declare Right Step AbsSmall_wdr_unfolded. +*) + +(* begin hide *) + +(* end hide *) + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_leEq_trans.con. + +inline cic:/CoRN/algebra/COrdAbs/zero_AbsSmall.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_trans.con. + +inline cic:/CoRN/algebra/COrdAbs/leEq_imp_AbsSmall.con. + +inline cic:/CoRN/algebra/COrdAbs/inv_resp_AbsSmall.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_minus.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_plus.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_eps_div_two.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_x_plus_delta.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_x_minus_delta.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_x_plus_eps_div2.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_x_minus_eps_div2.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_intermediate.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_eps_div2.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_nonneg.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_mult.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_cancel_mult.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsSmall_approach_zero.con. + +(* UNEXPORTED +End AbsSmall_properties. +*) + +(* UNEXPORTED +Declare Left Step AbsSmall_wdl_unfolded. +*) + +(* UNEXPORTED +Declare Right Step AbsSmall_wdr_unfolded. +*) + +(*#* ** Properties of [AbsBig] *) + +inline cic:/CoRN/algebra/COrdAbs/absBig.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsBigSmall_minus.con. + +(* UNEXPORTED +Section absBig_wd_properties. +*) + +(*#* +%\begin{convention}% Let [R] be an ordered field. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/COrdAbs/R.var. + +inline cic:/CoRN/algebra/COrdAbs/AbsBig_wdr.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsBig_wdl.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsBig_wdr_unfolded.con. + +inline cic:/CoRN/algebra/COrdAbs/AbsBig_wdl_unfolded.con. + +(* UNEXPORTED +End absBig_wd_properties. +*) + +(* UNEXPORTED +Declare Left Step AbsBig_wdl_unfolded. +*) + +(* UNEXPORTED +Declare Right Step AbsBig_wdr_unfolded. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/COrdCauchy.ma b/matita/contribs/CoRN-Decl/algebra/COrdCauchy.ma new file mode 100644 index 000000000..37ce37a22 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/COrdCauchy.ma @@ -0,0 +1,282 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/COrdCauchy". + +(* INCLUDE +COrdAbs +*) + +(* Begin_SpecReals *) + +(* UNEXPORTED +Section OrdField_Cauchy. +*) + +(*#* **Cauchy sequences +%\begin{convention}% Let [R] be an ordered field. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/COrdCauchy/R.var. + +(* begin hide *) + +(* UNEXPORTED +Set Implicit Arguments. +*) + +(* UNEXPORTED +Unset Strict Implicit. +*) + +(* end hide *) + +inline cic:/CoRN/algebra/COrdCauchy/Cauchy_prop.con. + +(* begin hide *) + +(* UNEXPORTED +Set Strict Implicit. +*) + +(* UNEXPORTED +Unset Implicit Arguments. +*) + +(* end hide *) + +(* Def. CauchyP, Build_CauchyP *) + +(* Should be defined in terms of CauchyP *) + +(*#* +Implicit arguments turned off, because Coq makes a mess of it in combination +with the coercions +*) + +inline cic:/CoRN/algebra/COrdCauchy/CauchySeq.ind. + +inline cic:/CoRN/algebra/COrdCauchy/SeqLimit.con. + +(* End_SpecReals *) + +(*#* +We now prove that the property of being a Cauchy sequence is preserved +through the usual algebraic operations (addition, subtraction and +multiplication -- and division, provided some additional conditions +hold). + +%\begin{convention}% Let [R] be an ordered field. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/COrdCauchy/CS_seq_bounded.con. + +inline cic:/CoRN/algebra/COrdCauchy/CS_seq_const.con. + +(*#* +%\begin{convention}% Assume [f] and [g] are Cauchy sequences on [R]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/COrdCauchy/f.var. + +inline cic:/CoRN/algebra/COrdCauchy/g.var. + +inline cic:/CoRN/algebra/COrdCauchy/Hf.var. + +inline cic:/CoRN/algebra/COrdCauchy/Hg.var. + +inline cic:/CoRN/algebra/COrdCauchy/CS_seq_plus.con. + +inline cic:/CoRN/algebra/COrdCauchy/CS_seq_inv.con. + +inline cic:/CoRN/algebra/COrdCauchy/CS_seq_mult.con. + +(*#* +We now assume that [f] is, from some point onwards, greater than +some positive number. The sequence of reciprocals is defined as +being constantly one up to that point, and the sequence of +reciprocals from then onwards. + +%\begin{convention}% +Let [e] be a postive element of [R] and let [N:nat] be such that from +[N] onwards, [(f n) [#] Zero] +%\end{convention}% +*) + +inline cic:/CoRN/algebra/COrdCauchy/e.var. + +inline cic:/CoRN/algebra/COrdCauchy/He.var. + +inline cic:/CoRN/algebra/COrdCauchy/N.var. + +inline cic:/CoRN/algebra/COrdCauchy/f_bnd.var. + +inline cic:/CoRN/algebra/COrdCauchy/CS_seq_recip_def.con. + +inline cic:/CoRN/algebra/COrdCauchy/CS_seq_recip_seq.con. + +inline cic:/CoRN/algebra/COrdCauchy/CS_seq_recip.con. + +(* UNEXPORTED +End OrdField_Cauchy. +*) + +(* UNEXPORTED +Implicit Arguments SeqLimit [R]. +*) + +(*#* +The following lemma does not require the sequence to be Cauchy, but it fits +well here anyway. +*) + +inline cic:/CoRN/algebra/COrdCauchy/maj_upto_eps.con. + +(* UNEXPORTED +Section Mult_AbsSmall. +*) + +inline cic:/CoRN/algebra/COrdCauchy/R.var. + +(*#* +** [AbsSmall] revisited +%\begin{convention}% Let [R] be an ordered field. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/COrdCauchy/mult_AbsSmall'_rht.con. + +inline cic:/CoRN/algebra/COrdCauchy/mult_AbsSmall_rht.con. + +inline cic:/CoRN/algebra/COrdCauchy/mult_AbsSmall_lft.con. + +inline cic:/CoRN/algebra/COrdCauchy/mult_AbsSmall.con. + +(* UNEXPORTED +End Mult_AbsSmall. +*) + +(* UNEXPORTED +Section Mult_Continuous. +*) + +inline cic:/CoRN/algebra/COrdCauchy/R.var. + +(*#* +** Multiplication is continuous +%\begin{convention}% Let [R] be an ordered field. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/COrdCauchy/smaller.con. + +inline cic:/CoRN/algebra/COrdCauchy/estimate_abs.con. + +inline cic:/CoRN/algebra/COrdCauchy/mult_contin.con. + +(*#* Addition is also continuous. *) + +inline cic:/CoRN/algebra/COrdCauchy/plus_contin.con. + +(* UNEXPORTED +End Mult_Continuous. +*) + +(* UNEXPORTED +Section Monotonous_functions. +*) + +(*#* +** Monotonous Functions + +Finally, we study several properties of monotonous functions and +characterize them in some way. + +%\begin{convention}% Let [R] be an ordered field. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/COrdCauchy/R.var. + +(*#* +We begin by characterizing the preservation of less (less or equal) +in terms of preservation of less or equal (less). +*) + +inline cic:/CoRN/algebra/COrdCauchy/resp_less_char'.con. + +inline cic:/CoRN/algebra/COrdCauchy/resp_less_char.con. + +inline cic:/CoRN/algebra/COrdCauchy/resp_leEq_char'.con. + +inline cic:/CoRN/algebra/COrdCauchy/resp_leEq_char.con. + +(*#* +Next, we see different characterizations of monotonous functions from +some subset of the natural numbers into [R]. Mainly, these +amount (for different types of functions) to proving that a function +is monotonous iff [f(i) [<] f(i+1)] for every [i]. + +Also, strictly monotonous functions are injective. +*) + +inline cic:/CoRN/algebra/COrdCauchy/local_mon_imp_mon.con. + +inline cic:/CoRN/algebra/COrdCauchy/local_mon_imp_mon'.con. + +inline cic:/CoRN/algebra/COrdCauchy/local_mon'_imp_mon'.con. + +inline cic:/CoRN/algebra/COrdCauchy/mon_imp_mon'.con. + +inline cic:/CoRN/algebra/COrdCauchy/mon_imp_inj.con. + +inline cic:/CoRN/algebra/COrdCauchy/local_mon_imp_mon_lt.con. + +inline cic:/CoRN/algebra/COrdCauchy/local_mon_imp_mon'_lt.con. + +inline cic:/CoRN/algebra/COrdCauchy/local_mon'_imp_mon'_lt.con. + +inline cic:/CoRN/algebra/COrdCauchy/local_mon'_imp_mon'2_lt.con. + +inline cic:/CoRN/algebra/COrdCauchy/mon_imp_mon'_lt.con. + +inline cic:/CoRN/algebra/COrdCauchy/mon_imp_inj_lt.con. + +inline cic:/CoRN/algebra/COrdCauchy/local_mon_imp_mon_le.con. + +inline cic:/CoRN/algebra/COrdCauchy/local_mon_imp_mon'_le.con. + +inline cic:/CoRN/algebra/COrdCauchy/local_mon'_imp_mon'_le.con. + +inline cic:/CoRN/algebra/COrdCauchy/local_mon'_imp_mon'2_le.con. + +inline cic:/CoRN/algebra/COrdCauchy/mon_imp_mon'_le.con. + +inline cic:/CoRN/algebra/COrdCauchy/mon_imp_inj_le.con. + +(*#* +A similar result for %{\em %partial%}% functions. +*) + +inline cic:/CoRN/algebra/COrdCauchy/part_mon_imp_mon'.con. + +(* UNEXPORTED +End Monotonous_functions. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/COrdFields.ma b/matita/contribs/CoRN-Decl/algebra/COrdFields.ma new file mode 100644 index 000000000..69382e44f --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/COrdFields.ma @@ -0,0 +1,685 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/COrdFields". + +(* $Id: COrdFields.v,v 1.6 2004/04/23 10:00:52 lcf Exp $ *) + +(*#* printing [<] %\ensuremath<% #<# *) + +(*#* printing [<=] %\ensuremath{\leq}% #≤# *) + +(*#* printing [>] %\ensuremath>% #># *) + +(*#* printing OneNZ %\ensuremath{\mathbf1}% #1# *) + +(*#* printing TwoNZ %\ensuremath{\mathbf2}% #2# *) + +(*#* printing ThreeNZ %\ensuremath{\mathbf3}% #3# *) + +(*#* printing FourNZ %\ensuremath{\mathbf4}% #4# *) + +(*#* printing SixNZ %\ensuremath{\mathbf6}% #6# *) + +(*#* printing EightNZ %\ensuremath{\mathbf8}% #8# *) + +(*#* printing NineNZ %\ensuremath{\mathbf9}% #9# *) + +(*#* printing TwelveNZ %\ensuremath{\mathbf{12}}% #12# *) + +(*#* printing SixteenNZ %\ensuremath{\mathbf{16}}% #16# *) + +(*#* printing EighteenNZ %\ensuremath{\mathbf{18}}% #18# *) + +(*#* printing TwentyFourNZ %\ensuremath{\mathbf{24}}% #24# *) + +(*#* printing FortyEightNZ %\ensuremath{\mathbf{48}}% #48# *) + +(* INCLUDE +FieldReflection +*) + +(* ORDERED FIELDS *) + +(*#* +* Ordered Fields +** Definition of the notion of ordered field +*) + +(* Begin_SpecReals *) + +inline cic:/CoRN/algebra/COrdFields/strictorder.ind. + +(* UNEXPORTED +Implicit Arguments strictorder [A]. +*) + +(* UNEXPORTED +Implicit Arguments Build_strictorder [A R]. +*) + +(* UNEXPORTED +Implicit Arguments so_trans [A R]. +*) + +(* UNEXPORTED +Implicit Arguments so_asym [A R]. +*) + +inline cic:/CoRN/algebra/COrdFields/is_COrdField.ind. + +inline cic:/CoRN/algebra/COrdFields/COrdField.ind. + +(*#* +%\begin{nameconvention}% +In the names of lemmas, [ [<] ] is written as [less] and "[Zero [<] ]" +is written as [pos]. +%\end{nameconvention}% +*) + +(* UNEXPORTED +Implicit Arguments cof_less [c]. +*) + +inline cic:/CoRN/algebra/COrdFields/greater.con. + +(* UNEXPORTED +Implicit Arguments greater [F]. +*) + +(* End_SpecReals *) + +(*#* +Less or equal is defined as ``not greater than''. +*) + +inline cic:/CoRN/algebra/COrdFields/leEq.con. + +(*#* +%\begin{nameconvention}% +In the names of lemmas, [ [<=] ] is written as [leEq] and +[Zero [<=] ] is written as [nonneg]. +%\end{nameconvention}% +*) + +(* UNEXPORTED +Implicit Arguments leEq [F]. +*) + +(* UNEXPORTED +Section COrdField_axioms. +*) + +(*#* +** Ordered field axioms +%\begin{convention}% +Let [F] be a field. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/COrdFields/F.var. + +inline cic:/CoRN/algebra/COrdFields/COrdField_is_COrdField.con. + +inline cic:/CoRN/algebra/COrdFields/less_strorder.con. + +inline cic:/CoRN/algebra/COrdFields/less_transitive_unfolded.con. + +inline cic:/CoRN/algebra/COrdFields/less_antisymmetric_unfolded.con. + +inline cic:/CoRN/algebra/COrdFields/less_irreflexive.con. + +inline cic:/CoRN/algebra/COrdFields/less_irreflexive_unfolded.con. + +inline cic:/CoRN/algebra/COrdFields/plus_resp_less_rht.con. + +inline cic:/CoRN/algebra/COrdFields/mult_resp_pos.con. + +inline cic:/CoRN/algebra/COrdFields/less_conf_ap.con. + +inline cic:/CoRN/algebra/COrdFields/less_wdr.con. + +inline cic:/CoRN/algebra/COrdFields/less_wdl.con. + +(* UNEXPORTED +End COrdField_axioms. +*) + +(* UNEXPORTED +Declare Left Step less_wdl. +*) + +(* UNEXPORTED +Declare Right Step less_wdr. +*) + +(* UNEXPORTED +Section OrdField_basics. +*) + +(*#* +** Basics +*) + +(*#* +%\begin{convention}% +Let in the rest of this section (and all subsections) +[R] be an ordered field +%\end{convention}% +*) + +inline cic:/CoRN/algebra/COrdFields/R.var. + +inline cic:/CoRN/algebra/COrdFields/less_imp_ap.con. + +inline cic:/CoRN/algebra/COrdFields/Greater_imp_ap.con. + +inline cic:/CoRN/algebra/COrdFields/ap_imp_less.con. + +(*#* +Now properties which can be derived. +*) + +inline cic:/CoRN/algebra/COrdFields/less_cotransitive.con. + +inline cic:/CoRN/algebra/COrdFields/less_cotransitive_unfolded.con. + +inline cic:/CoRN/algebra/COrdFields/pos_ap_zero.con. + +(* Main characterization of less *) + +inline cic:/CoRN/algebra/COrdFields/leEq_not_eq.con. + +(* UNEXPORTED +End OrdField_basics. +*) + +(*#**********************************) + +(* UNEXPORTED +Section Basic_Properties_of_leEq. +*) + +(*#**********************************) + +(*#* ** Basic properties of [ [<=] ] +*) + +inline cic:/CoRN/algebra/COrdFields/R.var. + +inline cic:/CoRN/algebra/COrdFields/leEq_wdr.con. + +inline cic:/CoRN/algebra/COrdFields/leEq_wdl.con. + +inline cic:/CoRN/algebra/COrdFields/leEq_reflexive.con. + +(* UNEXPORTED +Declare Left Step leEq_wdl. +*) + +(* UNEXPORTED +Declare Right Step leEq_wdr. +*) + +inline cic:/CoRN/algebra/COrdFields/eq_imp_leEq.con. + +inline cic:/CoRN/algebra/COrdFields/leEq_imp_eq.con. + +inline cic:/CoRN/algebra/COrdFields/lt_equiv_imp_eq.con. + +inline cic:/CoRN/algebra/COrdFields/less_leEq_trans.con. + +inline cic:/CoRN/algebra/COrdFields/leEq_less_trans.con. + +inline cic:/CoRN/algebra/COrdFields/leEq_transitive.con. + +inline cic:/CoRN/algebra/COrdFields/less_leEq.con. + +(* UNEXPORTED +End Basic_Properties_of_leEq. +*) + +(* UNEXPORTED +Declare Left Step leEq_wdl. +*) + +(* UNEXPORTED +Declare Right Step leEq_wdr. +*) + +(* UNEXPORTED +Section infinity_of_cordfields. +*) + +(*#* +** Infinity of ordered fields + +In an ordered field we have that [One[+]One] and +[One[+]One[+]One] and so on are all apart from zero. +We first show this, so that we can define [TwoNZ], [ThreeNZ] +and so on. These are elements of [NonZeros], so that we can write +e.g.%\% [x[/]TwoNZ]. +*) + +inline cic:/CoRN/algebra/COrdFields/R.var. + +inline cic:/CoRN/algebra/COrdFields/pos_one.con. + +inline cic:/CoRN/algebra/COrdFields/nring_less_succ.con. + +inline cic:/CoRN/algebra/COrdFields/nring_less.con. + +inline cic:/CoRN/algebra/COrdFields/nring_leEq.con. + +inline cic:/CoRN/algebra/COrdFields/nring_apart.con. + +inline cic:/CoRN/algebra/COrdFields/nring_ap_zero.con. + +inline cic:/CoRN/algebra/COrdFields/nring_ap_zero'.con. + +inline cic:/CoRN/algebra/COrdFields/nring_ap_zero_imp.con. + +inline cic:/CoRN/algebra/COrdFields/Snring.con. + +(* INCLUDE +Transparent_algebra +*) + +inline cic:/CoRN/algebra/COrdFields/pos_Snring.con. + +inline cic:/CoRN/algebra/COrdFields/nringS_ap_zero.con. + +inline cic:/CoRN/algebra/COrdFields/nring_fac_ap_zero.con. + +(* INCLUDE +Opaque_algebra +*) + +(* UNEXPORTED +Section up_to_four. +*) + +(*#* +*** Properties of one up to four +%\begin{nameconvention}% +In the names of lemmas, we denote the numbers 0,1,2,3,4 and so on, by +[zero], [one], [two] etc. +%\end{nameconvention}% +*) + +inline cic:/CoRN/algebra/COrdFields/less_plusOne.con. + +inline cic:/CoRN/algebra/COrdFields/zero_lt_posplus1.con. + +inline cic:/CoRN/algebra/COrdFields/plus_one_ext_less.con. + +inline cic:/CoRN/algebra/COrdFields/one_less_two.con. + +inline cic:/CoRN/algebra/COrdFields/two_less_three.con. + +inline cic:/CoRN/algebra/COrdFields/three_less_four.con. + +inline cic:/CoRN/algebra/COrdFields/pos_two.con. + +inline cic:/CoRN/algebra/COrdFields/one_less_three.con. + +inline cic:/CoRN/algebra/COrdFields/two_less_four.con. + +inline cic:/CoRN/algebra/COrdFields/pos_three.con. + +inline cic:/CoRN/algebra/COrdFields/one_less_four.con. + +inline cic:/CoRN/algebra/COrdFields/pos_four.con. + +inline cic:/CoRN/algebra/COrdFields/two_ap_zero.con. + +inline cic:/CoRN/algebra/COrdFields/three_ap_zero.con. + +inline cic:/CoRN/algebra/COrdFields/four_ap_zero.con. + +(* UNEXPORTED +End up_to_four. +*) + +(* UNEXPORTED +Section More_than_four. +*) + +(*#* *** Properties of some other numbers *) + +inline cic:/CoRN/algebra/COrdFields/pos_six.con. + +inline cic:/CoRN/algebra/COrdFields/pos_eight.con. + +inline cic:/CoRN/algebra/COrdFields/pos_nine.con. + +inline cic:/CoRN/algebra/COrdFields/pos_twelve.con. + +inline cic:/CoRN/algebra/COrdFields/pos_sixteen.con. + +inline cic:/CoRN/algebra/COrdFields/pos_eighteen.con. + +inline cic:/CoRN/algebra/COrdFields/pos_twentyfour.con. + +inline cic:/CoRN/algebra/COrdFields/pos_fortyeight.con. + +inline cic:/CoRN/algebra/COrdFields/six_ap_zero.con. + +inline cic:/CoRN/algebra/COrdFields/eight_ap_zero.con. + +inline cic:/CoRN/algebra/COrdFields/nine_ap_zero.con. + +inline cic:/CoRN/algebra/COrdFields/twelve_ap_zero.con. + +inline cic:/CoRN/algebra/COrdFields/sixteen_ap_zero.con. + +inline cic:/CoRN/algebra/COrdFields/eighteen_ap_zero.con. + +inline cic:/CoRN/algebra/COrdFields/twentyfour_ap_zero.con. + +inline cic:/CoRN/algebra/COrdFields/fortyeight_ap_zero.con. + +(* UNEXPORTED +End More_than_four. +*) + +(* UNEXPORTED +End infinity_of_cordfields. +*) + +(* UNEXPORTED +Declare Left Step leEq_wdl. +*) + +(* UNEXPORTED +Declare Right Step leEq_wdr. +*) + +(* UNEXPORTED +Section consequences_of_infinity. +*) + +(*#* +*** Consequences of infinity +*) + +inline cic:/CoRN/algebra/COrdFields/F.var. + +inline cic:/CoRN/algebra/COrdFields/square_eq.con. + +(*#* +Ordered fields have characteristic zero. +*) + +inline cic:/CoRN/algebra/COrdFields/char0_OrdField.con. + +(* UNEXPORTED +End consequences_of_infinity. +*) + +(*#**********************************) + +(* UNEXPORTED +Section Properties_of_Ordering. +*) + +(*#**********************************) + +(*#* +** Properties of [[<]] +*) + +inline cic:/CoRN/algebra/COrdFields/R.var. + +(*#* +We do not use a special predicate for positivity, +(e.g.%\% [PosP]), but just write [Zero [<] x]. +Reasons: it is more natural; in ordinary mathematics we also write [Zero [<] x] +(or [x [>] Zero]). + +*) + +(* UNEXPORTED +Section addition. +*) + +(*#* +*** Addition and subtraction%\label{section:less_plus_minus}% + +*) + +inline cic:/CoRN/algebra/COrdFields/plus_resp_less_lft.con. + +inline cic:/CoRN/algebra/COrdFields/inv_resp_less.con. + +(* UNEXPORTED +Transparent cg_minus. +*) + +inline cic:/CoRN/algebra/COrdFields/minus_resp_less.con. + +(* UNEXPORTED +Transparent cg_minus. +*) + +inline cic:/CoRN/algebra/COrdFields/minus_resp_less_rht.con. + +inline cic:/CoRN/algebra/COrdFields/plus_resp_less_both.con. + +(*#* +For versions of [plus_resp_less_both] where one [ [<] ] in the +assumption is replaced by [ [<=] ]%, see +Section~\ref{section:leEq-plus-minus}%. + +Cancellation laws +*) + +inline cic:/CoRN/algebra/COrdFields/plus_cancel_less.con. + +inline cic:/CoRN/algebra/COrdFields/inv_cancel_less.con. + +(*#* + +Lemmas where an operation is transformed into the inverse operation on +the other side of an inequality are called laws for shifting. +%\begin{nameconvention}% +The names of laws for shifting start with [shift_], and then come +the operation and the inequality, in the order in which they occur in the +conclusion. +If the shifted operand changes sides w.r.t.%\% the operation and its inverse, +the name gets a prime. +%\end{nameconvention}% + +It would be nicer to write the laws for shifting as bi-implications, +However, it is impractical to use these in +Coq%(see the Coq shortcoming in Section~\ref{section:setoid-basics})%. +*) + +inline cic:/CoRN/algebra/COrdFields/shift_less_plus.con. + +inline cic:/CoRN/algebra/COrdFields/shift_less_plus'.con. + +inline cic:/CoRN/algebra/COrdFields/shift_less_minus.con. + +inline cic:/CoRN/algebra/COrdFields/shift_less_minus'.con. + +inline cic:/CoRN/algebra/COrdFields/shift_plus_less.con. + +inline cic:/CoRN/algebra/COrdFields/shift_plus_less'.con. + +inline cic:/CoRN/algebra/COrdFields/shift_minus_less.con. + +inline cic:/CoRN/algebra/COrdFields/shift_minus_less'.con. + +(*#* +Some special cases of laws for shifting. +*) + +inline cic:/CoRN/algebra/COrdFields/shift_zero_less_minus.con. + +inline cic:/CoRN/algebra/COrdFields/shift_zero_less_minus'.con. + +inline cic:/CoRN/algebra/COrdFields/qltone.con. + +(* UNEXPORTED +End addition. +*) + +(* UNEXPORTED +Section multiplication. +*) + +(*#* +*** Multiplication and division +By Convention%~\ref{convention:div-form}% +in CFields% (Section~\ref{section:fields})%, we often have redundant premises +in lemmas. E.g.%\% the informal statement +``for all [x,y : R] with [Zero [<] x] and [Zero [<] y] +we have [Zero [<] y[/]x]'' +is formalized as follows. +[[ +forall (x y : R) x_, (Zero [<] x) -> (Zero [<] y) -> (Zero [<] y[/]x[//]H) +]] +We do this to keep it easy to use such lemmas. + +*) + +inline cic:/CoRN/algebra/COrdFields/mult_resp_less.con. + +inline cic:/CoRN/algebra/COrdFields/recip_resp_pos.con. + +inline cic:/CoRN/algebra/COrdFields/div_resp_less_rht.con. + +inline cic:/CoRN/algebra/COrdFields/div_resp_pos.con. + +inline cic:/CoRN/algebra/COrdFields/mult_resp_less_lft.con. + +inline cic:/CoRN/algebra/COrdFields/mult_resp_less_both.con. + +inline cic:/CoRN/algebra/COrdFields/recip_resp_less.con. + +inline cic:/CoRN/algebra/COrdFields/div_resp_less.con. + +(*#* Cancellation laws +*) + +inline cic:/CoRN/algebra/COrdFields/mult_cancel_less.con. + +(*#* +Laws for shifting + +%For namegiving, see the Section~\ref{section:less_plus_minus} +on plus and minus.% +*) + +inline cic:/CoRN/algebra/COrdFields/shift_div_less.con. + +inline cic:/CoRN/algebra/COrdFields/shift_div_less'.con. + +inline cic:/CoRN/algebra/COrdFields/shift_less_div.con. + +inline cic:/CoRN/algebra/COrdFields/shift_less_mult.con. + +inline cic:/CoRN/algebra/COrdFields/shift_less_mult'.con. + +inline cic:/CoRN/algebra/COrdFields/shift_mult_less.con. + +(*#* Other properties of multiplication and division +*) + +inline cic:/CoRN/algebra/COrdFields/minusOne_less.con. + +inline cic:/CoRN/algebra/COrdFields/swap_div.con. + +inline cic:/CoRN/algebra/COrdFields/eps_div_less_eps.con. + +inline cic:/CoRN/algebra/COrdFields/pos_div_two.con. + +inline cic:/CoRN/algebra/COrdFields/pos_div_two'.con. + +(* +Apply mult_cancel_less with (Two::R). +Apply pos_two. +rstepl eps[+]Zero; rstepr eps[+]eps. +Apply plus_resp_less_lft. +Auto. +Qed. +*) + +inline cic:/CoRN/algebra/COrdFields/pos_div_three.con. + +inline cic:/CoRN/algebra/COrdFields/pos_div_three'.con. + +inline cic:/CoRN/algebra/COrdFields/pos_div_four.con. + +inline cic:/CoRN/algebra/COrdFields/pos_div_four'.con. + +inline cic:/CoRN/algebra/COrdFields/pos_div_six.con. + +inline cic:/CoRN/algebra/COrdFields/pos_div_eight.con. + +inline cic:/CoRN/algebra/COrdFields/pos_div_nine.con. + +inline cic:/CoRN/algebra/COrdFields/pos_div_twelve.con. + +inline cic:/CoRN/algebra/COrdFields/pos_div_sixteen.con. + +inline cic:/CoRN/algebra/COrdFields/pos_div_eighteen.con. + +inline cic:/CoRN/algebra/COrdFields/pos_div_twentyfour.con. + +inline cic:/CoRN/algebra/COrdFields/pos_div_fortyeight.con. + +(* UNEXPORTED +End multiplication. +*) + +(* UNEXPORTED +Section misc. +*) + +(*#* +*** Miscellaneous properties +*) + +inline cic:/CoRN/algebra/COrdFields/nring_pos.con. + +inline cic:/CoRN/algebra/COrdFields/less_nring.con. + +inline cic:/CoRN/algebra/COrdFields/pos_nring_fac.con. + +inline cic:/CoRN/algebra/COrdFields/Smallest_less_Average.con. + +inline cic:/CoRN/algebra/COrdFields/Average_less_Greatest.con. + +inline cic:/CoRN/algebra/COrdFields/Sum_resp_less.con. + +inline cic:/CoRN/algebra/COrdFields/Sumx_resp_less.con. + +inline cic:/CoRN/algebra/COrdFields/positive_Sum_two.con. + +inline cic:/CoRN/algebra/COrdFields/positive_Sumx.con. + +inline cic:/CoRN/algebra/COrdFields/negative_Sumx.con. + +(* UNEXPORTED +End misc. +*) + +(* UNEXPORTED +End Properties_of_Ordering. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/COrdFields2.ma b/matita/contribs/CoRN-Decl/algebra/COrdFields2.ma new file mode 100644 index 000000000..35ccf3178 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/COrdFields2.ma @@ -0,0 +1,370 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/COrdFields2". + +(* INCLUDE +COrdFields +*) + +(*#* printing one_div_succ %\ensuremath{\frac1{\cdot+1}}% *) + +(*#* printing Half %\ensuremath{\frac12}% #½# *) + +(*#**********************************) + +(* UNEXPORTED +Section Properties_of_leEq. +*) + +(*#**********************************) + +(*#* +** Properties of [[<=]] +%\begin{convention}% Let [R] be an ordered field. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/COrdFields2/R.var. + +(* UNEXPORTED +Section addition. +*) + +(*#* +*** Addition and subtraction%\label{section:leEq-plus-minus}% +*) + +inline cic:/CoRN/algebra/COrdFields2/plus_resp_leEq.con. + +inline cic:/CoRN/algebra/COrdFields2/plus_resp_leEq_lft.con. + +inline cic:/CoRN/algebra/COrdFields2/minus_resp_leEq.con. + +inline cic:/CoRN/algebra/COrdFields2/inv_resp_leEq.con. + +(* UNEXPORTED +Transparent cg_minus. +*) + +inline cic:/CoRN/algebra/COrdFields2/minus_resp_leEq_rht.con. + +inline cic:/CoRN/algebra/COrdFields2/plus_resp_leEq_both.con. + +inline cic:/CoRN/algebra/COrdFields2/plus_resp_less_leEq.con. + +inline cic:/CoRN/algebra/COrdFields2/plus_resp_leEq_less.con. + +inline cic:/CoRN/algebra/COrdFields2/minus_resp_less_leEq.con. + +inline cic:/CoRN/algebra/COrdFields2/minus_resp_leEq_both.con. + +(*#* Cancellation properties +*) + +inline cic:/CoRN/algebra/COrdFields2/plus_cancel_leEq_rht.con. + +inline cic:/CoRN/algebra/COrdFields2/inv_cancel_leEq.con. + +(*#* Laws for shifting +*) + +inline cic:/CoRN/algebra/COrdFields2/shift_plus_leEq.con. + +inline cic:/CoRN/algebra/COrdFields2/shift_leEq_plus.con. + +inline cic:/CoRN/algebra/COrdFields2/shift_plus_leEq'.con. + +inline cic:/CoRN/algebra/COrdFields2/shift_leEq_plus'.con. + +inline cic:/CoRN/algebra/COrdFields2/shift_leEq_rht.con. + +inline cic:/CoRN/algebra/COrdFields2/shift_leEq_lft.con. + +inline cic:/CoRN/algebra/COrdFields2/shift_minus_leEq.con. + +inline cic:/CoRN/algebra/COrdFields2/shift_leEq_minus.con. + +inline cic:/CoRN/algebra/COrdFields2/shift_leEq_minus'.con. + +inline cic:/CoRN/algebra/COrdFields2/shift_zero_leEq_minus.con. + +inline cic:/CoRN/algebra/COrdFields2/shift_zero_leEq_minus'.con. + +(* UNEXPORTED +End addition. +*) + +(* UNEXPORTED +Section multiplication. +*) + +(*#* +*** Multiplication and division + +Multiplication and division respect [[<=]] +*) + +inline cic:/CoRN/algebra/COrdFields2/mult_resp_leEq_rht.con. + +inline cic:/CoRN/algebra/COrdFields2/mult_resp_leEq_lft.con. + +inline cic:/CoRN/algebra/COrdFields2/mult_resp_leEq_both.con. + +inline cic:/CoRN/algebra/COrdFields2/recip_resp_leEq.con. + +inline cic:/CoRN/algebra/COrdFields2/div_resp_leEq.con. + +(* UNEXPORTED +Hint Resolve recip_resp_leEq: algebra. +*) + +(*#* Cancellation properties +*) + +inline cic:/CoRN/algebra/COrdFields2/mult_cancel_leEq.con. + +(*#* Laws for shifting +*) + +inline cic:/CoRN/algebra/COrdFields2/shift_mult_leEq.con. + +inline cic:/CoRN/algebra/COrdFields2/shift_mult_leEq'.con. + +inline cic:/CoRN/algebra/COrdFields2/shift_leEq_mult'.con. + +inline cic:/CoRN/algebra/COrdFields2/shift_div_leEq.con. + +inline cic:/CoRN/algebra/COrdFields2/shift_div_leEq'.con. + +inline cic:/CoRN/algebra/COrdFields2/shift_leEq_div.con. + +(* UNEXPORTED +Hint Resolve shift_leEq_div: algebra. +*) + +inline cic:/CoRN/algebra/COrdFields2/eps_div_leEq_eps.con. + +inline cic:/CoRN/algebra/COrdFields2/nonneg_div_two.con. + +inline cic:/CoRN/algebra/COrdFields2/nonneg_div_two'.con. + +inline cic:/CoRN/algebra/COrdFields2/nonneg_div_three.con. + +inline cic:/CoRN/algebra/COrdFields2/nonneg_div_three'.con. + +inline cic:/CoRN/algebra/COrdFields2/nonneg_div_four.con. + +inline cic:/CoRN/algebra/COrdFields2/nonneg_div_four'.con. + +(* UNEXPORTED +End multiplication. +*) + +(* UNEXPORTED +Section misc. +*) + +(*#* +*** Miscellaneous Properties +*) + +inline cic:/CoRN/algebra/COrdFields2/sqr_nonneg.con. + +inline cic:/CoRN/algebra/COrdFields2/nring_nonneg.con. + +inline cic:/CoRN/algebra/COrdFields2/suc_leEq_dub.con. + +inline cic:/CoRN/algebra/COrdFields2/leEq_nring.con. + +inline cic:/CoRN/algebra/COrdFields2/cc_abs_aid.con. + +(* INCLUDE +Transparent_algebra +*) + +inline cic:/CoRN/algebra/COrdFields2/nexp_resp_pos.con. + +(* INCLUDE +Opaque_algebra +*) + +inline cic:/CoRN/algebra/COrdFields2/mult_resp_nonneg.con. + +(* INCLUDE +Transparent_algebra +*) + +inline cic:/CoRN/algebra/COrdFields2/nexp_resp_nonneg.con. + +inline cic:/CoRN/algebra/COrdFields2/power_resp_leEq.con. + +inline cic:/CoRN/algebra/COrdFields2/nexp_resp_less.con. + +inline cic:/CoRN/algebra/COrdFields2/power_cancel_leEq.con. + +inline cic:/CoRN/algebra/COrdFields2/power_cancel_less.con. + +inline cic:/CoRN/algebra/COrdFields2/nat_less_bin_nexp.con. + +inline cic:/CoRN/algebra/COrdFields2/Sum_resp_leEq.con. + +inline cic:/CoRN/algebra/COrdFields2/Sumx_resp_leEq.con. + +inline cic:/CoRN/algebra/COrdFields2/Sum2_resp_leEq.con. + +inline cic:/CoRN/algebra/COrdFields2/approach_zero.con. + +inline cic:/CoRN/algebra/COrdFields2/approach_zero_weak.con. + +(* UNEXPORTED +End misc. +*) + +inline cic:/CoRN/algebra/COrdFields2/equal_less_leEq.con. + +(* UNEXPORTED +End Properties_of_leEq. +*) + +(*#**********************************) + +(* UNEXPORTED +Section PosP_properties. +*) + +(*#**********************************) + +(*#* +** Properties of positive numbers +%\begin{convention}% Let [R] be an ordered field. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/COrdFields2/R.var. + +(* begin hide *) + +(* end hide *) + +inline cic:/CoRN/algebra/COrdFields2/mult_pos_imp.con. + +inline cic:/CoRN/algebra/COrdFields2/plus_resp_pos_nonneg.con. + +inline cic:/CoRN/algebra/COrdFields2/plus_resp_nonneg_pos.con. + +inline cic:/CoRN/algebra/COrdFields2/pos_square.con. + +inline cic:/CoRN/algebra/COrdFields2/mult_cancel_pos_rht.con. + +inline cic:/CoRN/algebra/COrdFields2/mult_cancel_pos_lft.con. + +inline cic:/CoRN/algebra/COrdFields2/pos_wd.con. + +inline cic:/CoRN/algebra/COrdFields2/even_power_pos.con. + +inline cic:/CoRN/algebra/COrdFields2/odd_power_cancel_pos.con. + +inline cic:/CoRN/algebra/COrdFields2/plus_resp_pos.con. + +inline cic:/CoRN/algebra/COrdFields2/pos_nring_S.con. + +inline cic:/CoRN/algebra/COrdFields2/square_eq_pos.con. + +inline cic:/CoRN/algebra/COrdFields2/square_eq_neg.con. + +(* UNEXPORTED +End PosP_properties. +*) + +(* UNEXPORTED +Hint Resolve mult_resp_nonneg. +*) + +(*#* +** Properties of one over successor +%\begin{convention}% Let [R] be an ordered field. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/COrdFields2/one_div_succ.con. + +(* UNEXPORTED +Implicit Arguments one_div_succ [R]. +*) + +(* UNEXPORTED +Section One_div_succ_properties. +*) + +inline cic:/CoRN/algebra/COrdFields2/R.var. + +inline cic:/CoRN/algebra/COrdFields2/one_div_succ_resp_leEq.con. + +inline cic:/CoRN/algebra/COrdFields2/one_div_succ_pos.con. + +inline cic:/CoRN/algebra/COrdFields2/one_div_succ_resp_less.con. + +(* UNEXPORTED +End One_div_succ_properties. +*) + +(*#* +** Properties of [Half] +*) + +inline cic:/CoRN/algebra/COrdFields2/Half.con. + +(* UNEXPORTED +Implicit Arguments Half [R]. +*) + +(* UNEXPORTED +Section Half_properties. +*) + +(*#* +%\begin{convention}% +Let [R] be an ordered field. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/COrdFields2/R.var. + +inline cic:/CoRN/algebra/COrdFields2/half_1.con. + +(* UNEXPORTED +Hint Resolve half_1: algebra. +*) + +inline cic:/CoRN/algebra/COrdFields2/pos_half.con. + +inline cic:/CoRN/algebra/COrdFields2/half_1'.con. + +inline cic:/CoRN/algebra/COrdFields2/half_2.con. + +inline cic:/CoRN/algebra/COrdFields2/half_lt1.con. + +inline cic:/CoRN/algebra/COrdFields2/half_3.con. + +(* UNEXPORTED +End Half_properties. +*) + +(* UNEXPORTED +Hint Resolve half_1 half_1' half_2: algebra. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CPoly_ApZero.ma b/matita/contribs/CoRN-Decl/algebra/CPoly_ApZero.ma new file mode 100644 index 000000000..d6839ae40 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CPoly_ApZero.ma @@ -0,0 +1,188 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CPoly_ApZero". + +(* $Id: CPoly_ApZero.v,v 1.3 2004/04/23 10:00:53 lcf Exp $ *) + +(* INCLUDE +CPoly_Degree +*) + +(* INCLUDE +COrdFields2 +*) + +(*#* * Polynomials apart from zero *) + +inline cic:/CoRN/algebra/CPoly_ApZero/distinct1.con. + +(* UNEXPORTED +Implicit Arguments distinct1 [A]. +*) + +(* UNEXPORTED +Section Poly_Representation. +*) + +(*#* +** Representation of polynomials +%\begin{convention}% Let [R] be a field, [RX] the ring of polynomials +over [R], [a_ : nat->R] with [(distinct1 a_)] and let [f] be a +polynomial over [R], [n] a natural with [(degree_le n f)], i.e. [f] +has degree at most [n]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CPoly_ApZero/R.var. + +inline cic:/CoRN/algebra/CPoly_ApZero/a_.var. + +inline cic:/CoRN/algebra/CPoly_ApZero/distinct_a_.var. + +inline cic:/CoRN/algebra/CPoly_ApZero/f.var. + +inline cic:/CoRN/algebra/CPoly_ApZero/n.var. + +inline cic:/CoRN/algebra/CPoly_ApZero/degree_f.var. + +(* begin hide *) + +(* end hide *) + +(* INCLUDE +Transparent_algebra +*) + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_linear_shifted.con. + +(* INCLUDE +Opaque_algebra +*) + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_linear_factor.con. + +inline cic:/CoRN/algebra/CPoly_ApZero/zero_poly.con. + +inline cic:/CoRN/algebra/CPoly_ApZero/identical_poly.con. + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor'.con. + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor'_degree.con. + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor'_zero.con. + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor'_apzero.con. + +(* UNEXPORTED +Hint Resolve poly_01_factor'_zero. +*) + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor.con. + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor_degree.con. + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor_zero.con. + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor_one.con. + +(* UNEXPORTED +Hint Resolve poly_01_factor_zero poly_01_factor_one: algebra. +*) + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_01.con. + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_01_degree'.con. + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_01_degree.con. + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_01_zero.con. + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_01_one.con. + +(* UNEXPORTED +Hint Resolve poly_01_zero poly_01_one: algebra. +*) + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_representation''.con. + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_representation'.con. + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_representation.con. + +(* UNEXPORTED +Hint Resolve poly_representation: algebra. +*) + +inline cic:/CoRN/algebra/CPoly_ApZero/Cpoly_choose_apzero.con. + +(* UNEXPORTED +End Poly_Representation. +*) + +(* UNEXPORTED +Section Characteristic_zero. +*) + +(*#* +If we are in a field of characteristic zero, the previous result can be +strengthened. +*) + +inline cic:/CoRN/algebra/CPoly_ApZero/R.var. + +(* begin show *) + +inline cic:/CoRN/algebra/CPoly_ApZero/H.var. + +(* end show *) + +(* begin hide *) + +(* end hide *) + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_apzero.con. + +(*#* +Also, in this situation polynomials are extensional functions. +*) + +inline cic:/CoRN/algebra/CPoly_ApZero/poly_extensional.con. + +(* UNEXPORTED +End Characteristic_zero. +*) + +(*#* +** Polynomials are nonzero on any interval +*) + +(* UNEXPORTED +Section Poly_ApZero_Interval. +*) + +inline cic:/CoRN/algebra/CPoly_ApZero/R.var. + +(* begin hide *) + +(* end hide *) + +inline cic:/CoRN/algebra/CPoly_ApZero/Cpoly_apzero_interval.con. + +(* UNEXPORTED +End Poly_ApZero_Interval. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CPoly_Degree.ma b/matita/contribs/CoRN-Decl/algebra/CPoly_Degree.ma new file mode 100644 index 000000000..a7551f2f7 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CPoly_Degree.ma @@ -0,0 +1,236 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CPoly_Degree". + +(* $Id: CPoly_Degree.v,v 1.5 2004/04/23 10:00:53 lcf Exp $ *) + +(* INCLUDE +CPoly_NthCoeff +*) + +(* INCLUDE +CFields +*) + +(*#* *Degrees of Polynomials +** Degrees of polynomials over a ring +%\begin{convention}% +Let [R] be a ring and write [RX] for the ring of polynomials +over [R]. +%\end{convention}% +*) + +(* UNEXPORTED +Section Degree_def. +*) + +inline cic:/CoRN/algebra/CPoly_Degree/R.var. + +(* begin hide *) + +(* end hide *) + +(*#* +The length of a polynomial is the number of its coefficients. This is +a syntactical property, as the highest coefficient may be [0]. Note that +the `zero' polynomial [cpoly_zero] has length [0], +a constant polynomial has length [1] and so forth. So the length +is always [1] higher than the `degree' (assuming that the highest +coefficient is [[#]Zero])! +*) + +inline cic:/CoRN/algebra/CPoly_Degree/lth_of_poly.con. + +(*#* +When dealing with constructive polynomials, notably over the reals or +complex numbers, the degree may be unknown, as we can not decide +whether the highest coefficient is [[#]Zero]. Hence, +degree is a relation between polynomials and natural numbers; if the +degree is unknown for polynomial [p], degree(n,p) doesn't hold for +any [n]. If we don't know the degree of [p], we may still +know it to be below or above a certain number. E.g. for the polynomial +$p_0 +p_1 X +\cdots + p_{n-1} X^{n-1}$#p0 +p1 X + ... + p(n-1) +X^(n-1)#, if $p_i \mathrel{\#}0$#pi apart from 0#, we can say that the +`degree is at least [i]' and if $p_{j+1} = \ldots =p_n =0$#p(j+1) += ... =pn =0# (with [n] the length of the polynomial), we can say +that the `degree is at most [j]'. +*) + +inline cic:/CoRN/algebra/CPoly_Degree/degree_le.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree.con. + +inline cic:/CoRN/algebra/CPoly_Degree/monic.con. + +inline cic:/CoRN/algebra/CPoly_Degree/odd_cpoly.con. + +inline cic:/CoRN/algebra/CPoly_Degree/even_cpoly.con. + +inline cic:/CoRN/algebra/CPoly_Degree/regular.con. + +(* UNEXPORTED +End Degree_def. +*) + +(* UNEXPORTED +Implicit Arguments degree_le [R]. +*) + +(* UNEXPORTED +Implicit Arguments degree [R]. +*) + +(* UNEXPORTED +Implicit Arguments monic [R]. +*) + +(* UNEXPORTED +Implicit Arguments lth_of_poly [R]. +*) + +(* UNEXPORTED +Section Degree_props. +*) + +inline cic:/CoRN/algebra/CPoly_Degree/R.var. + +(* begin hide *) + +(* end hide *) + +inline cic:/CoRN/algebra/CPoly_Degree/degree_le_wd.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_wd.con. + +inline cic:/CoRN/algebra/CPoly_Degree/monic_wd.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_imp_degree_le.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_le_c_.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_c_.con. + +inline cic:/CoRN/algebra/CPoly_Degree/monic_c_one.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_le_x_.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_x_.con. + +inline cic:/CoRN/algebra/CPoly_Degree/monic_x_.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_le_mon.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_le_inv.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_le_plus.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_le_minus.con. + +inline cic:/CoRN/algebra/CPoly_Degree/Sum_degree_le.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_inv.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_plus_rht.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_minus_lft.con. + +inline cic:/CoRN/algebra/CPoly_Degree/monic_plus.con. + +inline cic:/CoRN/algebra/CPoly_Degree/monic_minus.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_le_mult.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_mult_aux.con. + +(* UNEXPORTED +Hint Resolve degree_mult_aux: algebra. +*) + +inline cic:/CoRN/algebra/CPoly_Degree/monic_mult.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_le_nexp.con. + +inline cic:/CoRN/algebra/CPoly_Degree/monic_nexp.con. + +inline cic:/CoRN/algebra/CPoly_Degree/lt_i_lth_of_poly.con. + +inline cic:/CoRN/algebra/CPoly_Degree/poly_degree_lth.con. + +inline cic:/CoRN/algebra/CPoly_Degree/Cpoly_ex_degree.con. + +inline cic:/CoRN/algebra/CPoly_Degree/poly_as_sum''.con. + +(* UNEXPORTED +Hint Resolve poly_as_sum'': algebra. +*) + +inline cic:/CoRN/algebra/CPoly_Degree/poly_as_sum'.con. + +inline cic:/CoRN/algebra/CPoly_Degree/poly_as_sum.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_le_zero.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_le_1_imp.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_le_cpoly_linear.con. + +inline cic:/CoRN/algebra/CPoly_Degree/monic_cpoly_linear.con. + +inline cic:/CoRN/algebra/CPoly_Degree/monic_one.con. + +inline cic:/CoRN/algebra/CPoly_Degree/monic_apzero.con. + +(* UNEXPORTED +End Degree_props. +*) + +(* UNEXPORTED +Hint Resolve poly_as_sum'' poly_as_sum' poly_as_sum: algebra. +*) + +(* UNEXPORTED +Hint Resolve degree_mult_aux: algebra. +*) + +(* UNEXPORTED +Section degree_props_Field. +*) + +(*#* ** Degrees of polynomials over a field +%\begin{convention}% Let [F] be a field and write [FX] for the ring of +polynomials over [F]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CPoly_Degree/F.var. + +(* begin hide *) + +(* end hide *) + +inline cic:/CoRN/algebra/CPoly_Degree/degree_mult.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_nexp.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_le_mult_imp.con. + +inline cic:/CoRN/algebra/CPoly_Degree/degree_mult_imp.con. + +(* UNEXPORTED +End degree_props_Field. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CPoly_NthCoeff.ma b/matita/contribs/CoRN-Decl/algebra/CPoly_NthCoeff.ma new file mode 100644 index 000000000..4d6d18498 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CPoly_NthCoeff.ma @@ -0,0 +1,204 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CPoly_NthCoeff". + +(* $Id: CPoly_NthCoeff.v,v 1.6 2004/04/23 10:00:53 lcf Exp $ *) + +(* INCLUDE +CPolynomials +*) + +(*#* +* Polynomials: Nth Coefficient +%\begin{convention}% Let [R] be a ring and write [RX] for the ring of +polynomials over [R]. +%\end{convention}% + +** Definitions +*) + +(* UNEXPORTED +Section NthCoeff_def. +*) + +inline cic:/CoRN/algebra/CPoly_NthCoeff/R.var. + +(* begin hide *) + +(* end hide *) + +(*#* +The [n]-th coefficient of a polynomial. The default value is +[Zero:CR] e.g. if the [n] is higher than the length. For the +polynomial $a_0 +a_1 X +a_2 X^2 + \cdots + a_n X^n$ #a0 +a1 X +a2 X^2 ++ ... + an X^n#, the [Zero]-th coefficient is $a_0$#a0#, the first +is $a_1$#a1# etcetera. *) + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_strext.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_wd.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_fun.con. + +(*#* +%\begin{shortcoming}% +We would like to use [nth_coeff_fun n] all the time. +However, Coq's coercion mechanism doesn't support this properly: +the term +[(nth_coeff_fun n p)] won't get parsed, and has to be written as +[((nth_coeff_fun n) p)] instead. + +So, in the names of lemmas, we write [(nth_coeff n p)], +which always (e.g. in proofs) can be converted +to [((nth_coeff_fun n) p)]. +%\end{shortcoming}% +*) + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nonConst.con. + +(*#* +The following is probably NOT needed. These functions are +NOT extensional, that is, they are not CSetoid functions. +*) + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_ok.con. + +(* The in_coeff predicate*) + +inline cic:/CoRN/algebra/CPoly_NthCoeff/in_coeff.con. + +(*#* +The [cpoly_zero] case should be [c [=] Zero] in order to be extensional. +*) + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_S.con. + +(* UNEXPORTED +End NthCoeff_def. +*) + +(* UNEXPORTED +Implicit Arguments nth_coeff [R]. +*) + +(* UNEXPORTED +Implicit Arguments nth_coeff_fun [R]. +*) + +(* UNEXPORTED +Hint Resolve nth_coeff_wd: algebra_c. +*) + +(* UNEXPORTED +Section NthCoeff_props. +*) + +(*#* ** Properties of [nth_coeff] *) + +inline cic:/CoRN/algebra/CPoly_NthCoeff/R.var. + +(* begin hide *) + +(* end hide *) + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_zero.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/coeff_O_lin.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/coeff_Sm_lin.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/coeff_O_c_.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/coeff_O_x_mult.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/coeff_Sm_x_mult.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/coeff_Sm_mult_x_.con. + +(* UNEXPORTED +Hint Resolve nth_coeff_zero coeff_O_lin coeff_Sm_lin coeff_O_c_ + coeff_O_x_mult coeff_Sm_x_mult coeff_Sm_mult_x_: algebra. +*) + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_ap_zero_imp.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_plus.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_inv.con. + +(* UNEXPORTED +Hint Resolve nth_coeff_inv: algebra. +*) + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_c_mult_p.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_p_mult_c_.con. + +(* UNEXPORTED +Hint Resolve nth_coeff_c_mult_p nth_coeff_p_mult_c_ nth_coeff_plus: algebra. +*) + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_complicated.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/all_nth_coeff_eq_imp.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/poly_at_zero.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_inv'.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_minus.con. + +(* UNEXPORTED +Hint Resolve nth_coeff_minus: algebra. +*) + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_sum0.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_sum.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_nexp_eq.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_nexp_neq.con. + +inline cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_mult.con. + +(* UNEXPORTED +End NthCoeff_props. +*) + +(* UNEXPORTED +Hint Resolve nth_coeff_wd: algebra_c. +*) + +(* UNEXPORTED +Hint Resolve nth_coeff_complicated poly_at_zero nth_coeff_inv: algebra. +*) + +(* UNEXPORTED +Hint Resolve nth_coeff_inv' nth_coeff_c_mult_p nth_coeff_mult: algebra. +*) + +(* UNEXPORTED +Hint Resolve nth_coeff_zero nth_coeff_plus nth_coeff_minus: algebra. +*) + +(* UNEXPORTED +Hint Resolve nth_coeff_nexp_eq nth_coeff_nexp_neq: algebra. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CPolynomials.ma b/matita/contribs/CoRN-Decl/algebra/CPolynomials.ma new file mode 100644 index 000000000..966c8113c --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CPolynomials.ma @@ -0,0 +1,611 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CPolynomials". + +(* $Id: CPolynomials.v,v 1.9 2004/04/23 10:00:53 lcf Exp $ *) + +(*#* printing _X_ %\ensuremath{x}% *) + +(*#* printing _C_ %\ensuremath\diamond% *) + +(*#* printing [+X*] %\ensuremath{+x\times}% #+x×# *) + +(*#* printing RX %\ensuremath{R[x]}% #R[x]# *) + +(*#* printing FX %\ensuremath{F[x]}% #F[x]# *) + +(* INCLUDE +RingReflection +*) + +(*#* * Polynomials +The first section only proves the polynomials form a ring, and nothing more +interesting. +Section%~\ref{section:poly-equality}% gives some basic properties of +equality and induction of polynomials. +** Definition of polynomials; they form a ring +%\label{section:poly-ring}% +*) + +(* UNEXPORTED +Section CPoly_CRing. +*) + +(*#* +%\begin{convention}% Let [CR] be a ring. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CPolynomials/CR.var. + +(*#* +The intuition behind the type [cpoly] is the following +- [(cpoly CR)] is $CR[X]$ #CR[X]#; +- [cpoly_zero] is the `empty' polynomial with no coefficients; +- [(cpoly_linear c p)] is [c[+]X[*]p] + +*) + +inline cic:/CoRN/algebra/CPolynomials/cpoly.ind. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_constant.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_one.con. + +(*#* +Some useful induction lemmas for doubly quantified propositions. +*) + +inline cic:/CoRN/algebra/CPolynomials/Ccpoly_double_ind0.con. + +inline cic:/CoRN/algebra/CPolynomials/Ccpoly_double_sym_ind0.con. + +inline cic:/CoRN/algebra/CPolynomials/Ccpoly_double_ind0'.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_double_ind0.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_double_sym_ind0.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_double_ind0'.con. + +(*#* *** The polynomials form a setoid +*) + +inline cic:/CoRN/algebra/CPolynomials/cpoly_eq_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_eq.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_eq_p_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_ap_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_ap.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_ap_p_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/irreflexive_cpoly_ap.con. + +inline cic:/CoRN/algebra/CPolynomials/symmetric_cpoly_ap.con. + +inline cic:/CoRN/algebra/CPolynomials/cotransitive_cpoly_ap.con. + +inline cic:/CoRN/algebra/CPolynomials/tight_apart_cpoly_ap.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_is_CSetoid.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_csetoid.con. + +(*#* +Now that we know that the polynomials form a setoid, we can use the +notation with [ [#] ] and [ [=] ]. In order to use this notation, +we introduce [cpoly_zero_cs] and [cpoly_linear_cs], so that Coq +recognizes we are talking about a setoid. +We formulate the induction properties and +the most basic properties of equality and apartness +in terms of these generators. +*) + +inline cic:/CoRN/algebra/CPolynomials/cpoly_zero_cs.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_linear_cs.con. + +inline cic:/CoRN/algebra/CPolynomials/Ccpoly_ind_cs.con. + +inline cic:/CoRN/algebra/CPolynomials/Ccpoly_double_ind0_cs.con. + +inline cic:/CoRN/algebra/CPolynomials/Ccpoly_double_sym_ind0_cs.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_ind_cs.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_double_ind0_cs.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_double_sym_ind0_cs.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_lin_eq_zero_.con. + +inline cic:/CoRN/algebra/CPolynomials/_cpoly_lin_eq_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_zero_eq_lin_.con. + +inline cic:/CoRN/algebra/CPolynomials/_cpoly_zero_eq_lin.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_lin_eq_lin_.con. + +inline cic:/CoRN/algebra/CPolynomials/_cpoly_lin_eq_lin.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_lin_ap_zero_.con. + +inline cic:/CoRN/algebra/CPolynomials/_cpoly_lin_ap_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_lin_ap_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_zero_ap_lin_.con. + +inline cic:/CoRN/algebra/CPolynomials/_cpoly_zero_ap_lin.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_zero_ap_lin.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_lin_ap_lin_.con. + +inline cic:/CoRN/algebra/CPolynomials/_cpoly_lin_ap_lin.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_lin_ap_lin.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_linear_strext.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_linear_wd.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_linear_fun.con. + +inline cic:/CoRN/algebra/CPolynomials/Ccpoly_double_comp_ind.con. + +inline cic:/CoRN/algebra/CPolynomials/Ccpoly_triple_comp_ind.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_double_comp_ind.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_triple_comp_ind.con. + +(*#* +*** The polynomials form a semi-group and a monoid +*) + +inline cic:/CoRN/algebra/CPolynomials/cpoly_plus.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_plus_cs.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_zero_plus.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_plus_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_lin_plus_lin.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_plus_commutative.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_plus_q_ap_q.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_p_plus_ap_p.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_ap_zero_plus.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_plus_op_strext.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_plus_op_wd.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_plus_op.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_plus_associative.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_csemi_grp.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_cm_proof.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_cmonoid.con. + +(*#* *** The polynomials form a group +*) + +inline cic:/CoRN/algebra/CPolynomials/cpoly_inv.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_inv_cs.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_inv_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_inv_lin.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_inv_op_strext.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_inv_op_wd.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_inv_op.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_cg_proof.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_cgroup.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_cag_proof.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_cabgroup.con. + +(*#* *** The polynomials form a ring +*) + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_cs.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_zero_mult_cr.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_lin_mult_cr.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_strext.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_wd.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_cs.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_zero_mult.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_lin_mult.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_op_strext.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_op_wd.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_op.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_dist.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_cr_dist.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_assoc_mult_cr.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_assoc_mult.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_lin.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_commutative.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_dist_rht.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_assoc.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_one.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_one_mult.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_one.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_mult_monoid.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_cr_non_triv.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_is_CRing.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_cring.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_constant_strext.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_constant_wd.con. + +inline cic:/CoRN/algebra/CPolynomials/_C_.con. + +inline cic:/CoRN/algebra/CPolynomials/_X_.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_x_minus_c.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_x_minus_c_strext.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_x_minus_c_wd.con. + +(* UNEXPORTED +End CPoly_CRing. +*) + +(* UNEXPORTED +Implicit Arguments _C_ [CR]. +*) + +(* UNEXPORTED +Implicit Arguments _X_ [CR]. +*) + +inline cic:/CoRN/algebra/CPolynomials/cpoly_linear_fun'.con. + +(* UNEXPORTED +Implicit Arguments cpoly_linear_fun' [CR]. +*) + +(*#* ** Apartness, equality, and induction +%\label{section:poly-equality}% +*) + +(* UNEXPORTED +Section CPoly_CRing_ctd. +*) + +(*#* +%\begin{convention}% +Let [CR] be a ring, [p] and [q] polynomials over that ring, and [c] and [d] +elements of the ring. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CPolynomials/CR.var. + +(* UNEXPORTED +Section helpful_section. +*) + +inline cic:/CoRN/algebra/CPolynomials/p.var. + +inline cic:/CoRN/algebra/CPolynomials/q.var. + +inline cic:/CoRN/algebra/CPolynomials/c.var. + +inline cic:/CoRN/algebra/CPolynomials/d.var. + +inline cic:/CoRN/algebra/CPolynomials/linear_eq_zero_.con. + +inline cic:/CoRN/algebra/CPolynomials/_linear_eq_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/zero_eq_linear_.con. + +inline cic:/CoRN/algebra/CPolynomials/_zero_eq_linear.con. + +inline cic:/CoRN/algebra/CPolynomials/linear_eq_linear_.con. + +inline cic:/CoRN/algebra/CPolynomials/_linear_eq_linear.con. + +inline cic:/CoRN/algebra/CPolynomials/linear_ap_zero_.con. + +inline cic:/CoRN/algebra/CPolynomials/_linear_ap_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/linear_ap_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/zero_ap_linear_.con. + +inline cic:/CoRN/algebra/CPolynomials/_zero_ap_linear.con. + +inline cic:/CoRN/algebra/CPolynomials/zero_ap_linear.con. + +inline cic:/CoRN/algebra/CPolynomials/linear_ap_linear_.con. + +inline cic:/CoRN/algebra/CPolynomials/_linear_ap_linear.con. + +inline cic:/CoRN/algebra/CPolynomials/linear_ap_linear.con. + +(* UNEXPORTED +End helpful_section. +*) + +inline cic:/CoRN/algebra/CPolynomials/Ccpoly_induc.con. + +inline cic:/CoRN/algebra/CPolynomials/Ccpoly_double_sym_ind.con. + +inline cic:/CoRN/algebra/CPolynomials/Cpoly_double_comp_ind.con. + +inline cic:/CoRN/algebra/CPolynomials/Cpoly_triple_comp_ind.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_induc.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_double_sym_ind.con. + +inline cic:/CoRN/algebra/CPolynomials/poly_double_comp_ind.con. + +inline cic:/CoRN/algebra/CPolynomials/poly_triple_comp_ind.con. + +(* UNEXPORTED +Transparent cpoly_cring. +*) + +(* UNEXPORTED +Transparent cpoly_cgroup. +*) + +(* UNEXPORTED +Transparent cpoly_csetoid. +*) + +inline cic:/CoRN/algebra/CPolynomials/cpoly_apply.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_apply_strext.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_apply_wd.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_apply_fun.con. + +(* UNEXPORTED +End CPoly_CRing_ctd. +*) + +(*#* +%\begin{convention}% +[cpoly_apply_fun] is denoted infix by [!] +The first argument is left implicit, so the application of +polynomial [f] (seen as a function) to argument [x] can be written as [f!x]. +In the names of lemmas, we write [apply]. +%\end{convention}% +*) + +(* UNEXPORTED +Implicit Arguments cpoly_apply_fun [CR]. +*) + +(*#* +** Basic properties of polynomials +%\begin{convention}% +Let [R] be a ring and write [RX] for the ring of polynomials over [R]. +%\end{convention}% +*) + +(* UNEXPORTED +Section Poly_properties. +*) + +inline cic:/CoRN/algebra/CPolynomials/R.var. + +(*#* +*** Constant and identity +*) + +inline cic:/CoRN/algebra/CPolynomials/cpoly_X_.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_C_.con. + +(* UNEXPORTED +Hint Resolve cpoly_X_ cpoly_C_: algebra. +*) + +inline cic:/CoRN/algebra/CPolynomials/cpoly_const_eq.con. + +inline cic:/CoRN/algebra/CPolynomials/_c_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/_c_one.con. + +inline cic:/CoRN/algebra/CPolynomials/_c_mult.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_lin.con. + +(* UNEXPORTED +Hint Resolve cpoly_lin: algebra. +*) + +(* SUPERFLUOUS *) + +inline cic:/CoRN/algebra/CPolynomials/poly_linear.con. + +(* UNEXPORTED +Hint Resolve _c_zero: algebra. +*) + +inline cic:/CoRN/algebra/CPolynomials/poly_c_apzero.con. + +inline cic:/CoRN/algebra/CPolynomials/_c_mult_lin.con. + +(* SUPERFLUOUS ? *) + +inline cic:/CoRN/algebra/CPolynomials/lin_mult.con. + +(* UNEXPORTED +Hint Resolve lin_mult: algebra. +*) + +(*#* *** Application of polynomials +*) + +inline cic:/CoRN/algebra/CPolynomials/poly_eq_zero.con. + +inline cic:/CoRN/algebra/CPolynomials/apply_wd.con. + +inline cic:/CoRN/algebra/CPolynomials/cpolyap_pres_eq.con. + +inline cic:/CoRN/algebra/CPolynomials/cpolyap_strext.con. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_csetoid_op.con. + +inline cic:/CoRN/algebra/CPolynomials/_c_apply.con. + +inline cic:/CoRN/algebra/CPolynomials/_x_apply.con. + +inline cic:/CoRN/algebra/CPolynomials/plus_apply.con. + +inline cic:/CoRN/algebra/CPolynomials/inv_apply.con. + +(* UNEXPORTED +Hint Resolve plus_apply inv_apply: algebra. +*) + +inline cic:/CoRN/algebra/CPolynomials/minus_apply.con. + +inline cic:/CoRN/algebra/CPolynomials/_c_mult_apply.con. + +(* UNEXPORTED +Hint Resolve _c_mult_apply: algebra. +*) + +inline cic:/CoRN/algebra/CPolynomials/mult_apply.con. + +(* UNEXPORTED +Hint Resolve mult_apply: algebra. +*) + +inline cic:/CoRN/algebra/CPolynomials/one_apply.con. + +(* UNEXPORTED +Hint Resolve one_apply: algebra. +*) + +inline cic:/CoRN/algebra/CPolynomials/nexp_apply.con. + +(* SUPERFLUOUS *) + +inline cic:/CoRN/algebra/CPolynomials/poly_inv_apply.con. + +inline cic:/CoRN/algebra/CPolynomials/Sum0_cpoly_ap.con. + +inline cic:/CoRN/algebra/CPolynomials/Sum_cpoly_ap.con. + +(* UNEXPORTED +End Poly_properties. +*) + +(*#* ** Induction properties of polynomials for [Prop] +*) + +(* UNEXPORTED +Section Poly_Prop_Induction. +*) + +inline cic:/CoRN/algebra/CPolynomials/CR.var. + +inline cic:/CoRN/algebra/CPolynomials/cpoly_double_ind.con. + +(* UNEXPORTED +End Poly_Prop_Induction. +*) + +(* UNEXPORTED +Hint Resolve poly_linear cpoly_lin: algebra. +*) + +(* UNEXPORTED +Hint Resolve apply_wd cpoly_const_eq: algebra_c. +*) + +(* UNEXPORTED +Hint Resolve _c_apply _x_apply inv_apply plus_apply minus_apply mult_apply + nexp_apply: algebra. +*) + +(* UNEXPORTED +Hint Resolve one_apply _c_zero _c_one _c_mult: algebra. +*) + +(* UNEXPORTED +Hint Resolve poly_inv_apply: algebra. +*) + +(* UNEXPORTED +Hint Resolve _c_mult_lin: algebra. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CRings.ma b/matita/contribs/CoRN-Decl/algebra/CRings.ma new file mode 100644 index 000000000..4d23037a5 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CRings.ma @@ -0,0 +1,943 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CRings". + +(* $Id: CRings.v,v 1.8 2004/04/23 10:00:53 lcf Exp $ *) + +(*#* printing [*] %\ensuremath\times% #×# *) + +(*#* printing [^] %\ensuremath{\hat{\ }}% #^# *) + +(*#* printing {*} %\ensuremath\times% #×# *) + +(*#* printing {**} %\ensuremath\ast% #∗# *) + +(*#* printing {^} %\ensuremath{\hat{\ }}% #^# *) + +(*#* printing One %\ensuremath{\mathbf1}% #1# *) + +(*#* printing Two %\ensuremath{\mathbf2}% #2# *) + +(*#* printing Three %\ensuremath{\mathbf3}% #3# *) + +(*#* printing Four %\ensuremath{\mathbf4}% #4# *) + +(*#* printing Six %\ensuremath{\mathbf6}% #6# *) + +(*#* printing Eight %\ensuremath{\mathbf8}% #8# *) + +(*#* printing Nine %\ensuremath{\mathbf9}% #9# *) + +(*#* printing Twelve %\ensuremath{\mathbf{12}}% #12# *) + +(*#* printing Sixteen %\ensuremath{\mathbf{16}}% #16# *) + +(*#* printing Eighteen %\ensuremath{\mathbf{18}}% #18# *) + +(*#* printing TwentyFour %\ensuremath{\mathbf{24}}% #24# *) + +(*#* printing FortyEight %\ensuremath{\mathbf{48}}% #48# *) + +(* INCLUDE +CSums +*) + +(* UNEXPORTED +Transparent sym_eq. +*) + +(* UNEXPORTED +Transparent f_equal. +*) + +(* Begin_SpecReals *) + +(* Constructive RINGS *) + +(*#* * Rings +We actually define commutative rings with identity. +** Definition of the notion of Ring +*) + +inline cic:/CoRN/algebra/CRings/distributive.con. + +(* UNEXPORTED +Implicit Arguments distributive [S]. +*) + +inline cic:/CoRN/algebra/CRings/is_CRing.ind. + +inline cic:/CoRN/algebra/CRings/CRing.ind. + +inline cic:/CoRN/algebra/CRings/cr_plus.con. + +inline cic:/CoRN/algebra/CRings/cr_inv.con. + +inline cic:/CoRN/algebra/CRings/cr_minus.con. + +(* End_SpecReals *) + +(* Begin_SpecReals *) + +(*#* +%\begin{nameconvention}% +In the names of lemmas, we will denote [One] with [one], +and [[*]] with [mult]. +%\end{nameconvention}% +*) + +(* UNEXPORTED +Implicit Arguments cr_mult [c]. +*) + +(* UNEXPORTED +Section CRing_axioms. +*) + +(*#* +** Ring axioms +%\begin{convention}% Let [R] be a ring. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CRings/R.var. + +inline cic:/CoRN/algebra/CRings/CRing_is_CRing.con. + +inline cic:/CoRN/algebra/CRings/mult_assoc.con. + +inline cic:/CoRN/algebra/CRings/mult_commutes.con. + +inline cic:/CoRN/algebra/CRings/mult_mon.con. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CRings/dist.con. + +inline cic:/CoRN/algebra/CRings/ring_non_triv.con. + +inline cic:/CoRN/algebra/CRings/mult_wd.con. + +inline cic:/CoRN/algebra/CRings/mult_wdl.con. + +inline cic:/CoRN/algebra/CRings/mult_wdr.con. + +(* Begin_SpecReals *) + +(* UNEXPORTED +End CRing_axioms. +*) + +(* UNEXPORTED +Section Ring_constructions. +*) + +(*#* +** Ring constructions +%\begin{convention}% +Let [R] be a ring. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CRings/R.var. + +(*#* +The multiplicative monoid of a ring is defined as follows. +*) + +inline cic:/CoRN/algebra/CRings/Build_multCMonoid.con. + +(* UNEXPORTED +End Ring_constructions. +*) + +(* End_SpecReals *) + +(* UNEXPORTED +Section Ring_unfolded. +*) + +(*#* +** Ring unfolded +%\begin{convention}% Let [R] be a ring. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CRings/R.var. + +(* begin hide *) + +inline cic:/CoRN/algebra/CRings/mmR.con. + +(* end hide *) + +inline cic:/CoRN/algebra/CRings/mult_assoc_unfolded.con. + +inline cic:/CoRN/algebra/CRings/mult_commut_unfolded.con. + +(* UNEXPORTED +Hint Resolve mult_commut_unfolded: algebra. +*) + +inline cic:/CoRN/algebra/CRings/mult_one.con. + +inline cic:/CoRN/algebra/CRings/one_mult.con. + +inline cic:/CoRN/algebra/CRings/ring_dist_unfolded.con. + +(* UNEXPORTED +Hint Resolve ring_dist_unfolded: algebra. +*) + +inline cic:/CoRN/algebra/CRings/ring_distl_unfolded.con. + +(* UNEXPORTED +End Ring_unfolded. +*) + +(* UNEXPORTED +Hint Resolve mult_assoc_unfolded: algebra. +*) + +(* UNEXPORTED +Hint Resolve ring_non_triv mult_one one_mult mult_commut_unfolded: algebra. +*) + +(* UNEXPORTED +Hint Resolve ring_dist_unfolded ring_distl_unfolded: algebra. +*) + +(* UNEXPORTED +Section Ring_basics. +*) + +(*#* +** Ring basics +%\begin{convention}% Let [R] be a ring. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CRings/R.var. + +inline cic:/CoRN/algebra/CRings/one_ap_zero.con. + +inline cic:/CoRN/algebra/CRings/is_zero_rht.con. + +inline cic:/CoRN/algebra/CRings/is_zero_lft.con. + +(* UNEXPORTED +Implicit Arguments is_zero_rht [S]. +*) + +(* UNEXPORTED +Implicit Arguments is_zero_lft [S]. +*) + +inline cic:/CoRN/algebra/CRings/cring_mult_zero.con. + +(* UNEXPORTED +Hint Resolve cring_mult_zero: algebra. +*) + +inline cic:/CoRN/algebra/CRings/x_mult_zero.con. + +inline cic:/CoRN/algebra/CRings/cring_mult_zero_op.con. + +(* UNEXPORTED +Hint Resolve cring_mult_zero_op: algebra. +*) + +inline cic:/CoRN/algebra/CRings/cring_inv_mult_lft.con. + +(* UNEXPORTED +Hint Resolve cring_inv_mult_lft: algebra. +*) + +inline cic:/CoRN/algebra/CRings/cring_inv_mult_rht.con. + +(* UNEXPORTED +Hint Resolve cring_inv_mult_rht: algebra. +*) + +inline cic:/CoRN/algebra/CRings/cring_mult_ap_zero.con. + +inline cic:/CoRN/algebra/CRings/cring_mult_ap_zero_op.con. + +inline cic:/CoRN/algebra/CRings/inv_mult_invol.con. + +inline cic:/CoRN/algebra/CRings/ring_dist_minus.con. + +(* UNEXPORTED +Hint Resolve ring_dist_minus: algebra. +*) + +inline cic:/CoRN/algebra/CRings/ring_distl_minus.con. + +(* UNEXPORTED +Hint Resolve ring_distl_minus: algebra. +*) + +(* UNEXPORTED +End Ring_basics. +*) + +(* UNEXPORTED +Hint Resolve cring_mult_zero cring_mult_zero_op: algebra. +*) + +(* UNEXPORTED +Hint Resolve inv_mult_invol: algebra. +*) + +(* UNEXPORTED +Hint Resolve cring_inv_mult_lft cring_inv_mult_rht: algebra. +*) + +(* UNEXPORTED +Hint Resolve ring_dist_minus: algebra. +*) + +(* UNEXPORTED +Hint Resolve ring_distl_minus: algebra. +*) + +(* Begin_SpecReals *) + +(*#* +** Ring Definitions +Some auxiliary functions and operations over a ring; +especially geared towards CReals. +*) + +(* UNEXPORTED +Section exponentiation. +*) + +(*#* +*** Exponentiation +%\begin{convention}% +Let [R] be a ring. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CRings/R.var. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CRings/nexp.con. + +inline cic:/CoRN/algebra/CRings/nexp_well_def.con. + +inline cic:/CoRN/algebra/CRings/nexp_strong_ext.con. + +inline cic:/CoRN/algebra/CRings/nexp_op.con. + +(* Begin_SpecReals *) + +(* UNEXPORTED +End exponentiation. +*) + +(* End_SpecReals *) + +(* UNEXPORTED +Implicit Arguments nexp_op [R]. +*) + +(* Begin_SpecReals *) + +(* UNEXPORTED +Section nat_injection. +*) + +(*#* +*** The injection of natural numbers into a ring +%\begin{convention}% Let [R] be a ring. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CRings/R.var. + +(*#* +The injection of Coq natural numbers into a ring is called [nring]. +Note that this need not really be an injection; when it is, the ring is said +to have characteristic [0]. +*) + +inline cic:/CoRN/algebra/CRings/nring.con. + +inline cic:/CoRN/algebra/CRings/Char0.con. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CRings/nring_comm_plus.con. + +inline cic:/CoRN/algebra/CRings/nring_comm_mult.con. + +(* Begin_SpecReals *) + +(* UNEXPORTED +End nat_injection. +*) + +(* End_SpecReals *) + +(* UNEXPORTED +Hint Resolve nring_comm_plus nring_comm_mult: algebra. +*) + +(* Begin_SpecReals *) + +(* UNEXPORTED +Implicit Arguments nring [R]. +*) + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CRings/one_plus_one.con. + +inline cic:/CoRN/algebra/CRings/x_plus_x.con. + +(* UNEXPORTED +Hint Resolve one_plus_one x_plus_x: algebra. +*) + +(*#* +In a ring of characteristic zero, [nring] is really an injection. +*) + +inline cic:/CoRN/algebra/CRings/nring_different.con. + +(* UNEXPORTED +Section int_injection. +*) + +(*#* +*** The injection of integers into a ring +%\begin{convention}% +Let [R] be a ring. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CRings/R.var. + +(*#* +The injection of Coq integers into a ring is called [zring]. Again, +this need not really be an injection. + +The first definition is now obsolete, having been replaced by a more efficient +one. It is kept to avoid having to redo all the proofs. +*) + +inline cic:/CoRN/algebra/CRings/zring_old.con. + +inline cic:/CoRN/algebra/CRings/zring_old_zero.con. + +(* UNEXPORTED +Hint Resolve zring_old_zero: algebra. +*) + +inline cic:/CoRN/algebra/CRings/zring_old_diff.con. + +(* UNEXPORTED +Hint Resolve zring_old_diff. +*) + +inline cic:/CoRN/algebra/CRings/zring_old_plus_nat.con. + +(* UNEXPORTED +Hint Resolve zring_old_plus_nat: algebra. +*) + +inline cic:/CoRN/algebra/CRings/zring_old_inv_nat.con. + +(* UNEXPORTED +Hint Resolve zring_old_inv_nat: algebra. +*) + +(* UNEXPORTED +Hint Resolve zring_old_diff: algebra. +*) + +inline cic:/CoRN/algebra/CRings/zring_old_plus.con. + +(* UNEXPORTED +Hint Resolve zring_old_plus: algebra. +*) + +inline cic:/CoRN/algebra/CRings/zring_old_inv.con. + +(* UNEXPORTED +Hint Resolve zring_old_inv: algebra. +*) + +inline cic:/CoRN/algebra/CRings/zring_old_minus.con. + +(* UNEXPORTED +Hint Resolve zring_old_minus: algebra. +*) + +inline cic:/CoRN/algebra/CRings/zring_old_mult.con. + +(* UNEXPORTED +Hint Resolve zring_old_mult: algebra. +*) + +inline cic:/CoRN/algebra/CRings/zring_old_one.con. + +(* UNEXPORTED +Hint Resolve zring_old_one: algebra. +*) + +inline cic:/CoRN/algebra/CRings/zring_old_inv_one.con. + +(*#************** new def of zring. ***********************) + +(*#* The [zring] function can be defined directly. This is done here. +*) + +inline cic:/CoRN/algebra/CRings/pring_aux.con. + +inline cic:/CoRN/algebra/CRings/pring.con. + +inline cic:/CoRN/algebra/CRings/zring.con. + +inline cic:/CoRN/algebra/CRings/pring_aux_lemma.con. + +inline cic:/CoRN/algebra/CRings/double_nring.con. + +(* UNEXPORTED +Hint Resolve pring_aux_lemma double_nring: algebra. +*) + +inline cic:/CoRN/algebra/CRings/pring_aux_nring.con. + +(* UNEXPORTED +Hint Resolve pring_aux_nring: algebra. +*) + +inline cic:/CoRN/algebra/CRings/pring_convert.con. + +(* UNEXPORTED +Hint Resolve pring_convert: algebra. +*) + +inline cic:/CoRN/algebra/CRings/zring_zring_old.con. + +(* UNEXPORTED +Hint Resolve zring_zring_old: algebra. +*) + +inline cic:/CoRN/algebra/CRings/zring_zero.con. + +inline cic:/CoRN/algebra/CRings/zring_diff.con. + +inline cic:/CoRN/algebra/CRings/zring_plus_nat.con. + +inline cic:/CoRN/algebra/CRings/zring_inv_nat.con. + +inline cic:/CoRN/algebra/CRings/zring_plus.con. + +inline cic:/CoRN/algebra/CRings/zring_inv.con. + +inline cic:/CoRN/algebra/CRings/zring_minus.con. + +inline cic:/CoRN/algebra/CRings/zring_mult.con. + +inline cic:/CoRN/algebra/CRings/zring_one.con. + +inline cic:/CoRN/algebra/CRings/zring_inv_one.con. + +(* UNEXPORTED +End int_injection. +*) + +(* UNEXPORTED +Implicit Arguments zring [R]. +*) + +(* UNEXPORTED +Hint Resolve pring_convert zring_zero zring_diff zring_plus_nat zring_inv_nat + zring_plus zring_inv zring_minus zring_mult zring_one zring_inv_one: + algebra. +*) + +(* UNEXPORTED +Section Ring_sums. +*) + +(*#* +** Ring sums +%\begin{convention}% Let [R] be a ring. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CRings/R.var. + +(*#* +*** Infinite Ring sums +*) + +(* UNEXPORTED +Section infinite_ring_sums. +*) + +inline cic:/CoRN/algebra/CRings/Sum_upto.con. + +inline cic:/CoRN/algebra/CRings/sum_upto_O.con. + +inline cic:/CoRN/algebra/CRings/Sum_from_upto.con. + +(*#* +Here's an alternative def of [Sum_from_upto], with a lemma that +it's equivalent to the original. +*) + +inline cic:/CoRN/algebra/CRings/seq_from.con. + +inline cic:/CoRN/algebra/CRings/Sum_from_upto_alt.con. + +(* UNEXPORTED +End infinite_ring_sums. +*) + +(* UNEXPORTED +Section ring_sums_over_lists. +*) + +(*#* *** Ring Sums over Lists +*) + +inline cic:/CoRN/algebra/CRings/RList_Mem.con. + +inline cic:/CoRN/algebra/CRings/List_Sum_upto.con. + +inline cic:/CoRN/algebra/CRings/list_sum_upto_O.con. + +inline cic:/CoRN/algebra/CRings/List_Sum_from_upto.con. + +(* UNEXPORTED +End ring_sums_over_lists. +*) + +(* UNEXPORTED +End Ring_sums. +*) + +(*#* +** Distribution properties +%\begin{convention}% +Let [R] be a ring. +%\end{convention}% +*) + +(* UNEXPORTED +Section Dist_properties. +*) + +inline cic:/CoRN/algebra/CRings/R.var. + +inline cic:/CoRN/algebra/CRings/dist_1b.con. + +(* UNEXPORTED +Hint Resolve dist_1b: algebra. +*) + +inline cic:/CoRN/algebra/CRings/dist_2a.con. + +(* UNEXPORTED +Hint Resolve dist_2a: algebra. +*) + +inline cic:/CoRN/algebra/CRings/dist_2b.con. + +(* UNEXPORTED +Hint Resolve dist_2b: algebra. +*) + +inline cic:/CoRN/algebra/CRings/mult_distr_sum0_lft.con. + +(* UNEXPORTED +Hint Resolve mult_distr_sum0_lft. +*) + +inline cic:/CoRN/algebra/CRings/mult_distr_sum_lft.con. + +(* UNEXPORTED +Hint Resolve mult_distr_sum_lft: algebra. +*) + +inline cic:/CoRN/algebra/CRings/mult_distr_sum_rht.con. + +inline cic:/CoRN/algebra/CRings/sumx_const.con. + +(* UNEXPORTED +End Dist_properties. +*) + +(* UNEXPORTED +Hint Resolve dist_1b dist_2a dist_2b mult_distr_sum_lft mult_distr_sum_rht + sumx_const: algebra. +*) + +(*#* +** Properties of exponentiation (with the exponent in [nat]) +%\begin{convention}% +Let [R] be a ring. +%\end{convention}% +*) + +(* UNEXPORTED +Section NExp_properties. +*) + +inline cic:/CoRN/algebra/CRings/R.var. + +inline cic:/CoRN/algebra/CRings/nexp_wd.con. + +inline cic:/CoRN/algebra/CRings/nexp_strext.con. + +inline cic:/CoRN/algebra/CRings/nexp_Sn.con. + +(* UNEXPORTED +Hint Resolve nexp_wd nexp_Sn: algebra. +*) + +inline cic:/CoRN/algebra/CRings/nexp_plus.con. + +(* UNEXPORTED +Hint Resolve nexp_plus: algebra. +*) + +inline cic:/CoRN/algebra/CRings/one_nexp.con. + +(* UNEXPORTED +Hint Resolve one_nexp: algebra. +*) + +inline cic:/CoRN/algebra/CRings/mult_nexp.con. + +(* UNEXPORTED +Hint Resolve mult_nexp: algebra. +*) + +inline cic:/CoRN/algebra/CRings/nexp_mult.con. + +(* UNEXPORTED +Hint Resolve nexp_mult: algebra. +*) + +inline cic:/CoRN/algebra/CRings/zero_nexp.con. + +(* UNEXPORTED +Hint Resolve zero_nexp: algebra. +*) + +inline cic:/CoRN/algebra/CRings/inv_nexp_even.con. + +(* UNEXPORTED +Hint Resolve inv_nexp_even: algebra. +*) + +inline cic:/CoRN/algebra/CRings/inv_nexp_two.con. + +(* UNEXPORTED +Hint Resolve inv_nexp_two: algebra. +*) + +inline cic:/CoRN/algebra/CRings/inv_nexp_odd.con. + +(* UNEXPORTED +Hint Resolve inv_nexp_odd: algebra. +*) + +inline cic:/CoRN/algebra/CRings/nexp_one.con. + +(* UNEXPORTED +Hint Resolve nexp_one: algebra. +*) + +inline cic:/CoRN/algebra/CRings/nexp_two.con. + +(* UNEXPORTED +Hint Resolve nexp_two: algebra. +*) + +inline cic:/CoRN/algebra/CRings/inv_one_even_nexp.con. + +(* UNEXPORTED +Hint Resolve inv_one_even_nexp: algebra. +*) + +inline cic:/CoRN/algebra/CRings/inv_one_odd_nexp.con. + +(* UNEXPORTED +Hint Resolve inv_one_odd_nexp: algebra. +*) + +inline cic:/CoRN/algebra/CRings/square_plus.con. + +inline cic:/CoRN/algebra/CRings/square_minus.con. + +inline cic:/CoRN/algebra/CRings/nexp_funny.con. + +(* UNEXPORTED +Hint Resolve nexp_funny: algebra. +*) + +inline cic:/CoRN/algebra/CRings/nexp_funny'.con. + +(* UNEXPORTED +Hint Resolve nexp_funny': algebra. +*) + +(* UNEXPORTED +End NExp_properties. +*) + +(* UNEXPORTED +Hint Resolve nexp_wd nexp_Sn nexp_plus one_nexp mult_nexp nexp_mult zero_nexp + inv_nexp_even inv_nexp_two inv_nexp_odd nexp_one nexp_two nexp_funny + inv_one_even_nexp inv_one_odd_nexp nexp_funny' one_nexp square_plus + square_minus: algebra. +*) + +(* UNEXPORTED +Section CRing_Ops. +*) + +(*#* +** Functional Operations + +Now for partial functions. + +%\begin{convention}% +Let [R] be a ring and let [F,G:(PartFunct R)] with predicates +respectively [P] and [Q]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CRings/R.var. + +inline cic:/CoRN/algebra/CRings/F.var. + +inline cic:/CoRN/algebra/CRings/G.var. + +(* begin hide *) + +inline cic:/CoRN/algebra/CRings/P.con. + +inline cic:/CoRN/algebra/CRings/Q.con. + +(* end hide *) + +(* UNEXPORTED +Section Part_Function_Mult. +*) + +inline cic:/CoRN/algebra/CRings/part_function_mult_strext.con. + +inline cic:/CoRN/algebra/CRings/Fmult.con. + +(* UNEXPORTED +End Part_Function_Mult. +*) + +(* UNEXPORTED +Section Part_Function_Nth_Power. +*) + +inline cic:/CoRN/algebra/CRings/n.var. + +inline cic:/CoRN/algebra/CRings/part_function_nth_strext.con. + +inline cic:/CoRN/algebra/CRings/Fnth.con. + +(* UNEXPORTED +End Part_Function_Nth_Power. +*) + +(*#* +%\begin{convention}% Let [R':R->CProp]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CRings/R'.var. + +inline cic:/CoRN/algebra/CRings/included_FMult.con. + +inline cic:/CoRN/algebra/CRings/included_FMult'.con. + +inline cic:/CoRN/algebra/CRings/included_FMult''.con. + +inline cic:/CoRN/algebra/CRings/n.var. + +inline cic:/CoRN/algebra/CRings/included_FNth.con. + +inline cic:/CoRN/algebra/CRings/included_FNth'.con. + +(* UNEXPORTED +End CRing_Ops. +*) + +inline cic:/CoRN/algebra/CRings/Fscalmult.con. + +(* UNEXPORTED +Implicit Arguments Fmult [R]. +*) + +(* UNEXPORTED +Implicit Arguments Fscalmult [R]. +*) + +(* UNEXPORTED +Implicit Arguments Fnth [R]. +*) + +(* UNEXPORTED +Section ScalarMultiplication. +*) + +inline cic:/CoRN/algebra/CRings/R.var. + +inline cic:/CoRN/algebra/CRings/F.var. + +(* begin hide *) + +inline cic:/CoRN/algebra/CRings/P.con. + +(* end hide *) + +inline cic:/CoRN/algebra/CRings/R'.var. + +inline cic:/CoRN/algebra/CRings/included_FScalMult.con. + +inline cic:/CoRN/algebra/CRings/included_FScalMult'.con. + +(* UNEXPORTED +End ScalarMultiplication. +*) + +(* UNEXPORTED +Hint Resolve included_FMult included_FScalMult included_FNth : included. +*) + +(* UNEXPORTED +Hint Immediate included_FMult' included_FMult'' included_FScalMult' + included_FNth' : included. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CSemiGroups.ma b/matita/contribs/CoRN-Decl/algebra/CSemiGroups.ma new file mode 100644 index 000000000..1952e7ded --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CSemiGroups.ma @@ -0,0 +1,189 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CSemiGroups". + +(* $Id: CSemiGroups.v,v 1.8 2004/04/22 14:49:43 lcf Exp $ *) + +(*#* printing [+] %\ensuremath+% #+# *) + +(*#* printing {+} %\ensuremath+% #+# *) + +(* INCLUDE +CSetoidInc +*) + +(* Begin_SpecReals *) + +(*#* *Semigroups + +**Definition of the notion of semigroup +*) + +inline cic:/CoRN/algebra/CSemiGroups/is_CSemiGroup.con. + +inline cic:/CoRN/algebra/CSemiGroups/CSemiGroup.ind. + +(*#* +%\begin{nameconvention}% +In the %{\em %names%}% of lemmas, we will denote [[+]] with [plus]. +%\end{nameconvention}% +*) + +(* UNEXPORTED +Implicit Arguments csg_op [c]. +*) + +(* End_SpecReals *) + +(*#* **Semigroup axioms +The axiomatic properties of a semi group. + +%\begin{convention}% Let [G] be a semi-group. +%\end{convention}% +*) + +(* UNEXPORTED +Section CSemiGroup_axioms. +*) + +inline cic:/CoRN/algebra/CSemiGroups/G.var. + +inline cic:/CoRN/algebra/CSemiGroups/CSemiGroup_is_CSemiGroup.con. + +inline cic:/CoRN/algebra/CSemiGroups/plus_assoc.con. + +(* UNEXPORTED +End CSemiGroup_axioms. +*) + +(* Begin_SpecReals *) + +(*#* **Semigroup basics + +%\begin{convention}% +Let [G] be a semi-group. +%\end{convention}% +*) + +(* UNEXPORTED +Section CSemiGroup_basics. +*) + +inline cic:/CoRN/algebra/CSemiGroups/G.var. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CSemiGroups/plus_assoc_unfolded.con. + +(* UNEXPORTED +End CSemiGroup_basics. +*) + +(* End_SpecReals *) + +(* UNEXPORTED +Hint Resolve plus_assoc_unfolded: algebra. +*) + +(*#* **Functional operations +We can also define a similar addition operator, which will be denoted by [{+}], on partial functions. + +%\begin{convention}% Whenever possible, we will denote the functional construction corresponding to an algebraic operation by the same symbol enclosed in curly braces. +%\end{convention}% + +At this stage, we will always consider automorphisms; we %{\em %could%}% treat this in a more general setting, but we feel that it wouldn't really be a useful effort. + +%\begin{convention}% Let [G:CSemiGroup] and [F,F':(PartFunct G)] and denote by [P] and [Q], respectively, the predicates characterizing their domains. +%\end{convention}% +*) + +(* UNEXPORTED +Section Part_Function_Plus. +*) + +inline cic:/CoRN/algebra/CSemiGroups/G.var. + +inline cic:/CoRN/algebra/CSemiGroups/F.var. + +inline cic:/CoRN/algebra/CSemiGroups/F'.var. + +(* begin hide *) + +inline cic:/CoRN/algebra/CSemiGroups/P.con. + +inline cic:/CoRN/algebra/CSemiGroups/Q.con. + +(* end hide *) + +inline cic:/CoRN/algebra/CSemiGroups/part_function_plus_strext.con. + +inline cic:/CoRN/algebra/CSemiGroups/Fplus.con. + +(*#* +%\begin{convention}% Let [R:G->CProp]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CSemiGroups/R.var. + +inline cic:/CoRN/algebra/CSemiGroups/included_FPlus.con. + +inline cic:/CoRN/algebra/CSemiGroups/included_FPlus'.con. + +inline cic:/CoRN/algebra/CSemiGroups/included_FPlus''.con. + +(* UNEXPORTED +End Part_Function_Plus. +*) + +(* UNEXPORTED +Implicit Arguments Fplus [G]. +*) + +(* UNEXPORTED +Hint Resolve included_FPlus : included. +*) + +(* UNEXPORTED +Hint Immediate included_FPlus' included_FPlus'' : included. +*) + +(*#* **Subsemigroups +%\begin{convention}% +Let [csg] a semi-group and [P] a non-empty +predicate on the semi-group which is preserved by [[+]]. +%\end{convention}% +*) + +(* UNEXPORTED +Section SubCSemiGroups. +*) + +inline cic:/CoRN/algebra/CSemiGroups/csg.var. + +inline cic:/CoRN/algebra/CSemiGroups/P.var. + +inline cic:/CoRN/algebra/CSemiGroups/op_pres_P.var. + +inline cic:/CoRN/algebra/CSemiGroups/subcrr.con. + +inline cic:/CoRN/algebra/CSemiGroups/Build_SubCSemiGroup.con. + +(* UNEXPORTED +End SubCSemiGroups. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CSetoidFun.ma b/matita/contribs/CoRN-Decl/algebra/CSetoidFun.ma new file mode 100644 index 000000000..d183c70e8 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CSetoidFun.ma @@ -0,0 +1,579 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CSetoidFun". + +(* $Id: CSetoidFun.v,v 1.10 2004/04/23 10:00:53 lcf Exp $ *) + +(* INCLUDE +CSetoids +*) + +(* UNEXPORTED +Section unary_function_composition. +*) + +(*#* ** Composition of Setoid functions + +Let [S1], [S2] and [S3] be setoids, [f] a +setoid function from [S1] to [S2], and [g] from [S2] +to [S3] in the following definition of composition. *) + +inline cic:/CoRN/algebra/CSetoidFun/S1.var. + +inline cic:/CoRN/algebra/CSetoidFun/S2.var. + +inline cic:/CoRN/algebra/CSetoidFun/S3.var. + +inline cic:/CoRN/algebra/CSetoidFun/f.var. + +inline cic:/CoRN/algebra/CSetoidFun/g.var. + +inline cic:/CoRN/algebra/CSetoidFun/compose_CSetoid_fun.con. + +(* UNEXPORTED +End unary_function_composition. +*) + +(* UNEXPORTED +Section unary_and_binary_function_composition. +*) + +inline cic:/CoRN/algebra/CSetoidFun/compose_CSetoid_bin_un_fun.con. + +inline cic:/CoRN/algebra/CSetoidFun/compose_CSetoid_bin_fun.con. + +inline cic:/CoRN/algebra/CSetoidFun/compose_CSetoid_un_bin_fun.con. + +(* UNEXPORTED +End unary_and_binary_function_composition. +*) + +(*#* ***Projections +*) + +(* UNEXPORTED +Section function_projection. +*) + +inline cic:/CoRN/algebra/CSetoidFun/proj_bin_fun.con. + +inline cic:/CoRN/algebra/CSetoidFun/projected_bin_fun.con. + +(* UNEXPORTED +End function_projection. +*) + +(* UNEXPORTED +Section BinProj. +*) + +inline cic:/CoRN/algebra/CSetoidFun/S.var. + +inline cic:/CoRN/algebra/CSetoidFun/binproj1.con. + +inline cic:/CoRN/algebra/CSetoidFun/binproj1_strext.con. + +inline cic:/CoRN/algebra/CSetoidFun/cs_binproj1.con. + +(* UNEXPORTED +End BinProj. +*) + +(*#* **Combining operations +%\begin{convention}% Let [S1], [S2] and [S3] be setoids. +%\end{convention}% +*) + +(* UNEXPORTED +Section CombiningOperations. +*) + +inline cic:/CoRN/algebra/CSetoidFun/S1.var. + +inline cic:/CoRN/algebra/CSetoidFun/S2.var. + +inline cic:/CoRN/algebra/CSetoidFun/S3.var. + +(*#* +In the following definition, we assume [f] is a setoid function from +[S1] to [S2], and [op] is an unary operation on [S2]. +Then [opOnFun] is the composition [op] after [f]. +*) + +(* UNEXPORTED +Section CombiningUnaryOperations. +*) + +inline cic:/CoRN/algebra/CSetoidFun/f.var. + +inline cic:/CoRN/algebra/CSetoidFun/op.var. + +inline cic:/CoRN/algebra/CSetoidFun/opOnFun.con. + +(* UNEXPORTED +End CombiningUnaryOperations. +*) + +(* UNEXPORTED +End CombiningOperations. +*) + +(*#* **Partial Functions + +In this section we define a concept of partial function for an +arbitrary setoid. Essentially, a partial function is what would be +expected---a predicate on the setoid in question and a total function +from the set of points satisfying that predicate to the setoid. There +is one important limitations to this approach: first, the record we +obtain has type [Type], meaning that we can't use, for instance, +elimination of existential quantifiers. + +Furthermore, for reasons we will explain ahead, partial functions will +not be defined via the [CSetoid_fun] record, but the whole structure +will be incorporated in a new record. + +Finally, notice that to be completely general the domains of the +functions have to be characterized by a [CProp]-valued predicate; +otherwise, the use you can make of a function will be %\emph{%##a +priori##%}% restricted at the moment it is defined. + +Before we state our definitions we need to do some work on domains. +*) + +(* UNEXPORTED +Section SubSets_of_G. +*) + +(*#* ***Subsets of Setoids + +Subsets of a setoid will be identified with predicates from the +carrier set of the setoid into [CProp]. At this stage, we do not make +any assumptions about these predicates. + +We will begin by defining elementary operations on predicates, along +with their basic properties. In particular, we will work with well +defined predicates, so we will prove that these operations preserve +welldefinedness. + +%\begin{convention}% Let [S:CSetoid] and [P,Q:S->CProp]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CSetoidFun/S.var. + +(* UNEXPORTED +Section Conjunction. +*) + +inline cic:/CoRN/algebra/CSetoidFun/P.var. + +inline cic:/CoRN/algebra/CSetoidFun/Q.var. + +inline cic:/CoRN/algebra/CSetoidFun/conjP.con. + +inline cic:/CoRN/algebra/CSetoidFun/prj1.con. + +inline cic:/CoRN/algebra/CSetoidFun/prj2.con. + +inline cic:/CoRN/algebra/CSetoidFun/conj_wd.con. + +(* UNEXPORTED +End Conjunction. +*) + +(* UNEXPORTED +Section Disjunction. +*) + +inline cic:/CoRN/algebra/CSetoidFun/P.var. + +inline cic:/CoRN/algebra/CSetoidFun/Q.var. + +(*#* +Although at this stage we never use it, for completeness's sake we also treat disjunction (corresponding to union of subsets). +*) + +inline cic:/CoRN/algebra/CSetoidFun/disj.con. + +inline cic:/CoRN/algebra/CSetoidFun/inj1.con. + +inline cic:/CoRN/algebra/CSetoidFun/inj2.con. + +inline cic:/CoRN/algebra/CSetoidFun/disj_wd.con. + +(* UNEXPORTED +End Disjunction. +*) + +(* UNEXPORTED +Section Extension. +*) + +(*#* +The next definition is a bit tricky, and is useful for choosing among the elements that satisfy a predicate [P] those that also satisfy [R] in the case where [R] is only defined for elements satisfying [P]---consider [R] to be a condition on the image of an object via a function with domain [P]. We chose to call this operation [extension]. +*) + +inline cic:/CoRN/algebra/CSetoidFun/P.var. + +inline cic:/CoRN/algebra/CSetoidFun/R.var. + +inline cic:/CoRN/algebra/CSetoidFun/extend.con. + +inline cic:/CoRN/algebra/CSetoidFun/ext1.con. + +inline cic:/CoRN/algebra/CSetoidFun/ext2_a.con. + +inline cic:/CoRN/algebra/CSetoidFun/ext2.con. + +inline cic:/CoRN/algebra/CSetoidFun/extension_wd.con. + +(* UNEXPORTED +End Extension. +*) + +(* UNEXPORTED +End SubSets_of_G. +*) + +(* UNEXPORTED +Implicit Arguments disj [S]. +*) + +(* UNEXPORTED +Implicit Arguments extend [S]. +*) + +(* UNEXPORTED +Implicit Arguments ext1 [S P R x]. +*) + +(* UNEXPORTED +Implicit Arguments ext2 [S P R x]. +*) + +(*#* ***Operations + +We are now ready to define the concept of partial function between arbitrary setoids. +*) + +inline cic:/CoRN/algebra/CSetoidFun/BinPartFunct.ind. + +(* UNEXPORTED +Implicit Arguments bpfpfun [S1 S2]. +*) + +(*#* +The next lemma states that every partial function is well defined. +*) + +inline cic:/CoRN/algebra/CSetoidFun/bpfwdef.con. + +(*#* Similar for automorphisms. *) + +inline cic:/CoRN/algebra/CSetoidFun/PartFunct.ind. + +(* UNEXPORTED +Implicit Arguments pfpfun [S]. +*) + +(*#* +The next lemma states that every partial function is well defined. +*) + +inline cic:/CoRN/algebra/CSetoidFun/pfwdef.con. + +(*#* +A few characteristics of this definition should be explained: + - The domain of the partial function is characterized by a predicate +that is required to be well defined but not strongly extensional. The +motivation for this choice comes from two facts: first, one very +important subset of real numbers is the compact interval +[[a,b]]---characterized by the predicate [ fun x : IR => a [<=] x /\ x +[<=] b], which is not strongly extensional; on the other hand, if we +can apply a function to an element [s] of a setoid [S] it seems +reasonable (and at some point we do have to do it) to apply that same +function to any element [s'] which is equal to [s] from the point of +view of the setoid equality. + - The last two conditions state that [pfpfun] is really a subsetoid +function. The reason why we do not write it that way is the +following: when applying a partial function [f] to an element [s] of +[S] we also need a proof object [H]; with this definition the object +we get is [f(s,H)], where the proof is kept separate from the object. +Using subsetoid notation, we would get $f(\langle +s,H\rangle)$#f(⟨s,H⟩)#; from this we need to apply two +projections to get either the original object or the proof, and we +need to apply an extra constructor to get $f(\langle +s,H\rangle)$#f(⟨s,H⟩)# from [s] and [H]. This amounts +to spending more resources when actually working with these objects. + - This record has type [Type], which is very unfortunate, because it +means in particular that we cannot use the well behaved set +existential quantification over partial functions; however, later on +we will manage to avoid this problem in a way that also justifies that +we don't really need to use that kind of quantification. Another +approach to this definition that completely avoid this complication +would be to make [PartFunct] a dependent type, receiving the predicate +as an argument. This does work in that it allows us to give +[PartFunct] type [Set] and do some useful stuff with it; however, we +are not able to define something as simple as an operator that gets a +function and returns its domain (because of the restrictions in the +type elimination rules). This sounds very unnatural, and soon gets us +into strange problems that yield very unlikely definitions, which is +why we chose to altogether do away with this approach. + +%\begin{convention}% All partial functions will henceforth be denoted by capital letters. +%\end{convention}% + +We now present some methods for defining partial functions. +*) + +(* UNEXPORTED +Hint Resolve CI: core. +*) + +(* UNEXPORTED +Section CSetoid_Ops. +*) + +inline cic:/CoRN/algebra/CSetoidFun/S.var. + +(*#* +To begin with, we want to be able to ``see'' each total function as a partial function. +*) + +inline cic:/CoRN/algebra/CSetoidFun/total_eq_part.con. + +(* UNEXPORTED +Section Part_Function_Const. +*) + +(*#* +In any setoid we can also define constant functions (one for each element of the setoid) and an identity function: + +%\begin{convention}% Let [c:S]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CSetoidFun/c.var. + +inline cic:/CoRN/algebra/CSetoidFun/Fconst.con. + +(* UNEXPORTED +End Part_Function_Const. +*) + +(* UNEXPORTED +Section Part_Function_Id. +*) + +inline cic:/CoRN/algebra/CSetoidFun/Fid.con. + +(* UNEXPORTED +End Part_Function_Id. +*) + +(*#* +(These happen to be always total functions, but that is more or less obvious, as we have no information on the setoid; however, we will be able to define partial functions just applying other operators to these ones.) + +If we have two setoid functions [F] and [G] we can always compose them. The domain of our new function will be the set of points [s] in the domain of [F] for which [F(s)] is in the domain of [G]#. #%\footnote{%Notice that the use of extension here is essential.%}.% The inversion in the order of the variables is done to maintain uniformity with the usual mathematical notation. + +%\begin{convention}% Let [G,F:(PartFunct S)] and denote by [Q] and [P], respectively, the predicates characterizing their domains. +%\end{convention}% +*) + +(* UNEXPORTED +Section Part_Function_Composition. +*) + +inline cic:/CoRN/algebra/CSetoidFun/G.var. + +inline cic:/CoRN/algebra/CSetoidFun/F.var. + +(* begin hide *) + +inline cic:/CoRN/algebra/CSetoidFun/P.con. + +inline cic:/CoRN/algebra/CSetoidFun/Q.con. + +(* end hide *) + +inline cic:/CoRN/algebra/CSetoidFun/R.con. + +inline cic:/CoRN/algebra/CSetoidFun/part_function_comp_strext.con. + +inline cic:/CoRN/algebra/CSetoidFun/part_function_comp_dom_wd.con. + +inline cic:/CoRN/algebra/CSetoidFun/Fcomp.con. + +(* UNEXPORTED +End Part_Function_Composition. +*) + +(* UNEXPORTED +End CSetoid_Ops. +*) + +(*#* +%\begin{convention}% Let [F:(BinPartFunct S1 S2)] and [G:(PartFunct S2 S3)], and denote by [Q] and [P], respectively, the predicates characterizing their domains. +%\end{convention}% +*) + +(* UNEXPORTED +Section BinPart_Function_Composition. +*) + +inline cic:/CoRN/algebra/CSetoidFun/S1.var. + +inline cic:/CoRN/algebra/CSetoidFun/S2.var. + +inline cic:/CoRN/algebra/CSetoidFun/S3.var. + +inline cic:/CoRN/algebra/CSetoidFun/G.var. + +inline cic:/CoRN/algebra/CSetoidFun/F.var. + +(* begin hide *) + +inline cic:/CoRN/algebra/CSetoidFun/P.con. + +inline cic:/CoRN/algebra/CSetoidFun/Q.con. + +(* end hide *) + +inline cic:/CoRN/algebra/CSetoidFun/R.con. + +inline cic:/CoRN/algebra/CSetoidFun/bin_part_function_comp_strext.con. + +inline cic:/CoRN/algebra/CSetoidFun/bin_part_function_comp_dom_wd.con. + +inline cic:/CoRN/algebra/CSetoidFun/BinFcomp.con. + +(* UNEXPORTED +End BinPart_Function_Composition. +*) + +(* Different tokens for compatibility with coqdoc *) + +(* UNEXPORTED +Implicit Arguments Fconst [S]. +*) + +(* UNEXPORTED +Implicit Arguments Fcomp [S]. +*) + +(* UNEXPORTED +Hint Resolve pfwdef bpfwdef: algebra. +*) + +(* UNEXPORTED +Section bijections. +*) + +(*#* **Bijections *) + +inline cic:/CoRN/algebra/CSetoidFun/injective.con. + +inline cic:/CoRN/algebra/CSetoidFun/injective_weak.con. + +inline cic:/CoRN/algebra/CSetoidFun/surjective.con. + +(* UNEXPORTED +Implicit Arguments injective [A B]. +*) + +(* UNEXPORTED +Implicit Arguments injective_weak [A B]. +*) + +(* UNEXPORTED +Implicit Arguments surjective [A B]. +*) + +inline cic:/CoRN/algebra/CSetoidFun/injective_imp_injective_weak.con. + +inline cic:/CoRN/algebra/CSetoidFun/bijective.con. + +(* UNEXPORTED +Implicit Arguments bijective [A B]. +*) + +inline cic:/CoRN/algebra/CSetoidFun/id_is_bij.con. + +inline cic:/CoRN/algebra/CSetoidFun/comp_resp_bij.con. + +inline cic:/CoRN/algebra/CSetoidFun/inv.con. + +(* UNEXPORTED +Implicit Arguments inv [A B]. +*) + +inline cic:/CoRN/algebra/CSetoidFun/invfun.con. + +(* UNEXPORTED +Implicit Arguments invfun [A B]. +*) + +inline cic:/CoRN/algebra/CSetoidFun/inv1.con. + +inline cic:/CoRN/algebra/CSetoidFun/inv2.con. + +inline cic:/CoRN/algebra/CSetoidFun/inv_strext.con. + +inline cic:/CoRN/algebra/CSetoidFun/Inv.con. + +(* UNEXPORTED +Implicit Arguments Inv [A B]. +*) + +inline cic:/CoRN/algebra/CSetoidFun/Inv_bij.con. + +(* UNEXPORTED +End bijections. +*) + +(* UNEXPORTED +Implicit Arguments bijective [A B]. +*) + +(* UNEXPORTED +Implicit Arguments injective [A B]. +*) + +(* UNEXPORTED +Implicit Arguments injective_weak [A B]. +*) + +(* UNEXPORTED +Implicit Arguments surjective [A B]. +*) + +(* UNEXPORTED +Implicit Arguments inv [A B]. +*) + +(* UNEXPORTED +Implicit Arguments invfun [A B]. +*) + +(* UNEXPORTED +Implicit Arguments Inv [A B]. +*) + +(* UNEXPORTED +Implicit Arguments conj_wd [S P Q]. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CSetoidInc.ma b/matita/contribs/CoRN-Decl/algebra/CSetoidInc.ma new file mode 100644 index 000000000..899a67f42 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CSetoidInc.ma @@ -0,0 +1,108 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CSetoidInc". + +(* $Id: CSetoidInc.v,v 1.3 2004/04/22 14:49:43 lcf Exp $ *) + +(*#* printing included %\ensuremath{\subseteq}% #⊆# *) + +(* INCLUDE +CSetoidFun +*) + +(* UNEXPORTED +Section inclusion. +*) + +(*#* ** Inclusion + +Let [S] be a setoid, and [P], [Q], [R] be predicates on [S]. *) + +inline cic:/CoRN/algebra/CSetoidInc/S.var. + +inline cic:/CoRN/algebra/CSetoidInc/included.con. + +(* UNEXPORTED +Section Basics. +*) + +inline cic:/CoRN/algebra/CSetoidInc/P.var. + +inline cic:/CoRN/algebra/CSetoidInc/Q.var. + +inline cic:/CoRN/algebra/CSetoidInc/R.var. + +inline cic:/CoRN/algebra/CSetoidInc/included_refl.con. + +inline cic:/CoRN/algebra/CSetoidInc/included_trans.con. + +inline cic:/CoRN/algebra/CSetoidInc/included_conj.con. + +inline cic:/CoRN/algebra/CSetoidInc/included_conj'.con. + +inline cic:/CoRN/algebra/CSetoidInc/included_conj''.con. + +inline cic:/CoRN/algebra/CSetoidInc/included_conj_lft.con. + +inline cic:/CoRN/algebra/CSetoidInc/included_conj_rht.con. + +inline cic:/CoRN/algebra/CSetoidInc/included_extend.con. + +(* UNEXPORTED +End Basics. +*) + +(*#* +%\begin{convention}% Let [I,R:S->CProp] and [F G:(PartFunct S)], and denote +by [P] and [Q], respectively, the domains of [F] and [G]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CSetoidInc/F.var. + +inline cic:/CoRN/algebra/CSetoidInc/G.var. + +(* begin hide *) + +inline cic:/CoRN/algebra/CSetoidInc/P.con. + +inline cic:/CoRN/algebra/CSetoidInc/Q.con. + +(* end hide *) + +inline cic:/CoRN/algebra/CSetoidInc/R.var. + +inline cic:/CoRN/algebra/CSetoidInc/included_FComp.con. + +inline cic:/CoRN/algebra/CSetoidInc/included_FComp'.con. + +(* UNEXPORTED +End inclusion. +*) + +(* UNEXPORTED +Implicit Arguments included [S]. +*) + +(* UNEXPORTED +Hint Resolve included_refl included_FComp : included. +*) + +(* UNEXPORTED +Hint Immediate included_trans included_FComp' : included. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CSetoids.ma b/matita/contribs/CoRN-Decl/algebra/CSetoids.ma new file mode 100644 index 000000000..8d33471fc --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CSetoids.ma @@ -0,0 +1,942 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CSetoids". + +(* $Id.v,v 1.18 2002/11/25 14:43:42 lcf Exp $ *) + +(*#* printing [=] %\ensuremath{\equiv}% #≡# *) + +(*#* printing [~=] %\ensuremath{\mathrel{\not\equiv}}% #≠# *) + +(*#* printing [#] %\ensuremath{\mathrel\#}% *) + +(*#* printing ex_unq %\ensuremath{\exists^1}% #∃1# *) + +(*#* printing [o] %\ensuremath\circ% #⋅# *) + +(*#* printing [-C-] %\ensuremath\diamond% *) + +(* Begin_SpecReals *) + +(*#* *Setoids +Definition of a constructive setoid with apartness, +i.e.%\% a set with an equivalence relation and an apartness relation compatible with it. +*) + +(* INCLUDE +CLogic +*) + +(* INCLUDE +Step +*) + +inline cic:/CoRN/algebra/CSetoids/Relation.con. + +(* End_SpecReals *) + +(* UNEXPORTED +Implicit Arguments Treflexive [A]. +*) + +(* UNEXPORTED +Implicit Arguments Creflexive [A]. +*) + +(* Begin_SpecReals *) + +(* UNEXPORTED +Implicit Arguments Tsymmetric [A]. +*) + +(* UNEXPORTED +Implicit Arguments Csymmetric [A]. +*) + +(* UNEXPORTED +Implicit Arguments Ttransitive [A]. +*) + +(* UNEXPORTED +Implicit Arguments Ctransitive [A]. +*) + +(* begin hide *) + +(* UNEXPORTED +Set Implicit Arguments. +*) + +(* UNEXPORTED +Unset Strict Implicit. +*) + +(* end hide *) + +(*#* **Relations necessary for Setoids +%\begin{convention}% Let [A:Type]. +%\end{convention}% + +Notice that their type depends on the main logical connective. +*) + +(* UNEXPORTED +Section Properties_of_relations. +*) + +inline cic:/CoRN/algebra/CSetoids/A.var. + +inline cic:/CoRN/algebra/CSetoids/irreflexive.con. + +inline cic:/CoRN/algebra/CSetoids/cotransitive.con. + +inline cic:/CoRN/algebra/CSetoids/tight_apart.con. + +inline cic:/CoRN/algebra/CSetoids/antisymmetric.con. + +(* UNEXPORTED +End Properties_of_relations. +*) + +(* begin hide *) + +(* UNEXPORTED +Set Strict Implicit. +*) + +(* UNEXPORTED +Unset Implicit Arguments. +*) + +(* end hide *) + +(*#* **Definition of Setoid + +Apartness, being the main relation, needs to be [CProp]-valued. Equality, +as it is characterized by a negative statement, lives in [Prop]. *) + +inline cic:/CoRN/algebra/CSetoids/is_CSetoid.ind. + +inline cic:/CoRN/algebra/CSetoids/CSetoid.ind. + +(* UNEXPORTED +Implicit Arguments cs_eq [c]. +*) + +(* UNEXPORTED +Implicit Arguments cs_ap [c]. +*) + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/cs_neq.con. + +(* UNEXPORTED +Implicit Arguments cs_neq [S]. +*) + +(*#* +%\begin{nameconvention}% +In the names of lemmas, we refer to [ [=] ] by [eq], [ [~=] ] by +[neq], and [ [#] ] by [ap]. +%\end{nameconvention}% + +** Setoid axioms +We want concrete lemmas that state the axiomatic properties of a setoid. +%\begin{convention}% +Let [S] be a setoid. +%\end{convention}% +*) + +(* Begin_SpecReals *) + +(* UNEXPORTED +Section CSetoid_axioms. +*) + +inline cic:/CoRN/algebra/CSetoids/S.var. + +inline cic:/CoRN/algebra/CSetoids/CSetoid_is_CSetoid.con. + +inline cic:/CoRN/algebra/CSetoids/ap_irreflexive.con. + +inline cic:/CoRN/algebra/CSetoids/ap_symmetric.con. + +inline cic:/CoRN/algebra/CSetoids/ap_cotransitive.con. + +inline cic:/CoRN/algebra/CSetoids/ap_tight.con. + +(* UNEXPORTED +End CSetoid_axioms. +*) + +(* End_SpecReals *) + +(*#* **Setoid basics%\label{section:setoid-basics}% +%\begin{convention}% Let [S] be a setoid. +%\end{convention}% +*) + +(* Begin_SpecReals *) + +(* UNEXPORTED +Section CSetoid_basics. +*) + +inline cic:/CoRN/algebra/CSetoids/S.var. + +(* End_SpecReals *) + +(*#* +In `there exists a unique [a:S] such that %\ldots%#...#', we now mean unique with respect to the setoid equality. We use [ex_unq] to denote unique existence. +*) + +inline cic:/CoRN/algebra/CSetoids/ex_unq.con. + +inline cic:/CoRN/algebra/CSetoids/eq_reflexive.con. + +inline cic:/CoRN/algebra/CSetoids/eq_symmetric.con. + +inline cic:/CoRN/algebra/CSetoids/eq_transitive.con. + +(*#* +%\begin{shortcoming}% +The lemma [eq_reflexive] above is convertible to +[eq_reflexive_unfolded] below. We need the second version too, +because the first cannot be applied when an instance of reflexivity is needed. +(``I have complained bitterly about this.'' RP) +%\end{shortcoming}% + +%\begin{nameconvention}% +If lemma [a] is just an unfolding of lemma [b], the name of [a] is the name +[b] with the suffix ``[_unfolded]''. +%\end{nameconvention}% +*) + +inline cic:/CoRN/algebra/CSetoids/eq_reflexive_unfolded.con. + +inline cic:/CoRN/algebra/CSetoids/eq_symmetric_unfolded.con. + +inline cic:/CoRN/algebra/CSetoids/eq_transitive_unfolded.con. + +inline cic:/CoRN/algebra/CSetoids/eq_wdl.con. + +(* Begin_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/ap_irreflexive_unfolded.con. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/ap_cotransitive_unfolded.con. + +inline cic:/CoRN/algebra/CSetoids/ap_symmetric_unfolded.con. + +(*#* +%\begin{shortcoming}% +We would like to write +[[ +Lemma eq_equiv_not_ap : forall (x y:S), x [=] y Iff ~(x [#] y). +]] +In Coq, however, this lemma cannot be easily applied. +Therefore we have to split the lemma into the following two lemmas [eq_imp_not_ap] and [not_ap_imp_eq]. +%\end{shortcoming}% +*) + +inline cic:/CoRN/algebra/CSetoids/eq_imp_not_ap.con. + +inline cic:/CoRN/algebra/CSetoids/not_ap_imp_eq.con. + +inline cic:/CoRN/algebra/CSetoids/neq_imp_notnot_ap.con. + +inline cic:/CoRN/algebra/CSetoids/notnot_ap_imp_neq.con. + +inline cic:/CoRN/algebra/CSetoids/ap_imp_neq.con. + +inline cic:/CoRN/algebra/CSetoids/not_neq_imp_eq.con. + +inline cic:/CoRN/algebra/CSetoids/eq_imp_not_neq.con. + +(* Begin_SpecReals *) + +(* UNEXPORTED +End CSetoid_basics. +*) + +(* End_SpecReals *) + +(* UNEXPORTED +Section product_csetoid. +*) + +(*#* **The product of setoids *) + +inline cic:/CoRN/algebra/CSetoids/prod_ap.con. + +inline cic:/CoRN/algebra/CSetoids/prod_eq.con. + +inline cic:/CoRN/algebra/CSetoids/prodcsetoid_is_CSetoid.con. + +inline cic:/CoRN/algebra/CSetoids/ProdCSetoid.con. + +(* UNEXPORTED +End product_csetoid. +*) + +(* UNEXPORTED +Implicit Arguments ex_unq [S]. +*) + +(* UNEXPORTED +Hint Resolve eq_reflexive_unfolded: algebra_r. +*) + +(* UNEXPORTED +Hint Resolve eq_symmetric_unfolded: algebra_s. +*) + +(* UNEXPORTED +Declare Left Step eq_wdl. +*) + +(* UNEXPORTED +Declare Right Step eq_transitive_unfolded. +*) + +(* Begin_SpecReals *) + +(*#* **Relations and predicates +Here we define the notions of well-definedness and strong extensionality +on predicates and relations. + +%\begin{convention}% Let [S] be a setoid. +%\end{convention}% + +%\begin{nameconvention}% +- ``well-defined'' is abbreviated to [well_def] (or [wd]). +- ``strongly extensional'' is abbreviated to [strong_ext] (or [strext]). + +%\end{nameconvention}% +*) + +(* UNEXPORTED +Section CSetoid_relations_and_predicates. +*) + +inline cic:/CoRN/algebra/CSetoids/S.var. + +(* End_SpecReals *) + +(*#* ***Predicates + +At this stage, we consider [CProp]- and [Prop]-valued predicates on setoids. + +%\begin{convention}% Let [P] be a predicate on (the carrier of) [S]. +%\end{convention}% +*) + +(* UNEXPORTED +Section CSetoidPredicates. +*) + +inline cic:/CoRN/algebra/CSetoids/P.var. + +inline cic:/CoRN/algebra/CSetoids/pred_strong_ext.con. + +inline cic:/CoRN/algebra/CSetoids/pred_wd.con. + +(* UNEXPORTED +End CSetoidPredicates. +*) + +inline cic:/CoRN/algebra/CSetoids/CSetoid_predicate.ind. + +inline cic:/CoRN/algebra/CSetoids/csp_wd.con. + +(*#* Similar, with [Prop] instead of [CProp]. *) + +(* UNEXPORTED +Section CSetoidPPredicates. +*) + +inline cic:/CoRN/algebra/CSetoids/P.var. + +inline cic:/CoRN/algebra/CSetoids/pred_strong_ext'.con. + +inline cic:/CoRN/algebra/CSetoids/pred_wd'.con. + +(* UNEXPORTED +End CSetoidPPredicates. +*) + +(*#* ***Definition of a setoid predicate *) + +inline cic:/CoRN/algebra/CSetoids/CSetoid_predicate'.ind. + +inline cic:/CoRN/algebra/CSetoids/csp'_wd.con. + +(* Begin_SpecReals *) + +(*#* ***Relations +%\begin{convention}% +Let [R] be a relation on (the carrier of) [S]. +%\end{convention}% *) + +(* UNEXPORTED +Section CsetoidRelations. +*) + +inline cic:/CoRN/algebra/CSetoids/R.var. + +inline cic:/CoRN/algebra/CSetoids/rel_wdr.con. + +inline cic:/CoRN/algebra/CSetoids/rel_wdl.con. + +inline cic:/CoRN/algebra/CSetoids/rel_strext.con. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/rel_strext_lft.con. + +inline cic:/CoRN/algebra/CSetoids/rel_strext_rht.con. + +inline cic:/CoRN/algebra/CSetoids/rel_strext_imp_lftarg.con. + +inline cic:/CoRN/algebra/CSetoids/rel_strext_imp_rhtarg.con. + +inline cic:/CoRN/algebra/CSetoids/rel_strextarg_imp_strext.con. + +(* Begin_SpecReals *) + +(* UNEXPORTED +End CsetoidRelations. +*) + +(*#* ***Definition of a setoid relation +The type of relations over a setoid. *) + +inline cic:/CoRN/algebra/CSetoids/CSetoid_relation.ind. + +(*#* ***[CProp] Relations +%\begin{convention}% +Let [R] be a relation on (the carrier of) [S]. +%\end{convention}% +*) + +(* UNEXPORTED +Section CCsetoidRelations. +*) + +inline cic:/CoRN/algebra/CSetoids/R.var. + +inline cic:/CoRN/algebra/CSetoids/Crel_wdr.con. + +inline cic:/CoRN/algebra/CSetoids/Crel_wdl.con. + +inline cic:/CoRN/algebra/CSetoids/Crel_strext.con. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/Crel_strext_lft.con. + +inline cic:/CoRN/algebra/CSetoids/Crel_strext_rht.con. + +inline cic:/CoRN/algebra/CSetoids/Crel_strext_imp_lftarg.con. + +inline cic:/CoRN/algebra/CSetoids/Crel_strext_imp_rhtarg.con. + +inline cic:/CoRN/algebra/CSetoids/Crel_strextarg_imp_strext.con. + +(* Begin_SpecReals *) + +(* UNEXPORTED +End CCsetoidRelations. +*) + +(*#* ***Definition of a [CProp] setoid relation + +The type of relations over a setoid. *) + +inline cic:/CoRN/algebra/CSetoids/CCSetoid_relation.ind. + +inline cic:/CoRN/algebra/CSetoids/Ccsr_wdr.con. + +inline cic:/CoRN/algebra/CSetoids/Ccsr_wdl.con. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/ap_wdr.con. + +inline cic:/CoRN/algebra/CSetoids/ap_wdl.con. + +inline cic:/CoRN/algebra/CSetoids/ap_wdr_unfolded.con. + +inline cic:/CoRN/algebra/CSetoids/ap_wdl_unfolded.con. + +inline cic:/CoRN/algebra/CSetoids/ap_strext.con. + +inline cic:/CoRN/algebra/CSetoids/predS_well_def.con. + +(* Begin_SpecReals *) + +(* UNEXPORTED +End CSetoid_relations_and_predicates. +*) + +(* UNEXPORTED +Declare Left Step ap_wdl_unfolded. +*) + +(* UNEXPORTED +Declare Right Step ap_wdr_unfolded. +*) + +(* End_SpecReals *) + +(*#* **Functions between setoids +Such functions must preserve the setoid equality +and be strongly extensional w.r.t.%\% the apartness, i.e.%\% +if [f(x,y) [#] f(x1,y1)], then [x [#] x1 + y [#] y1]. +For every arity this has to be defined separately. +%\begin{convention}% +Let [S1], [S2] and [S3] be setoids. +%\end{convention}% + +First we consider unary functions. *) + +(* Begin_SpecReals *) + +(* UNEXPORTED +Section CSetoid_functions. +*) + +inline cic:/CoRN/algebra/CSetoids/S1.var. + +inline cic:/CoRN/algebra/CSetoids/S2.var. + +inline cic:/CoRN/algebra/CSetoids/S3.var. + +(* UNEXPORTED +Section unary_functions. +*) + +(*#* +In the following two definitions, +[f] is a function from (the carrier of) [S1] to +(the carrier of) [S2]. *) + +inline cic:/CoRN/algebra/CSetoids/f.var. + +inline cic:/CoRN/algebra/CSetoids/fun_wd.con. + +inline cic:/CoRN/algebra/CSetoids/fun_strext.con. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/fun_strext_imp_wd.con. + +(* Begin_SpecReals *) + +(* UNEXPORTED +End unary_functions. +*) + +inline cic:/CoRN/algebra/CSetoids/CSetoid_fun.ind. + +inline cic:/CoRN/algebra/CSetoids/csf_wd.con. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/Const_CSetoid_fun.con. + +(* Begin_SpecReals *) + +(* UNEXPORTED +Section binary_functions. +*) + +(*#* +Now we consider binary functions. +In the following two definitions, +[f] is a function from [S1] and [S2] to [S3]. +*) + +inline cic:/CoRN/algebra/CSetoids/f.var. + +inline cic:/CoRN/algebra/CSetoids/bin_fun_wd.con. + +inline cic:/CoRN/algebra/CSetoids/bin_fun_strext.con. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/bin_fun_strext_imp_wd.con. + +(* Begin_SpecReals *) + +(* UNEXPORTED +End binary_functions. +*) + +inline cic:/CoRN/algebra/CSetoids/CSetoid_bin_fun.ind. + +inline cic:/CoRN/algebra/CSetoids/csbf_wd.con. + +inline cic:/CoRN/algebra/CSetoids/csf_wd_unfolded.con. + +inline cic:/CoRN/algebra/CSetoids/csf_strext_unfolded.con. + +inline cic:/CoRN/algebra/CSetoids/csbf_wd_unfolded.con. + +(* UNEXPORTED +End CSetoid_functions. +*) + +(* End_SpecReals *) + +(* UNEXPORTED +Hint Resolve csf_wd_unfolded csbf_wd_unfolded: algebra_c. +*) + +(* UNEXPORTED +Implicit Arguments fun_wd [S1 S2]. +*) + +(* UNEXPORTED +Implicit Arguments fun_strext [S1 S2]. +*) + +(* Begin_SpecReals *) + +(*#* **The unary and binary (inner) operations on a csetoid +An operation is a function with domain(s) and co-domain equal. + +%\begin{nameconvention}% +The word ``unary operation'' is abbreviated to [un_op]; +``binary operation'' is abbreviated to [bin_op]. +%\end{nameconvention}% + +%\begin{convention}% +Let [S] be a setoid. +%\end{convention}% +*) + +(* UNEXPORTED +Section csetoid_inner_ops. +*) + +inline cic:/CoRN/algebra/CSetoids/S.var. + +(*#* Properties of binary operations *) + +inline cic:/CoRN/algebra/CSetoids/commutes.con. + +inline cic:/CoRN/algebra/CSetoids/associative.con. + +(*#* Well-defined unary operations on a setoid. *) + +inline cic:/CoRN/algebra/CSetoids/un_op_wd.con. + +inline cic:/CoRN/algebra/CSetoids/un_op_strext.con. + +inline cic:/CoRN/algebra/CSetoids/CSetoid_un_op.con. + +inline cic:/CoRN/algebra/CSetoids/Build_CSetoid_un_op.con. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/id_strext.con. + +inline cic:/CoRN/algebra/CSetoids/id_pres_eq.con. + +inline cic:/CoRN/algebra/CSetoids/id_un_op.con. + +(* begin hide *) + +(* end hide *) + +(* Begin_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/cs_un_op_strext.con. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/un_op_wd_unfolded.con. + +inline cic:/CoRN/algebra/CSetoids/un_op_strext_unfolded.con. + +(*#* Well-defined binary operations on a setoid. *) + +inline cic:/CoRN/algebra/CSetoids/bin_op_wd.con. + +inline cic:/CoRN/algebra/CSetoids/bin_op_strext.con. + +(* Begin_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/CSetoid_bin_op.con. + +inline cic:/CoRN/algebra/CSetoids/Build_CSetoid_bin_op.con. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/cs_bin_op_wd.con. + +inline cic:/CoRN/algebra/CSetoids/cs_bin_op_strext.con. + +(* Begin_SpecReals *) + +(* begin hide *) + +(* end hide *) + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/bin_op_wd_unfolded.con. + +inline cic:/CoRN/algebra/CSetoids/bin_op_strext_unfolded.con. + +inline cic:/CoRN/algebra/CSetoids/bin_op_is_wd_un_op_lft.con. + +inline cic:/CoRN/algebra/CSetoids/bin_op_is_wd_un_op_rht.con. + +inline cic:/CoRN/algebra/CSetoids/bin_op_is_strext_un_op_lft.con. + +inline cic:/CoRN/algebra/CSetoids/bin_op_is_strext_un_op_rht.con. + +inline cic:/CoRN/algebra/CSetoids/bin_op2un_op_rht.con. + +inline cic:/CoRN/algebra/CSetoids/bin_op2un_op_lft.con. + +(* Begin_SpecReals *) + +(* UNEXPORTED +End csetoid_inner_ops. +*) + +(* End_SpecReals *) + +(* UNEXPORTED +Implicit Arguments commutes [S]. +*) + +(* Begin_SpecReals *) + +(* UNEXPORTED +Implicit Arguments associative [S]. +*) + +(* End_SpecReals *) + +(* UNEXPORTED +Hint Resolve bin_op_wd_unfolded un_op_wd_unfolded: algebra_c. +*) + +(*#* **The binary outer operations on a csetoid +%\begin{convention}% +Let [S1] and [S2] be setoids. +%\end{convention}% +*) + +(* UNEXPORTED +Section csetoid_outer_ops. +*) + +inline cic:/CoRN/algebra/CSetoids/S1.var. + +inline cic:/CoRN/algebra/CSetoids/S2.var. + +(*#* +Well-defined outer operations on a setoid. +*) + +inline cic:/CoRN/algebra/CSetoids/outer_op_well_def.con. + +inline cic:/CoRN/algebra/CSetoids/outer_op_strext.con. + +inline cic:/CoRN/algebra/CSetoids/CSetoid_outer_op.con. + +inline cic:/CoRN/algebra/CSetoids/Build_CSetoid_outer_op.con. + +inline cic:/CoRN/algebra/CSetoids/csoo_wd.con. + +inline cic:/CoRN/algebra/CSetoids/csoo_strext.con. + +(* begin hide *) + +(* end hide *) + +inline cic:/CoRN/algebra/CSetoids/csoo_wd_unfolded.con. + +(* UNEXPORTED +End csetoid_outer_ops. +*) + +(* UNEXPORTED +Hint Resolve csoo_wd_unfolded: algebra_c. +*) + +(* Begin_SpecReals *) + +(*#* **Subsetoids +%\begin{convention}% +Let [S] be a setoid, and [P] a predicate on the carrier of [S]. +%\end{convention}% +*) + +(* UNEXPORTED +Section SubCSetoids. +*) + +inline cic:/CoRN/algebra/CSetoids/S.var. + +inline cic:/CoRN/algebra/CSetoids/P.var. + +inline cic:/CoRN/algebra/CSetoids/subcsetoid_crr.ind. + +(*#* Though [scs_elem] is declared as a coercion, it does not satisfy the +uniform inheritance condition and will not be inserted. However it will +also not be printed, which is handy. +*) + +inline cic:/CoRN/algebra/CSetoids/restrict_relation.con. + +inline cic:/CoRN/algebra/CSetoids/Crestrict_relation.con. + +inline cic:/CoRN/algebra/CSetoids/subcsetoid_eq.con. + +inline cic:/CoRN/algebra/CSetoids/subcsetoid_ap.con. + +(* End_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/subcsetoid_equiv.con. + +(* Begin_SpecReals *) + +inline cic:/CoRN/algebra/CSetoids/subcsetoid_is_CSetoid.con. + +inline cic:/CoRN/algebra/CSetoids/Build_SubCSetoid.con. + +(* End_SpecReals *) + +(*#* ***Subsetoid unary operations +%\begin{convention}% +Let [f] be a unary setoid operation on [S]. +%\end{convention}% +*) + +(* UNEXPORTED +Section SubCSetoid_unary_operations. +*) + +inline cic:/CoRN/algebra/CSetoids/f.var. + +inline cic:/CoRN/algebra/CSetoids/un_op_pres_pred.con. + +(*#* +%\begin{convention}% +Assume [pr:un_op_pres_pred]. +%\end{convention}% *) + +inline cic:/CoRN/algebra/CSetoids/pr.var. + +inline cic:/CoRN/algebra/CSetoids/restr_un_op.con. + +inline cic:/CoRN/algebra/CSetoids/restr_un_op_wd.con. + +inline cic:/CoRN/algebra/CSetoids/restr_un_op_strext.con. + +inline cic:/CoRN/algebra/CSetoids/Build_SubCSetoid_un_op.con. + +(* UNEXPORTED +End SubCSetoid_unary_operations. +*) + +(*#* ***Subsetoid binary operations +%\begin{convention}% +Let [f] be a binary setoid operation on [S]. +%\end{convention}% +*) + +(* UNEXPORTED +Section SubCSetoid_binary_operations. +*) + +inline cic:/CoRN/algebra/CSetoids/f.var. + +inline cic:/CoRN/algebra/CSetoids/bin_op_pres_pred.con. + +(*#* +%\begin{convention}% +Assume [bin_op_pres_pred]. +%\end{convention}% +*) + +inline cic:/CoRN/algebra/CSetoids/pr.var. + +inline cic:/CoRN/algebra/CSetoids/restr_bin_op.con. + +inline cic:/CoRN/algebra/CSetoids/restr_bin_op_well_def.con. + +inline cic:/CoRN/algebra/CSetoids/restr_bin_op_strext.con. + +inline cic:/CoRN/algebra/CSetoids/Build_SubCSetoid_bin_op.con. + +inline cic:/CoRN/algebra/CSetoids/restr_f_assoc.con. + +(* UNEXPORTED +End SubCSetoid_binary_operations. +*) + +(* Begin_SpecReals *) + +(* UNEXPORTED +End SubCSetoids. +*) + +(* End_SpecReals *) + +(* begin hide *) + +(* UNEXPORTED +Ltac Step_final x := apply eq_transitive_unfolded with x; Algebra. +*) + +(* end hide *) + +(* UNEXPORTED +Tactic Notation "Step_final" constr(c) := Step_final c. +*) + +(*#* **Miscellaneous +*) + +inline cic:/CoRN/algebra/CSetoids/proper_caseZ_diff_CS.con. + +(*#* +Finally, we characterize functions defined on the natural numbers also as setoid functions, similarly to what we already did for predicates. +*) + +inline cic:/CoRN/algebra/CSetoids/nat_less_n_fun.con. + +inline cic:/CoRN/algebra/CSetoids/nat_less_n_fun'.con. + +(* UNEXPORTED +Implicit Arguments nat_less_n_fun [S n]. +*) + +(* UNEXPORTED +Implicit Arguments nat_less_n_fun' [S n]. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CSums.ma b/matita/contribs/CoRN-Decl/algebra/CSums.ma new file mode 100644 index 000000000..0177138c7 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CSums.ma @@ -0,0 +1,248 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CSums". + +(* $Id: CSums.v,v 1.8 2004/04/23 10:00:54 lcf Exp $ *) + +(*#* printing Sum0 %\ensuremath{\sum_0}% #∑0# *) + +(*#* printing Sum1 %\ensuremath{\sum_1}% #∑1# *) + +(*#* printing Sum2 %\ensuremath{\sum_2}% #∑2# *) + +(*#* printing Sum %\ensuremath{\sum}% #∑# *) + +(*#* printing Sumx %\ensuremath{\sum'}% #∑'&*) + +(* INCLUDE +CAbGroups +*) + +(* INCLUDE +Peano_dec +*) + +(*#* * Sums + +%\begin{convention}% Let [G] be an abelian group. +%\end{convention}% +*) + +(* UNEXPORTED +Section Sums. +*) + +inline cic:/CoRN/algebra/CSums/G.var. + +(* Sum1 and Sum use subtraction *) + +inline cic:/CoRN/algebra/CSums/Sumlist.con. + +inline cic:/CoRN/algebra/CSums/Sumx.con. + +(*#* +It is sometimes useful to view a function defined on $\{0,\ldots,i-1\}$ +#{0, ... i-1}# as a function on the natural numbers which evaluates to +[Zero] when the input is greater than or equal to [i]. +*) + +inline cic:/CoRN/algebra/CSums/part_tot_nat_fun.con. + +inline cic:/CoRN/algebra/CSums/part_tot_nat_fun_ch1.con. + +inline cic:/CoRN/algebra/CSums/part_tot_nat_fun_ch2.con. + +(*#* [Sum0] defines the sum for [i=0..(n-1)] *) + +inline cic:/CoRN/algebra/CSums/Sum0.con. + +(*#* [Sum1] defines the sum for [i=m..(n-1)] *) + +inline cic:/CoRN/algebra/CSums/Sum1.con. + +inline cic:/CoRN/algebra/CSums/Sum.con. + +(* Sum i=m..n *) + +(*#* [Sum2] is similar to [Sum1], but does not require the summand to be +defined outside where it is being added. *) + +inline cic:/CoRN/algebra/CSums/Sum2.con. + +inline cic:/CoRN/algebra/CSums/Sum_one.con. + +(* UNEXPORTED +Hint Resolve Sum_one: algebra. +*) + +inline cic:/CoRN/algebra/CSums/Sum_empty.con. + +(* UNEXPORTED +Hint Resolve Sum_empty: algebra. +*) + +inline cic:/CoRN/algebra/CSums/Sum_Sum.con. + +(* UNEXPORTED +Hint Resolve Sum_Sum: algebra. +*) + +inline cic:/CoRN/algebra/CSums/Sum_first.con. + +inline cic:/CoRN/algebra/CSums/Sum_last.con. + +(* UNEXPORTED +Hint Resolve Sum_last: algebra. +*) + +inline cic:/CoRN/algebra/CSums/Sum_last'.con. + +(*#* +We add some extensionality results which will be quite useful +when working with integration. +*) + +inline cic:/CoRN/algebra/CSums/Sum0_strext.con. + +inline cic:/CoRN/algebra/CSums/Sum_strext.con. + +inline cic:/CoRN/algebra/CSums/Sumx_strext.con. + +inline cic:/CoRN/algebra/CSums/Sum0_strext'.con. + +inline cic:/CoRN/algebra/CSums/Sum_strext'.con. + +inline cic:/CoRN/algebra/CSums/Sum0_wd.con. + +inline cic:/CoRN/algebra/CSums/Sum_wd.con. + +inline cic:/CoRN/algebra/CSums/Sumx_wd.con. + +inline cic:/CoRN/algebra/CSums/Sum_wd'.con. + +inline cic:/CoRN/algebra/CSums/Sum2_wd.con. + +inline cic:/CoRN/algebra/CSums/Sum0_plus_Sum0.con. + +(* UNEXPORTED +Hint Resolve Sum0_plus_Sum0: algebra. +*) + +inline cic:/CoRN/algebra/CSums/Sum_plus_Sum.con. + +inline cic:/CoRN/algebra/CSums/Sumx_plus_Sumx.con. + +inline cic:/CoRN/algebra/CSums/Sum2_plus_Sum2.con. + +inline cic:/CoRN/algebra/CSums/inv_Sum0.con. + +(* UNEXPORTED +Hint Resolve inv_Sum0: algebra. +*) + +inline cic:/CoRN/algebra/CSums/inv_Sum.con. + +(* UNEXPORTED +Hint Resolve inv_Sum: algebra. +*) + +inline cic:/CoRN/algebra/CSums/inv_Sumx.con. + +inline cic:/CoRN/algebra/CSums/inv_Sum2.con. + +inline cic:/CoRN/algebra/CSums/Sum_minus_Sum.con. + +(* UNEXPORTED +Hint Resolve Sum_minus_Sum: algebra. +*) + +inline cic:/CoRN/algebra/CSums/Sumx_minus_Sumx.con. + +inline cic:/CoRN/algebra/CSums/Sum2_minus_Sum2.con. + +inline cic:/CoRN/algebra/CSums/Sum_apzero.con. + +inline cic:/CoRN/algebra/CSums/Sum_zero.con. + +inline cic:/CoRN/algebra/CSums/Sum_term.con. + +inline cic:/CoRN/algebra/CSums/Sum0_shift.con. + +(* UNEXPORTED +Hint Resolve Sum0_shift: algebra. +*) + +inline cic:/CoRN/algebra/CSums/Sum_shift.con. + +inline cic:/CoRN/algebra/CSums/Sum_big_shift.con. + +inline cic:/CoRN/algebra/CSums/Sumx_Sum0.con. + +(* UNEXPORTED +End Sums. +*) + +(* UNEXPORTED +Implicit Arguments Sum [G]. +*) + +(* UNEXPORTED +Implicit Arguments Sum0 [G]. +*) + +(* UNEXPORTED +Implicit Arguments Sumx [G n]. +*) + +(* UNEXPORTED +Implicit Arguments Sum2 [G m n]. +*) + +(*#* +The next results are useful for calculating some special sums, +often referred to as ``Mengolli Sums''. +%\begin{convention}% Let [G] be an abelian group. +%\end{convention}% +*) + +(* UNEXPORTED +Section More_Sums. +*) + +inline cic:/CoRN/algebra/CSums/G.var. + +inline cic:/CoRN/algebra/CSums/Mengolli_Sum.con. + +inline cic:/CoRN/algebra/CSums/Mengolli_Sum_gen.con. + +inline cic:/CoRN/algebra/CSums/str_Mengolli_Sum_gen.con. + +inline cic:/CoRN/algebra/CSums/Sumx_to_Sum.con. + +(* UNEXPORTED +End More_Sums. +*) + +(* UNEXPORTED +Hint Resolve Sum_one Sum_Sum Sum_first Sum_last Sum_last' Sum_wd + Sum_plus_Sum: algebra. +*) + +(* UNEXPORTED +Hint Resolve Sum_minus_Sum inv_Sum inv_Sum0: algebra. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/CVectorSpace.ma b/matita/contribs/CoRN-Decl/algebra/CVectorSpace.ma new file mode 100644 index 000000000..e10b4867a --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/CVectorSpace.ma @@ -0,0 +1,122 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/CVectorSpace". + +(* $Id: CVectorSpace.v,v 1.4 2004/04/23 10:00:54 lcf Exp $ *) + +(*#* printing ['] %{'}% #'# *) + +(* INCLUDE +CFields +*) + +(*#* +* Vector Spaces + +Obsolete but maintained. +*) + +(* begin hide *) + +(* UNEXPORTED +Set Implicit Arguments. +*) + +(* UNEXPORTED +Unset Strict Implicit. +*) + +(* end hide *) + +inline cic:/CoRN/algebra/CVectorSpace/VSpace.ind. + +(* begin hide *) + +(* UNEXPORTED +Set Strict Implicit. +*) + +(* UNEXPORTED +Unset Implicit Arguments. +*) + +(* end hide *) + +(* UNEXPORTED +Hint Resolve vs_assoc vs_unit vs_distl vs_distr: algebra. +*) + +(* UNEXPORTED +Implicit Arguments vs_op [F v]. +*) + +(*#* +%\begin{convention}% +Let [F] be a fiels and let [V] be a vector space over [F] +%\end{convention}% +*) + +(* UNEXPORTED +Section VS_basics. +*) + +inline cic:/CoRN/algebra/CVectorSpace/F.var. + +inline cic:/CoRN/algebra/CVectorSpace/V.var. + +inline cic:/CoRN/algebra/CVectorSpace/vs_op_zero.con. + +inline cic:/CoRN/algebra/CVectorSpace/zero_vs_op.con. + +(* UNEXPORTED +Hint Resolve vs_op_zero zero_vs_op: algebra. +*) + +inline cic:/CoRN/algebra/CVectorSpace/vs_op_inv_V.con. + +inline cic:/CoRN/algebra/CVectorSpace/vs_op_inv_S.con. + +(* UNEXPORTED +Hint Resolve vs_op_inv_V vs_op_inv_S: algebra. +*) + +inline cic:/CoRN/algebra/CVectorSpace/vs_inv_assoc.con. + +(* UNEXPORTED +Hint Resolve vs_inv_assoc: algebra. +*) + +inline cic:/CoRN/algebra/CVectorSpace/ap_zero_vs_op_l.con. + +inline cic:/CoRN/algebra/CVectorSpace/ap_zero_vs_op_r.con. + +(* note this is the same proof as mult_resp_ap_zero *) + +inline cic:/CoRN/algebra/CVectorSpace/vs_op_resp_ap_rht.con. + +inline cic:/CoRN/algebra/CVectorSpace/vs_op_resp_ap_zero.con. + +inline cic:/CoRN/algebra/CVectorSpace/vs_op_resp_ap_lft.con. + +(* UNEXPORTED +End VS_basics. +*) + +(* UNEXPORTED +Hint Resolve vs_op_zero zero_vs_op: algebra. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/Cauchy_COF.ma b/matita/contribs/CoRN-Decl/algebra/Cauchy_COF.ma new file mode 100644 index 000000000..f2ee13a49 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/Cauchy_COF.ma @@ -0,0 +1,246 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/Cauchy_COF". + +(* $Id: Cauchy_COF.v,v 1.8 2004/04/23 10:00:54 lcf Exp $ *) + +(* INCLUDE +COrdCauchy +*) + +(* INCLUDE +RingReflection +*) + +(*#* +* The Field of Cauchy Sequences + +In this chapter we will prove that whenever we start from an ordered +field [F], we can define a new ordered field of Cauchy sequences over [F]. + +%\begin{convention}% Let [F] be an ordered field. +%\end{convention}% +*) + +(* UNEXPORTED +Section Structure. +*) + +inline cic:/CoRN/algebra/Cauchy_COF/F.var. + +(*#* +** Setoid Structure + +[R_Set] is the setoid of Cauchy sequences over [F]; given two sequences +[x,y] over [F], we say that [x] is smaller than [y] if from some point +onwards [(y n) [-] (x n)] is greater than some fixed, positive +[e]. Apartness of two sequences means that one of them is smaller +than the other, equality is the negation of the apartness. +*) + +inline cic:/CoRN/algebra/Cauchy_COF/R_Set.con. + +(* UNEXPORTED +Section CSetoid_Structure. +*) + +inline cic:/CoRN/algebra/Cauchy_COF/R_lt.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_ap.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_eq.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_lt_cotrans.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_ap_cotrans.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_ap_symmetric.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_lt_irreflexive.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_ap_irreflexive.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_ap_eq_tight.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_CSetoid.con. + +(* UNEXPORTED +End CSetoid_Structure. +*) + +(* UNEXPORTED +Section Group_Structure. +*) + +(*#* +** Group Structure +The group structure is just the expected one; the lemmas which +are specifically proved are just the necessary ones to get the group axioms. +*) + +inline cic:/CoRN/algebra/Cauchy_COF/R_plus.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_zero.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_plus_lft_ext.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_plus_assoc.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_zero_lft_unit.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_plus_comm.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_inv.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_inv_is_inv.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_inv_ext.con. + +inline cic:/CoRN/algebra/Cauchy_COF/Rinv.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_CAbGroup.con. + +(* UNEXPORTED +End Group_Structure. +*) + +(* UNEXPORTED +Section Ring_Structure. +*) + +(*#* ** Ring Structure +Same comments as previously. +*) + +inline cic:/CoRN/algebra/Cauchy_COF/R_mult.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_one.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_one_ap_zero.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_mult_dist_plus.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_mult_dist_minus.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_one_rht_unit.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_mult_comm.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_mult_ap_zero'.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_mult_lft_ext.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_mult_rht_ext.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_mult_strext.con. + +inline cic:/CoRN/algebra/Cauchy_COF/Rmult.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_mult_assoc.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_one_lft_unit.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_CRing.con. + +(* UNEXPORTED +End Ring_Structure. +*) + +(* UNEXPORTED +Section Field_Structure. +*) + +(*#* ** Field Structure +For the field structure, it is technically easier to first prove +that our ring is actually an integral domain. The rest then follows +quite straightforwardly. +*) + +inline cic:/CoRN/algebra/Cauchy_COF/R_integral_domain.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_recip.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_recip_inverse.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_recip_strext.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_recip_inverse'.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_CField.con. + +(* UNEXPORTED +End Field_Structure. +*) + +(* UNEXPORTED +Section Order. +*) + +(*#* ** Order Structure +Finally, we extend the field structure with the ordering we +defined at the beginning. +*) + +inline cic:/CoRN/algebra/Cauchy_COF/R_lt_strext.con. + +inline cic:/CoRN/algebra/Cauchy_COF/Rlt.con. + +inline cic:/CoRN/algebra/Cauchy_COF/Rlt_transitive.con. + +inline cic:/CoRN/algebra/Cauchy_COF/Rlt_strict.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_plus_resp_lt.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_mult_resp_lt.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_COrdField.con. + +(* UNEXPORTED +End Order. +*) + +(*#* +** Other Results +Auxiliary characterizations of the main relations on [R_Set]. +*) + +(* UNEXPORTED +Section Auxiliary. +*) + +inline cic:/CoRN/algebra/Cauchy_COF/Rlt_alt_1.con. + +inline cic:/CoRN/algebra/Cauchy_COF/Rlt_alt_2.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_ap_alt_1.con. + +inline cic:/CoRN/algebra/Cauchy_COF/Eq_alt_1.con. + +inline cic:/CoRN/algebra/Cauchy_COF/R_ap_alt_2.con. + +inline cic:/CoRN/algebra/Cauchy_COF/Eq_alt_2_1.con. + +inline cic:/CoRN/algebra/Cauchy_COF/Eq_alt_2_2.con. + +(* UNEXPORTED +End Auxiliary. +*) + +(* UNEXPORTED +End Structure. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/Expon.ma b/matita/contribs/CoRN-Decl/algebra/Expon.ma new file mode 100644 index 000000000..2b1085a7c --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/Expon.ma @@ -0,0 +1,290 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/Expon". + +(* $Id: Expon.v,v 1.5 2004/04/23 10:00:54 lcf Exp $ *) + +(*#* printing [^^] %\ensuremath{\hat{\ }}% #^# *) + +(* INCLUDE +Arith +*) + +(* INCLUDE +COrdCauchy +*) + +(* INCLUDE +Transparent_algebra +*) + +(*#* *Exponentiation +**More properties about [nexp] +%\begin{convention}% Let [R] be an ordered field. +%\end{convention}% +*) + +(* UNEXPORTED +Section More_Nexp. +*) + +inline cic:/CoRN/algebra/Expon/R.var. + +inline cic:/CoRN/algebra/Expon/nexp_resp_ap_zero.con. + +(* UNEXPORTED +Hint Resolve nexp_resp_ap_zero: algebra. +*) + +inline cic:/CoRN/algebra/Expon/nexp_distr_div.con. + +inline cic:/CoRN/algebra/Expon/nexp_distr_div'.con. + +inline cic:/CoRN/algebra/Expon/small_nexp_resp_lt.con. + +inline cic:/CoRN/algebra/Expon/great_nexp_resp_lt.con. + +inline cic:/CoRN/algebra/Expon/small_nexp_resp_le.con. + +inline cic:/CoRN/algebra/Expon/great_nexp_resp_le.con. + +inline cic:/CoRN/algebra/Expon/nexp_resp_leEq.con. + +inline cic:/CoRN/algebra/Expon/nexp_resp_leEq_one.con. + +inline cic:/CoRN/algebra/Expon/nexp_resp_leEq_neg_even.con. + +inline cic:/CoRN/algebra/Expon/nexp_resp_leEq_neg_odd.con. + +inline cic:/CoRN/algebra/Expon/nexp_distr_recip.con. + +(* UNEXPORTED +Hint Resolve nexp_distr_recip: algebra. +*) + +inline cic:/CoRN/algebra/Expon/nexp_even_nonneg.con. + +inline cic:/CoRN/algebra/Expon/nexp_resp_le'.con. + +inline cic:/CoRN/algebra/Expon/nexp_resp_le.con. + +inline cic:/CoRN/algebra/Expon/bin_less_un.con. + +(* UNEXPORTED +End More_Nexp. +*) + +(* UNEXPORTED +Hint Resolve nexp_distr_div nexp_distr_recip: algebra. +*) + +(* UNEXPORTED +Implicit Arguments nexp_resp_ap_zero [R x]. +*) + +(*#* **Definition of [zexp]: integer exponentiation +%\begin{convention}% Let [R] be an ordered field. +%\end{convention}% +*) + +(* UNEXPORTED +Section Zexp_def. +*) + +inline cic:/CoRN/algebra/Expon/R.var. + +(*#* +It would be nicer to define [zexp] using [caseZdiff], but we already +have most properties now. +*) + +inline cic:/CoRN/algebra/Expon/zexp.con. + +(* UNEXPORTED +End Zexp_def. +*) + +(* UNEXPORTED +Implicit Arguments zexp [R]. +*) + +(*#* **Properties of [zexp] +%\begin{convention}% Let [R] be an ordered field. +%\end{convention}% +*) + +(* UNEXPORTED +Section Zexp_properties. +*) + +inline cic:/CoRN/algebra/Expon/R.var. + +inline cic:/CoRN/algebra/Expon/zexp_zero.con. + +(* UNEXPORTED +Hint Resolve zexp_zero: algebra. +*) + +inline cic:/CoRN/algebra/Expon/zexp_nexp.con. + +(* UNEXPORTED +Hint Resolve zexp_nexp: algebra. +*) + +inline cic:/CoRN/algebra/Expon/zexp_inv_nexp.con. + +(* UNEXPORTED +Hint Resolve zexp_inv_nexp: algebra. +*) + +inline cic:/CoRN/algebra/Expon/zexp_inv_nexp'.con. + +(* UNEXPORTED +Hint Resolve zexp_inv_nexp': algebra. +*) + +inline cic:/CoRN/algebra/Expon/zexp_strext.con. + +inline cic:/CoRN/algebra/Expon/zexp_wd.con. + +(* UNEXPORTED +Hint Resolve zexp_wd: algebra_c. +*) + +inline cic:/CoRN/algebra/Expon/zexp_plus1.con. + +(* UNEXPORTED +Hint Resolve zexp_plus1: algebra. +*) + +inline cic:/CoRN/algebra/Expon/zexp_resp_ap_zero.con. + +(* UNEXPORTED +Hint Resolve zexp_resp_ap_zero: algebra. +*) + +inline cic:/CoRN/algebra/Expon/zexp_inv.con. + +(* UNEXPORTED +Hint Resolve zexp_inv: algebra. +*) + +inline cic:/CoRN/algebra/Expon/zexp_inv1.con. + +(* UNEXPORTED +Hint Resolve zexp_inv1: algebra. +*) + +inline cic:/CoRN/algebra/Expon/zexp_plus.con. + +(* UNEXPORTED +Hint Resolve zexp_plus: algebra. +*) + +inline cic:/CoRN/algebra/Expon/zexp_minus.con. + +(* UNEXPORTED +Hint Resolve zexp_minus: algebra. +*) + +inline cic:/CoRN/algebra/Expon/one_zexp.con. + +(* UNEXPORTED +Hint Resolve one_zexp: algebra. +*) + +inline cic:/CoRN/algebra/Expon/mult_zexp.con. + +(* UNEXPORTED +Hint Resolve mult_zexp: algebra. +*) + +inline cic:/CoRN/algebra/Expon/zexp_mult.con. + +(* UNEXPORTED +Hint Resolve zexp_mult: algebra. +*) + +inline cic:/CoRN/algebra/Expon/zexp_two.con. + +(* UNEXPORTED +Hint Resolve zexp_two: algebra. +*) + +inline cic:/CoRN/algebra/Expon/inv_zexp_even.con. + +(* UNEXPORTED +Hint Resolve inv_zexp_even: algebra. +*) + +inline cic:/CoRN/algebra/Expon/inv_zexp_two.con. + +(* UNEXPORTED +Hint Resolve inv_zexp_two: algebra. +*) + +inline cic:/CoRN/algebra/Expon/inv_zexp_odd.con. + +inline cic:/CoRN/algebra/Expon/zexp_one.con. + +(* UNEXPORTED +Hint Resolve zexp_one: algebra. +*) + +inline cic:/CoRN/algebra/Expon/zexp_funny.con. + +(* UNEXPORTED +Hint Resolve zexp_funny: algebra. +*) + +inline cic:/CoRN/algebra/Expon/zexp_funny'.con. + +(* UNEXPORTED +Hint Resolve zexp_funny': algebra. +*) + +inline cic:/CoRN/algebra/Expon/zexp_pos.con. + +(* UNEXPORTED +End Zexp_properties. +*) + +(* UNEXPORTED +Hint Resolve nexp_resp_ap_zero zexp_zero zexp_nexp zexp_inv_nexp + zexp_inv_nexp' zexp_plus1 zexp_resp_ap_zero zexp_inv zexp_inv1 zexp_plus + zexp_minus one_zexp mult_zexp zexp_mult zexp_two inv_zexp_even inv_zexp_two + zexp_one zexp_funny zexp_funny': algebra. +*) + +(* UNEXPORTED +Hint Resolve zexp_wd: algebra_c. +*) + +(* UNEXPORTED +Section Root_Unique. +*) + +inline cic:/CoRN/algebra/Expon/R.var. + +inline cic:/CoRN/algebra/Expon/root_unique.con. + +inline cic:/CoRN/algebra/Expon/root_one.con. + +(* UNEXPORTED +End Root_Unique. +*) + diff --git a/matita/contribs/CoRN-Decl/algebra/ListType.ma b/matita/contribs/CoRN-Decl/algebra/ListType.ma new file mode 100644 index 000000000..004ba5565 --- /dev/null +++ b/matita/contribs/CoRN-Decl/algebra/ListType.ma @@ -0,0 +1,247 @@ +(**************************************************************************) +(* ___ *) +(* ||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/algebra/ListType". + +(* begin hide *) + +(*#**********************************************************************) + +(* v * The Coq Proof Assistant / The Coq Development Team *) + +(* C# *) + +(*#* printing II %\ensuremath{\imath}% #i# *) + +(*#* printing [+I*] %\ensuremath{+\imath}% *) + +(*#* printing AbsCC %\ensuremath{|\cdot|_{\mathbb C}}% *) + +(*#* printing CCX %\ensuremath{\mathbb C[X]}% #C[X]# *) + +(* INCLUDE +NRootIR +*) + +(*#* * Complex Numbers +** Algebraic structure +*) + +(* UNEXPORTED +Section Complex_Numbers. +*) + +inline cic:/CoRN/complex/CComplex/CC_set.ind. + +inline cic:/CoRN/complex/CComplex/cc_ap.con. + +inline cic:/CoRN/complex/CComplex/cc_eq.con. + +inline cic:/CoRN/complex/CComplex/cc_is_CSetoid.con. + +inline cic:/CoRN/complex/CComplex/cc_csetoid.con. + +inline cic:/CoRN/complex/CComplex/cc_plus.con. + +inline cic:/CoRN/complex/CComplex/cc_mult.con. + +inline cic:/CoRN/complex/CComplex/cc_zero.con. + +inline cic:/CoRN/complex/CComplex/cc_one.con. + +inline cic:/CoRN/complex/CComplex/cc_i.con. + +inline cic:/CoRN/complex/CComplex/cc_inv.con. + +(* not needed anymore +Lemma cc_plus_op_proof : (bin_op_wd cc_csetoid cc_plus). +Unfold bin_op_wd. Unfold bin_fun_wd. +Intros x1 x2 y1 y2. Elim x1. Elim x2. Elim y1. Elim y2. +Simpl. Unfold cc_eq. Simpl. Intros. +Elim H. Clear H. Intros. Elim H0. Clear H0. Intros. +Split; Algebra. +Qed. + +Lemma cc_mult_op_proof : (bin_op_wd cc_csetoid cc_mult). +Unfold bin_op_wd. Unfold bin_fun_wd. +Intros x1 x2 y1 y2. Elim x1. Elim x2. Elim y1. Elim y2. +Simpl. Unfold cc_eq. Simpl. Intros. +Elim H. Clear H. Intros. Elim H0. Clear H0. Intros. +Split; Algebra. +Qed. + +Lemma cc_inv_op_proof : (un_op_wd cc_csetoid cc_inv). +Unfold un_op_wd. Unfold fun_wd. +Intros x y. Elim x. Elim y. +Simpl. Unfold cc_eq. Simpl. Intros. +Elim H. Clear H. Intros. +Split; Algebra. +Qed. +*) + +inline cic:/CoRN/complex/CComplex/cc_inv_strext.con. + +inline cic:/CoRN/complex/CComplex/cc_plus_strext.con. + +inline cic:/CoRN/complex/CComplex/cc_mult_strext.con. + +inline cic:/CoRN/complex/CComplex/cc_inv_op.con. + +inline cic:/CoRN/complex/CComplex/cc_plus_op.con. + +inline cic:/CoRN/complex/CComplex/cc_mult_op.con. + +inline cic:/CoRN/complex/CComplex/cc_csg_associative.con. + +inline cic:/CoRN/complex/CComplex/cc_cr_mult_associative.con. + +inline cic:/CoRN/complex/CComplex/cc_csemi_grp.con. + +inline cic:/CoRN/complex/CComplex/cc_cm_proof.con. + +inline cic:/CoRN/complex/CComplex/cc_cmonoid.con. + +inline cic:/CoRN/complex/CComplex/cc_cg_proof.con. + +inline cic:/CoRN/complex/CComplex/cc_cr_dist.con. + +inline cic:/CoRN/complex/CComplex/cc_cr_non_triv.con. + +inline cic:/CoRN/complex/CComplex/cc_cgroup.con. + +inline cic:/CoRN/complex/CComplex/cc_cabgroup.con. + +inline cic:/CoRN/complex/CComplex/cc_cr_mult_mon.con. + +inline cic:/CoRN/complex/CComplex/cc_mult_commutes.con. + +inline cic:/CoRN/complex/CComplex/cc_isCRing.con. + +inline cic:/CoRN/complex/CComplex/cc_cring.con. + +inline cic:/CoRN/complex/CComplex/cc_ap_zero.con. + +inline cic:/CoRN/complex/CComplex/cc_inv_aid.con. + +(*#* +If [x [~=] Zero] or [y [~=] Zero], then [x [/] x[^]2 [+] y[^]2 [~=] Zero] or +[[--]y[/]x[^]2[+]y[^]2 [~=] Zero]. +*) + +inline cic:/CoRN/complex/CComplex/cc_inv_aid2.con. + +(* +REMARK KEPT FOR SENTIMENTAL REASONS... + +This definition seems clever. Even though we *cannot* construct an +element of (NonZeros cc_cring) (a Set) by deciding which part of the +input (Re or Im) is NonZero (a Prop), we manage to construct the +actual function. +*) + +inline cic:/CoRN/complex/CComplex/cc_recip.con. + +inline cic:/CoRN/complex/CComplex/cc_cfield_proof.con. + +inline cic:/CoRN/complex/CComplex/cc_Recip_proof.con. + +(* UNEXPORTED +Opaque cc_recip. +*) + +(* UNEXPORTED +Opaque cc_inv. +*) + +inline cic:/CoRN/complex/CComplex/cc_cfield.con. + +inline cic:/CoRN/complex/CComplex/CC.con. + +(*#* +Maps from reals to complex and vice-versa are defined, as well as conjugate, +absolute value and the imaginary unit [I] *) + +inline cic:/CoRN/complex/CComplex/cc_set_CC.con. + +inline cic:/CoRN/complex/CComplex/cc_IR.con. + +inline cic:/CoRN/complex/CComplex/CC_conj.con. + +(* old def +Definition CC_conj' : CC->CC := [z:CC_set] (CC_set_rec [_:CC_set]CC_set [Re0,Im0:IR] (Build_CC_set Re0 [--]Im0) z). +*) + +inline cic:/CoRN/complex/CComplex/AbsCC.con. + +inline cic:/CoRN/complex/CComplex/TwoCC_ap_zero.con. + +(* UNEXPORTED +End Complex_Numbers. +*) + +(* begin hide *) + +(* end hide *) + +inline cic:/CoRN/complex/CComplex/II.con. + +(*#* ** Properties of [II] *) + +(* UNEXPORTED +Section I_properties. +*) + +inline cic:/CoRN/complex/CComplex/I_square.con. + +(* UNEXPORTED +Hint Resolve I_square: algebra. +*) + +inline cic:/CoRN/complex/CComplex/I_square'.con. + +inline cic:/CoRN/complex/CComplex/I_recip_lft.con. + +inline cic:/CoRN/complex/CComplex/I_recip_rht.con. + +inline cic:/CoRN/complex/CComplex/mult_I.con. + +inline cic:/CoRN/complex/CComplex/I_wd.con. + +(*#* ** Properties of [Re] and [Im] *) + +inline cic:/CoRN/complex/CComplex/calculate_norm.con. + +inline cic:/CoRN/complex/CComplex/calculate_Re.con. + +inline cic:/CoRN/complex/CComplex/calculate_Im.con. + +inline cic:/CoRN/complex/CComplex/Re_wd.con. + +inline cic:/CoRN/complex/CComplex/Im_wd.con. + +inline cic:/CoRN/complex/CComplex/Re_resp_plus.con. + +inline cic:/CoRN/complex/CComplex/Re_resp_inv.con. + +inline cic:/CoRN/complex/CComplex/Im_resp_plus.con. + +inline cic:/CoRN/complex/CComplex/Im_resp_inv.con. + +inline cic:/CoRN/complex/CComplex/cc_calculate_square.con. + +(* UNEXPORTED +End I_properties. +*) + +(* UNEXPORTED +Hint Resolve I_square I_square' I_recip_lft I_recip_rht mult_I calculate_norm + cc_calculate_square: algebra. +*) + +(* UNEXPORTED +Hint Resolve I_wd Re_wd Im_wd: algebra_c. +*) + +(*#* ** Properties of conjugation *) + +(* UNEXPORTED +Section Conj_properties. +*) + +inline cic:/CoRN/complex/CComplex/CC_conj_plus.con. + +inline cic:/CoRN/complex/CComplex/CC_conj_mult.con. + +(* UNEXPORTED +Hint Resolve CC_conj_mult: algebra. +*) + +inline cic:/CoRN/complex/CComplex/CC_conj_strext.con. + +inline cic:/CoRN/complex/CComplex/CC_conj_conj.con. + +inline cic:/CoRN/complex/CComplex/CC_conj_zero.con. + +inline cic:/CoRN/complex/CComplex/CC_conj_one.con. + +(* UNEXPORTED +Hint Resolve CC_conj_one: algebra. +*) + +inline cic:/CoRN/complex/CComplex/CC_conj_nexp.con. + +(* UNEXPORTED +End Conj_properties. +*) + +(* UNEXPORTED +Hint Resolve CC_conj_plus CC_conj_mult CC_conj_nexp CC_conj_conj + CC_conj_zero: algebra. +*) + +(*#* ** Properties of the real axis *) + +(* UNEXPORTED +Section cc_IR_properties. +*) + +inline cic:/CoRN/complex/CComplex/Re_cc_IR.con. + +inline cic:/CoRN/complex/CComplex/Im_cc_IR.con. + +inline cic:/CoRN/complex/CComplex/cc_IR_wd.con. + +(* UNEXPORTED +Hint Resolve cc_IR_wd: algebra_c. +*) + +inline cic:/CoRN/complex/CComplex/cc_IR_resp_ap.con. + +inline cic:/CoRN/complex/CComplex/cc_IR_mult.con. + +(* UNEXPORTED +Hint Resolve cc_IR_mult: algebra. +*) + +inline cic:/CoRN/complex/CComplex/cc_IR_mult_lft.con. + +inline cic:/CoRN/complex/CComplex/cc_IR_mult_rht.con. + +inline cic:/CoRN/complex/CComplex/cc_IR_plus.con. + +(* UNEXPORTED +Hint Resolve cc_IR_plus: algebra. +*) + +inline cic:/CoRN/complex/CComplex/cc_IR_minus.con. + +inline cic:/CoRN/complex/CComplex/cc_IR_zero.con. + +(* UNEXPORTED +Hint Resolve cc_IR_zero: algebra. +*) + +inline cic:/CoRN/complex/CComplex/cc_IR_one.con. + +(* UNEXPORTED +Hint Resolve cc_IR_one: algebra. +*) + +inline cic:/CoRN/complex/CComplex/cc_IR_nring.con. + +inline cic:/CoRN/complex/CComplex/cc_IR_nexp.con. + +(* UNEXPORTED +End cc_IR_properties. +*) + +(* UNEXPORTED +Hint Resolve Re_cc_IR Im_cc_IR: algebra. +*) + +(* UNEXPORTED +Hint Resolve cc_IR_wd: algebra_c. +*) + +(* UNEXPORTED +Hint Resolve cc_IR_mult cc_IR_nexp cc_IR_mult_lft cc_IR_mult_rht cc_IR_plus + cc_IR_minus: algebra. +*) + +(* UNEXPORTED +Hint Resolve cc_IR_nring cc_IR_zero: algebra. +*) + +(*#* ** [CC] has characteristic zero *) + +(* INCLUDE +Transparent_algebra +*) + +inline cic:/CoRN/complex/CComplex/char0_CC.con. + +(* INCLUDE +Opaque_algebra +*) + +inline cic:/CoRN/complex/CComplex/poly_apzero_CC.con. + +inline cic:/CoRN/complex/CComplex/poly_CC_extensional.con. + diff --git a/matita/contribs/CoRN-Decl/complex/Complex_Exponential.ma b/matita/contribs/CoRN-Decl/complex/Complex_Exponential.ma new file mode 100644 index 000000000..9bbab759a --- /dev/null +++ b/matita/contribs/CoRN-Decl/complex/Complex_Exponential.ma @@ -0,0 +1,108 @@ +(**************************************************************************) +(* ___ *) +(* ||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/complex/Complex_Exponential". + +(* $Id: Complex_Exponential.v,v 1.4 2004/04/23 10:00:55 lcf Exp $ *) + +(*#* printing ExpCC %\ensuremath{\exp_{\mathbb C}}% *) + +(* INCLUDE +AbsCC +*) + +(* INCLUDE +Exponential +*) + +(* INCLUDE +Pi +*) + +(*#* ** The Complex Exponential *) + +inline cic:/CoRN/complex/Complex_Exponential/ExpCC.con. + +inline cic:/CoRN/complex/Complex_Exponential/ExpCC_wd.con. + +(* begin hide *) + +inline cic:/CoRN/complex/Complex_Exponential/ExpCC_equation_aid_1.con. + +inline cic:/CoRN/complex/Complex_Exponential/ExpCC_equation_aid_2.con. + +inline cic:/CoRN/complex/Complex_Exponential/ExpCC_equation_aid_3.con. + +inline cic:/CoRN/complex/Complex_Exponential/ExpCC_equation_aid_4.con. + +(* end hide *) + +inline cic:/CoRN/complex/Complex_Exponential/ExpCC_plus.con. + +(* UNEXPORTED +Hint Resolve ExpCC_plus: algebra. +*) + +inline cic:/CoRN/complex/Complex_Exponential/ExpCC_Zero.con. + +(* UNEXPORTED +Hint Resolve ExpCC_Zero: algebra. +*) + +inline cic:/CoRN/complex/Complex_Exponential/ExpCC_inv_aid.con. + +(* UNEXPORTED +Hint Resolve ExpCC_inv_aid: algebra. +*) + +inline cic:/CoRN/complex/Complex_Exponential/ExpCC_ap_zero.con. + +inline cic:/CoRN/complex/Complex_Exponential/ExpCC_inv.con. + +(* UNEXPORTED +Hint Resolve ExpCC_inv: algebra. +*) + +inline cic:/CoRN/complex/Complex_Exponential/ExpCC_pow.con. + +(* UNEXPORTED +Hint Resolve ExpCC_pow: algebra. +*) + +inline cic:/CoRN/complex/Complex_Exponential/AbsCC_ExpCC.con. + +(* UNEXPORTED +Hint Resolve AbsCC_ExpCC: algebra. +*) + +inline cic:/CoRN/complex/Complex_Exponential/ExpCC_Periodic.con. + +(* UNEXPORTED +Hint Resolve ExpCC_Periodic: algebra. +*) + +inline cic:/CoRN/complex/Complex_Exponential/ExpCC_Exp.con. + +(* UNEXPORTED +Hint Resolve ExpCC_Exp: algebra. +*) + +(* UNEXPORTED +Opaque Sin Cos Exp. +*) + +inline cic:/CoRN/complex/Complex_Exponential/Euler.con. + diff --git a/matita/contribs/CoRN-Decl/complex/NRootCC.ma b/matita/contribs/CoRN-Decl/complex/NRootCC.ma new file mode 100644 index 000000000..48688c5ee --- /dev/null +++ b/matita/contribs/CoRN-Decl/complex/NRootCC.ma @@ -0,0 +1,584 @@ +(**************************************************************************) +(* ___ *) +(* ||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/complex/NRootCC". + +(* $Id: NRootCC.v,v 1.9 2004/04/23 10:00:55 lcf Exp $ *) + +(*#* printing sqrt_Half %\ensuremath{\sqrt{\frac12}}% *) + +(*#* printing sqrt_I %\ensuremath{\sqrt{\imath}}% *) + +(*#* printing nroot_I %\ensuremath{\sqrt[n]{\imath}}% *) + +(*#* printing nroot_minus_I %\ensuremath{\sqrt[n]{-\imath}}% *) + +(* INCLUDE +CComplex +*) + +(* INCLUDE +Wf_nat +*) + +(* INCLUDE +ArithRing +*) + +(*#* * Roots of Complex Numbers + +Properties of non-zero complex numbers +*) + +(* UNEXPORTED +Section CC_ap_zero. +*) + +inline cic:/CoRN/complex/NRootCC/cc_ap_zero.con. + +inline cic:/CoRN/complex/NRootCC/C_cc_ap_zero.con. + +(* UNEXPORTED +End CC_ap_zero. +*) + +(*#* Weird lemma. *) + +(* UNEXPORTED +Section Imag_to_Real. +*) + +inline cic:/CoRN/complex/NRootCC/imag_to_real.con. + +(* UNEXPORTED +End Imag_to_Real. +*) + +(*#* ** Roots of the imaginary unit *) + +(* UNEXPORTED +Section NRootI. +*) + +inline cic:/CoRN/complex/NRootCC/sqrt_Half.con. + +inline cic:/CoRN/complex/NRootCC/sqrt_I.con. + +inline cic:/CoRN/complex/NRootCC/sqrt_I_nexp.con. + +inline cic:/CoRN/complex/NRootCC/nroot_I_nexp_aux.con. + +inline cic:/CoRN/complex/NRootCC/nroot_I.con. + +inline cic:/CoRN/complex/NRootCC/nroot_I_nexp.con. + +(* UNEXPORTED +Hint Resolve nroot_I_nexp: algebra. +*) + +inline cic:/CoRN/complex/NRootCC/nroot_minus_I.con. + +inline cic:/CoRN/complex/NRootCC/nroot_minus_I_nexp.con. + +(* UNEXPORTED +End NRootI. +*) + +(*#* ** Roots of complex numbers *) + +(* UNEXPORTED +Section NRootCC_1. +*) + +(*#* We define the nth root of a complex number with a non zero imaginary part. +*) + +(* UNEXPORTED +Section NRootCC_1_ap_real. +*) + +(*#* +%\begin{convention}% Let [a,b : IR] and [b_ : (b [#] Zero)]. +Define [c2 := a[^]2[+]b[^]2], [c := sqrt c2], [a'2 := (c[+]a) [*]Half], +[a' := sqrt a'2], [b'2 := (c[-]a) [*]Half] and [b' := sqrt b'2]. +%\end{convention}% +*) + +inline cic:/CoRN/complex/NRootCC/a.var. + +inline cic:/CoRN/complex/NRootCC/b.var. + +inline cic:/CoRN/complex/NRootCC/b_.var. + +(* begin hide *) + +inline cic:/CoRN/complex/NRootCC/c2.con. + +(* end hide *) + +inline cic:/CoRN/complex/NRootCC/nrCC1_c2pos.con. + +(* begin hide *) + +inline cic:/CoRN/complex/NRootCC/c.con. + +inline cic:/CoRN/complex/NRootCC/a'2.con. + +(* end hide *) + +inline cic:/CoRN/complex/NRootCC/nrCC1_a'2pos.con. + +(* begin hide *) + +inline cic:/CoRN/complex/NRootCC/a'.con. + +inline cic:/CoRN/complex/NRootCC/b'2.con. + +(* end hide *) + +inline cic:/CoRN/complex/NRootCC/nrCC1_b'2pos.con. + +(* begin hide *) + +inline cic:/CoRN/complex/NRootCC/b'.con. + +(* end hide *) + +inline cic:/CoRN/complex/NRootCC/nrCC1_a3.con. + +inline cic:/CoRN/complex/NRootCC/nrCC1_a4.con. + +(* UNEXPORTED +Hint Resolve nrCC1_a4: algebra. +*) + +inline cic:/CoRN/complex/NRootCC/nrCC1_a5.con. + +inline cic:/CoRN/complex/NRootCC/nrCC1_a6.con. + +inline cic:/CoRN/complex/NRootCC/nrCC1_a6'.con. + +(* UNEXPORTED +Hint Resolve nrCC1_a5: algebra. +*) + +inline cic:/CoRN/complex/NRootCC/nrCC1_a7_upper.con. + +inline cic:/CoRN/complex/NRootCC/nrCC1_a7_lower.con. + +(* UNEXPORTED +Hint Resolve nrCC1_a3 nrCC1_a7_upper nrCC1_a7_lower: algebra. +*) + +inline cic:/CoRN/complex/NRootCC/nrootCC_1_upper.con. + +inline cic:/CoRN/complex/NRootCC/nrootCC_1_lower.con. + +inline cic:/CoRN/complex/NRootCC/nrootCC_1_ap_real.con. + +(* UNEXPORTED +End NRootCC_1_ap_real. +*) + +(*#* We now define the nth root of a complex number with a non zero real part. +*) + +(* UNEXPORTED +Section NRootCC_1_ap_imag. +*) + +(*#* +%\begin{convention}% Let [a,b : IR] and [a_ : (a [#] Zero)] and define +[c' := (a[+I*]b) [*][--]II := a'[+I*]b']. +%\end{convention}% +*) + +inline cic:/CoRN/complex/NRootCC/a.var. + +inline cic:/CoRN/complex/NRootCC/b.var. + +inline cic:/CoRN/complex/NRootCC/a_.var. + +(* begin hide *) + +inline cic:/CoRN/complex/NRootCC/c'.con. + +inline cic:/CoRN/complex/NRootCC/a'.con. + +inline cic:/CoRN/complex/NRootCC/b'.con. + +(* end hide *) + +(* UNEXPORTED +Hint Resolve sqrt_I_nexp: algebra. +*) + +inline cic:/CoRN/complex/NRootCC/nrootCC_1_ap_imag.con. + +(* UNEXPORTED +End NRootCC_1_ap_imag. +*) + +(*#* We now define the roots of arbitrary non zero complex numbers. *) + +inline cic:/CoRN/complex/NRootCC/nrootCC_1.con. + +(* UNEXPORTED +End NRootCC_1. +*) + +(* UNEXPORTED +Section NRootCC_2. +*) + +(*#* +%\begin{convention}% Let [n : nat] and [c,z : CC] and [c_:(c [#] Zero)]. +%\end{convention}% +*) + +inline cic:/CoRN/complex/NRootCC/n.var. + +inline cic:/CoRN/complex/NRootCC/c.var. + +inline cic:/CoRN/complex/NRootCC/z.var. + +inline cic:/CoRN/complex/NRootCC/c_.var. + +inline cic:/CoRN/complex/NRootCC/nrootCC_2'.con. + +inline cic:/CoRN/complex/NRootCC/nrootCC_2.con. + +(* UNEXPORTED +End NRootCC_2. +*) + +(* UNEXPORTED +Section NRootCC_3. +*) + +inline cic:/CoRN/complex/NRootCC/Im_poly.con. + +inline cic:/CoRN/complex/NRootCC/nrCC3_a1.con. + +inline cic:/CoRN/complex/NRootCC/nrCC3_a2.con. + +(*#* +%\begin{convention}% Let [a,b : IR], [b_ : (b [#] Zero)] and [n : nat]. +%\end{convention}% +*) + +inline cic:/CoRN/complex/NRootCC/a.var. + +inline cic:/CoRN/complex/NRootCC/b.var. + +inline cic:/CoRN/complex/NRootCC/b_.var. + +inline cic:/CoRN/complex/NRootCC/n.var. + +inline cic:/CoRN/complex/NRootCC/nrCC3_poly''.con. + +inline cic:/CoRN/complex/NRootCC/nrCC3_a3.con. + +inline cic:/CoRN/complex/NRootCC/nrCC3_a4.con. + +inline cic:/CoRN/complex/NRootCC/nrCC3_a5.con. + +inline cic:/CoRN/complex/NRootCC/nrCC3_a6.con. + +inline cic:/CoRN/complex/NRootCC/nrCC3_poly'.con. + +(* UNEXPORTED +Hint Resolve nrCC3_a3: algebra. +*) + +inline cic:/CoRN/complex/NRootCC/nrCC3_a7.con. + +inline cic:/CoRN/complex/NRootCC/nrCC3_a8.con. + +(* UNEXPORTED +Hint Resolve nth_coeff_p_mult_c_: algebra. +*) + +(* UNEXPORTED +Hint Resolve nrCC3_a6: algebra. +*) + +inline cic:/CoRN/complex/NRootCC/nrCC3_a9.con. + +inline cic:/CoRN/complex/NRootCC/nrootCC_3_poly.con. + +(* UNEXPORTED +Hint Resolve nrCC3_a1 nrCC3_a7: algebra. +*) + +inline cic:/CoRN/complex/NRootCC/nrootCC_3_.con. + +(* UNEXPORTED +Hint Resolve nrootCC_3_: algebra. +*) + +(* UNEXPORTED +Hint Resolve calculate_Im: algebra. +*) + +inline cic:/CoRN/complex/NRootCC/nrootCC_3.con. + +(* UNEXPORTED +Hint Resolve nrCC3_a2: algebra. +*) + +(* UNEXPORTED +Hint Resolve nrCC3_a9: algebra. +*) + +inline cic:/CoRN/complex/NRootCC/nrootCC_3_degree.con. + +(* UNEXPORTED +End NRootCC_3. +*) + +(* UNEXPORTED +Section NRootCC_3'. +*) + +(*#* +%\begin{convention}% Let [c:IR], [n:nat] and [n_:(lt (0) n)]. +%\end{convention}% +*) + +inline cic:/CoRN/complex/NRootCC/c.var. + +inline cic:/CoRN/complex/NRootCC/n.var. + +inline cic:/CoRN/complex/NRootCC/n_.var. + +inline cic:/CoRN/complex/NRootCC/nrootCC_3'_poly.con. + +inline cic:/CoRN/complex/NRootCC/nrootCC_3'.con. + +inline cic:/CoRN/complex/NRootCC/nrootCC_3'_degree.con. + +(* UNEXPORTED +End NRootCC_3'. +*) + +(* UNEXPORTED +Section NRootCC_4. +*) + +(* UNEXPORTED +Section NRootCC_4_ap_real. +*) + +(*#* +%\begin{convention}% Let [a,b : IR], [b_ : (b [#] Zero)], [n : nat] and +[n_:(odd n)]; define [c := a[+I*]b]. +%\end{convention}% +*) + +inline cic:/CoRN/complex/NRootCC/a.var. + +inline cic:/CoRN/complex/NRootCC/b.var. + +inline cic:/CoRN/complex/NRootCC/b_.var. + +inline cic:/CoRN/complex/NRootCC/n.var. + +inline cic:/CoRN/complex/NRootCC/n_.var. + +(* begin hide *) + +inline cic:/CoRN/complex/NRootCC/c.con. + +(* end hide *) + +(* UNEXPORTED +Section NRootCC_4_solutions. +*) + +(* UNEXPORTED +Hint Resolve nrootCC_3: algebra. +*) + +inline cic:/CoRN/complex/NRootCC/nrCC4_a1.con. + +(*#* +%\begin{convention}% Let [r2',c2 : IR] and [r2'_ : (r2' [#] Zero)]. +%\end{convention}% +*) + +inline cic:/CoRN/complex/NRootCC/r2'.var. + +inline cic:/CoRN/complex/NRootCC/c2.var. + +inline cic:/CoRN/complex/NRootCC/r2'_.var. + +(* UNEXPORTED +Hint Resolve nrootCC_3': algebra. +*) + +inline cic:/CoRN/complex/NRootCC/nrCC4_a1'.con. + +(* UNEXPORTED +End NRootCC_4_solutions. +*) + +(* UNEXPORTED +Section NRootCC_4_equations. +*) + +(*#* +%\begin{convention}% Let [r,y2 : IR] be such that +[(r[+I*]One) [^]n[*] (CC_conj c) [-] (r[+I*][--]One) [^]n[*]c [=] Zero] +and [(y2[*] (r[^] (2) [+]One)) [^]n [=] a[^] (2) [+]b[^] (2)]. +%\end{convention}% +*) + +inline cic:/CoRN/complex/NRootCC/r.var. + +inline cic:/CoRN/complex/NRootCC/r_property.var. + +inline cic:/CoRN/complex/NRootCC/y2.var. + +inline cic:/CoRN/complex/NRootCC/y2_property.var. + +inline cic:/CoRN/complex/NRootCC/nrCC4_a2.con. + +inline cic:/CoRN/complex/NRootCC/nrCC4_a3.con. + +inline cic:/CoRN/complex/NRootCC/nrCC4_a4.con. + +inline cic:/CoRN/complex/NRootCC/nrCC4_y.con. + +inline cic:/CoRN/complex/NRootCC/y.con. + +inline cic:/CoRN/complex/NRootCC/nrCC4_x.con. + +inline cic:/CoRN/complex/NRootCC/x.con. + +inline cic:/CoRN/complex/NRootCC/nrCC4_a5.con. + +inline cic:/CoRN/complex/NRootCC/nrCC4_a6.con. + +inline cic:/CoRN/complex/NRootCC/nrCC4_z.con. + +inline cic:/CoRN/complex/NRootCC/z.con. + +inline cic:/CoRN/complex/NRootCC/nrCC4_a7.con. + +(* UNEXPORTED +Hint Resolve nrCC4_a6: algebra. +*) + +inline cic:/CoRN/complex/NRootCC/nrCC4_a8.con. + +inline cic:/CoRN/complex/NRootCC/nrCC4_a9.con. + +(* UNEXPORTED +End NRootCC_4_equations. +*) + +inline cic:/CoRN/complex/NRootCC/nrCC4_a10.con. + +inline cic:/CoRN/complex/NRootCC/nrootCC_4_ap_real.con. + +(* UNEXPORTED +End NRootCC_4_ap_real. +*) + +(* UNEXPORTED +Section NRootCC_4_ap_imag. +*) + +(*#* +%\begin{convention}% Let [a,b : IR] and [n : nat] with [a [#] Zero] +and [(odd n)]; define [c' := (a[+I*]b) [*]II := a'[+I*]b']. +%\end{convention}% +*) + +inline cic:/CoRN/complex/NRootCC/a.var. + +inline cic:/CoRN/complex/NRootCC/b.var. + +inline cic:/CoRN/complex/NRootCC/a_.var. + +inline cic:/CoRN/complex/NRootCC/n.var. + +inline cic:/CoRN/complex/NRootCC/n_.var. + +(* begin hide *) + +inline cic:/CoRN/complex/NRootCC/c'.con. + +inline cic:/CoRN/complex/NRootCC/a'.con. + +inline cic:/CoRN/complex/NRootCC/b'.con. + +(* end hide *) + +inline cic:/CoRN/complex/NRootCC/nrootCC_4_ap_real'.con. + +(* UNEXPORTED +Hint Resolve nroot_minus_I_nexp: algebra. +*) + +inline cic:/CoRN/complex/NRootCC/nrootCC_4_ap_imag.con. + +(* UNEXPORTED +End NRootCC_4_ap_imag. +*) + +inline cic:/CoRN/complex/NRootCC/nrootCC_4.con. + +(* UNEXPORTED +End NRootCC_4. +*) + +(*#* Finally, the general definition of nth root. *) + +(* UNEXPORTED +Section NRootCC_5. +*) + +inline cic:/CoRN/complex/NRootCC/nrCC_5a2.con. + +inline cic:/CoRN/complex/NRootCC/nrCC_5a3.con. + +(* UNEXPORTED +Hint Resolve nrCC_5a3: algebra. +*) + +(*#* +%\begin{convention}% Let [c : CC] with [c [#] Zero]. +%\end{convention}% +*) + +inline cic:/CoRN/complex/NRootCC/c.var. + +inline cic:/CoRN/complex/NRootCC/c_.var. + +inline cic:/CoRN/complex/NRootCC/nrCC_5a4.con. + +inline cic:/CoRN/complex/NRootCC/nrootCC_5.con. + +(* UNEXPORTED +End NRootCC_5. +*) + +(*#* Final definition *) + +inline cic:/CoRN/complex/NRootCC/CnrootCC.con. + diff --git a/matita/contribs/CoRN-Decl/devel/loeb/IDA/Ch6.ma b/matita/contribs/CoRN-Decl/devel/loeb/IDA/Ch6.ma new file mode 100644 index 000000000..c1295ea7d --- /dev/null +++ b/matita/contribs/CoRN-Decl/devel/loeb/IDA/Ch6.ma @@ -0,0 +1,651 @@ +(**************************************************************************) +(* ___ *) +(* ||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/devel/loeb/IDA/Ch6". + +(* INCLUDE +CSemiGroups +*) + +(* Remark blz 65 1 *) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/is_nullary_operation.con. + +(* INCLUDE +Zsetoid +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/is_nullary_operation_Z_0.con. + +(* Remark blz 65 2 *) + +(* INCLUDE +csetfun +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/n_ary_operation.con. + +(* INCLUDE +Nsetoid +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/plus1.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/to_plus1_strext.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/plus2.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/to_plus2_strext.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/plus3.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/on.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/ex_3_ary.con. + +(* blz 65 Example 1 *) + +(* Print Zopp_is_fun.*) + +(* Print Inv_as_un_op. +Geen goed voorbeeld: monoids komen hier al in voor en het is een heel onoverzichtelijk bewijs *) + +(* blz 65 Example 2 *) + +(* Print plus_is_bin_fun.*) + +(* Print mult_as_bin_fun.*) + +(* blz 66 Example 1 *) + +(* Print plus_is_assoc.*) + +(* Print Zplus_is_assoc.*) + +(* Print Zmult_is_assoc.*) + +(* INCLUDE +Qsetoid +*) + +(* Print Qplus_is_assoc.*) + +(* Print Qmult_is_assoc.*) + +(* blz 66 Examples 2 *) + +(* UNEXPORTED +Section p66E2. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/X.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/f.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/g.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/h.var. + +(* Check comp_as_bin_op.*) + +(* Check assoc_comp.*) + +(* UNEXPORTED +End p66E2. +*) + +(* blz 66 Example 2eblok 1 *) + +(* INCLUDE +Zsemigroup +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/Zplus_is_CSemiGroup.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/Zmult_is_CSemiGroup.con. + +(* blz 66 Example % 3 *) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/FS_is_CSemiGroup.con. + +(* blz 66 Example % 4 *) + +(* UNEXPORTED +Section p66E2b4. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/A.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/Astar.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/empty_word.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/app.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/eq_fm.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/ap_fm.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/ap_fm_irreflexive.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/ap_fm_symmetric.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/ap_fm_cotransitive.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/ap_fm_tight.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/free_csetoid_is_CSetoid.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/free_csetoid_as_csetoid.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/app_strext.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/app_as_csb_fun.con. + +(* INCLUDE +CSemiGroups +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/eq_fm_reflexive.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/Astar_is_CSemiGroup.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/Astar_as_CSemiGroup.con. + +(* UNEXPORTED +End p66E2b4. +*) + +(* Definition 5 *) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/is_unit.con. + +(* blz 67 Remark 1 *) + +(* INCLUDE +Zmonoid +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/is_unit_Z_0.con. + +(* blz 67 Remark 2 *) + +(* UNEXPORTED +Section p67R2. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/X.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/is_unit_FS_id.con. + +(* UNEXPORTED +End p67R2. +*) + +(* blz 67 Remark 3 *) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/is_unit_Astar_empty_word.con. + +(* Lemma 6 *) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/unique_unit.con. + +(* blz 67 Example 1 *) + +(* INCLUDE +Nmonoid +*) + +(* Print nat_is_CMonoid.*) + +(* INCLUDE +Zmonoid +*) + +(* Print Z_is_CMonoid.*) + +(* Print Z_mul_is_CMonoid.*) + +(* blz 67 Example 3 *) + +(* Print FS_is_CMonoid.*) + +(* blz 68 Example blok1 1 *) + +(* UNEXPORTED +Section p68E1b1. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1.ind. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_eq.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_ap.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_ap_irreflexive.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_ap_symmetric.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_ap_cotransitive.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_eq_dec.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/is_e1.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/not_M1_eq_e1_u.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_ap_tight.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_is_CSetoid.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_as_CSetoid.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_mult.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_CS_mult.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_CS_mult_strext.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_mult_as_bin_fun.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_is_CSemiGroup.con. + +(* INCLUDE +CMonoids +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/e1_is_lft_unit.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/e1_is_rht_unit.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_as_CSemiGroup.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_is_CMonoid.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_as_CMonoid.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M2_mult.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M2_CS_mult.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M2_CS_mult_strext.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M2_mult_as_bin_fun.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M2_is_CSemiGroup.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M2_as_CSemiGroup.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/e1_is_lft_unit_M2.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/e1_is_rht_unit_M2.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M2_is_CMonoid.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M2_as_CMonoid.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/two_element_CMonoids.con. + +(* UNEXPORTED +End p68E1b1. +*) + +(* blz 68 Example blok2 1 *) + +(* Print Zplus_is_commut.*) + +(* Print Zmult_is_commut. *) + +(* Print Qplus_is_commut1. *) + +(* Print Qmult_is_commut. *) + +(* Definition 9 *) + +(* INCLUDE +CMonoids +*) + +(* UNEXPORTED +Section D9S. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M2.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/dprod.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/dprod_strext.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/dprod_as_csb_fun.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/direct_product_is_CSemiGroup.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/direct_product_as_CSemiGroup.con. + +(* UNEXPORTED +End D9S. +*) + +(* UNEXPORTED +Section D9M. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M2.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/e1e2_is_rht_unit.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/e1e2_is_lft_unit.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/direct_product_is_CMonoid.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/direct_product_as_CMonoid.con. + +(* UNEXPORTED +End D9M. +*) + +(* blz 69 Example *) + +(* UNEXPORTED +Section p69E1. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/PM1M2.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/uu.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/e1u.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/ex_69.con. + +(* UNEXPORTED +End p69E1. +*) + +(* Theorem 11 *) + +(* UNEXPORTED +Section Th11. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/I.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/C.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/Cunit.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/op_pres_C.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/K.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/op_pres_K.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/K_is_Monoid.con. + +(* UNEXPORTED +End Th11. +*) + +(* Theorem 12 *) + +(* UNEXPORTED +Section Th12. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/A.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/nil_is_rht_unit.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/nil_is_lft_unit.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/free_monoid_is_CMonoid.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/free_monoid_as_CMonoid.con. + +(* UNEXPORTED +End Th12. +*) + +(* blz 70 text *) + +(* UNEXPORTED +Section p70text. +*) + +(* INCLUDE +lst2fun +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/A.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/ZerolessOne.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/to_word.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/to_word'.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/to_word'_strext.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/to_word_as_CSetoid_fun.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/to_word_bijective.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/pres_plus_to_word.con. + +(* UNEXPORTED +End p70text. +*) + +(* Definition 13 *) + +(* UNEXPORTED +Section Th13. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M2.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/morphism.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/isomorphism.con. + +(* UNEXPORTED +End Th13. +*) + +(* blz 71 Example 1 *) + +(* UNEXPORTED +Section p71E1. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/c.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/power_CMonoid.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/power_CMonoid_CSetoid.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/is_generated_by.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/f.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/f_strext.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/f_as_CSetoid_fun.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/surjective_f.con. + +(* UNEXPORTED +End p71E1. +*) + +(* UNEXPORTED +Section p71E1'. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1_is_generated_by_u.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/not_injective_f.con. + +(* UNEXPORTED +End p71E1'. +*) + +(* Print to_word_bijective.*) + +(* UNEXPORTED +Section p71E2. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/A.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/L.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/L_strext.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/L_as_CSetoid_fun.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/L_is_morphism.con. + +(* UNEXPORTED +End p71E2. +*) + +(* blz 71 Remark 1 *) + +(* UNEXPORTED +Section p71R1. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/S1.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/S2.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/morphism_of_CSemiGroups.con. + +(* UNEXPORTED +End p71R1. +*) + +(* UNEXPORTED +Section p71R2. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/automorphism.con. + +(* UNEXPORTED +End p71R2. +*) + +(* Theorem 14 *) + +(* UNEXPORTED +Section Th14. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M2.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/f.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/isof.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/iso_imp_bij.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/iso_inv.con. + +(* UNEXPORTED +End Th14. +*) + +(* blz 71 Examples 2eblok 1 *) + +(* UNEXPORTED +Section p71E2b1. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/isomorphic.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/not_isomorphic_M1_M2.con. + +(* UNEXPORTED +End p71E2b1. +*) + +(* UNEXPORTED +Section p71E2b2. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M1.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M2.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/f.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/f_strext'.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/f_as_CSetoid_fun'.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/isomorphic_PM1M2_PM2M1.con. + +(* UNEXPORTED +End p71E2b2. +*) + +(* UNEXPORTED +Section Th15. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/M.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/cm_Sum.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/D.var. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/member.con. + +(* UNEXPORTED +Implicit Arguments member [A]. +*) + +inline cic:/CoRN/devel/loeb/IDA/Ch6/Dbrack.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/Dbrack_unit.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/member_app.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/cm_Sum_app.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/op_pres_Dbrack.con. + +inline cic:/CoRN/devel/loeb/IDA/Ch6/Dbrack_as_CMonoid.con. + +(* UNEXPORTED +End Th15. +*) + diff --git a/matita/contribs/CoRN-Decl/devel/loeb/per/csetfun.ma b/matita/contribs/CoRN-Decl/devel/loeb/per/csetfun.ma new file mode 100644 index 000000000..895e95c48 --- /dev/null +++ b/matita/contribs/CoRN-Decl/devel/loeb/per/csetfun.ma @@ -0,0 +1,142 @@ +(**************************************************************************) +(* ___ *) +(* ||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/devel/loeb/per/csetfun". + +(* INCLUDE +CSetoids +*) + +(* INCLUDE +CSetoidFun +*) + +inline cic:/CoRN/devel/loeb/per/csetfun/ap_fun.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/eq_fun.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/irrefl_apfun.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/cotrans_apfun.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/ta_apfun.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/sym_apfun.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/FS_is_CSetoid.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/FS_as_CSetoid.con. + +(* UNEXPORTED +Print associative. +*) + +inline cic:/CoRN/devel/loeb/per/csetfun/comp.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/comp_as_bin_op.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/assoc_comp.con. + +(* INCLUDE +CSemiGroups +*) + +inline cic:/CoRN/devel/loeb/per/csetfun/FS_as_CSemiGroup.con. + +(* INCLUDE +CMonoids +*) + +inline cic:/CoRN/devel/loeb/per/csetfun/FS_id.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/id_is_rht_unit.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/id_is_lft_unit.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/FS_is_CMonoid.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/FS_as_CMonoid.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/PS_as_CMonoid.con. + +(* INCLUDE +CGroups +*) + +inline cic:/CoRN/devel/loeb/per/csetfun/Inv_is_bij.con. + +(* Lemma Inv_is_bij : + forall (A B : CSetoid) (f : CSetoid_fun A B) (H : bijective f), + bijective (Inv f H). +intros A B f. +case f. +unfold fun_strext in |- *. +intros f0 H5. +unfold bijective in |- *. +intro H. +elim H. +clear H. +unfold injective in |- *. +unfold surjective in |- *. +intros H0 H1. +split. +unfold Inv in |- *. +simpl in |- *. +unfold invfun in |- *. +simpl in |- *. +unfold sigT_rect in |- *. +intros a0 a1 H2. +case H1. +case (H1 a1). +intros x H3 y H4. +simpl in H3. +simpl in H4. +simpl in H0. +simpl in H1. +apply H5. +astepl a0. +astepr a1. +exact H2. + +simpl in |- *. +unfold invfun in |- *. +simpl in |- *. +unfold sigT_rect in |- *. +intros b. +exists (f0 b). +case (H1 (f0 b)). +simpl in |- *. +intros x H2. +simpl in H0. +simpl in H1. +apply not_ap_imp_eq. +red in |- *. +intro H3. +set (H4 := H0 x b H3) in *. +set (H6 := ap_imp_neq B (f0 x) (f0 b) H4) in *. +intuition. +Qed.*) + +inline cic:/CoRN/devel/loeb/per/csetfun/PS_Inv.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/Inv_as_un_op.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/PS_is_CGroup.con. + +inline cic:/CoRN/devel/loeb/per/csetfun/PS_as_CGroup.con. + +(* In het algemeen niet Abels! *) + diff --git a/matita/contribs/CoRN-Decl/devel/loeb/per/lst2fun.ma b/matita/contribs/CoRN-Decl/devel/loeb/per/lst2fun.ma new file mode 100644 index 000000000..d58280c01 --- /dev/null +++ b/matita/contribs/CoRN-Decl/devel/loeb/per/lst2fun.ma @@ -0,0 +1,48 @@ +(**************************************************************************) +(* ___ *) +(* ||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/devel/loeb/per/lst2fun". + +inline cic:/CoRN/devel/loeb/per/lst2fun/F'.con. + +inline cic:/CoRN/devel/loeb/per/lst2fun/F.ind. + +inline cic:/CoRN/devel/loeb/per/lst2fun/to_nat.con. + +(* UNEXPORTED +Implicit Arguments to_nat [n]. +*) + +(* INCLUDE +CSetoids +*) + +inline cic:/CoRN/devel/loeb/per/lst2fun/Feq.con. + +inline cic:/CoRN/devel/loeb/per/lst2fun/Fap.con. + +inline cic:/CoRN/devel/loeb/per/lst2fun/Fap_irreflexive.con. + +inline cic:/CoRN/devel/loeb/per/lst2fun/Fap_symmetric.con. + +inline cic:/CoRN/devel/loeb/per/lst2fun/Fap_cotransitive.con. + +inline cic:/CoRN/devel/loeb/per/lst2fun/Fap_tight.con. + +inline cic:/CoRN/devel/loeb/per/lst2fun/less.con. + +inline cic:/CoRN/devel/loeb/per/lst2fun/CSetoid_of_less.con. + diff --git a/matita/contribs/CoRN-Decl/fta/CC_Props.ma b/matita/contribs/CoRN-Decl/fta/CC_Props.ma new file mode 100644 index 000000000..5adea747f --- /dev/null +++ b/matita/contribs/CoRN-Decl/fta/CC_Props.ma @@ -0,0 +1,99 @@ +(**************************************************************************) +(* ___ *) +(* ||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/fta/CC_Props". + +(* $Id: CC_Props.v,v 1.3 2004/04/23 10:00:56 lcf Exp $ *) + +(* INCLUDE +AbsCC +*) + +(*#* * More properties of complex numbers +** Sequences and limits *) + +(* UNEXPORTED +Hint Resolve AbsIR_sqrt_sqr: algebra. +*) + +inline cic:/CoRN/fta/CC_Props/absCC_absIR_re.con. + +inline cic:/CoRN/fta/CC_Props/absCC_absIR_im.con. + +inline cic:/CoRN/fta/CC_Props/seq_re.con. + +inline cic:/CoRN/fta/CC_Props/seq_im.con. + +inline cic:/CoRN/fta/CC_Props/CC_Cauchy_prop.con. + +inline cic:/CoRN/fta/CC_Props/CC_CauchySeq.ind. + +inline cic:/CoRN/fta/CC_Props/re_is_Cauchy.con. + +inline cic:/CoRN/fta/CC_Props/im_is_Cauchy.con. + +inline cic:/CoRN/fta/CC_Props/CC_Cauchy2re.con. + +inline cic:/CoRN/fta/CC_Props/CC_Cauchy2im.con. + +inline cic:/CoRN/fta/CC_Props/LimCC.con. + +inline cic:/CoRN/fta/CC_Props/CC_SeqLimit.con. + +inline cic:/CoRN/fta/CC_Props/AbsSmall_sqr.con. + +inline cic:/CoRN/fta/CC_Props/AbsSmall_AbsCC.con. + +inline cic:/CoRN/fta/CC_Props/LimCC_is_lim.con. + +inline cic:/CoRN/fta/CC_Props/CC_SeqLimit_uniq.con. + +inline cic:/CoRN/fta/CC_Props/CC_SeqLimit_unq.con. + +(*#* ** Continuity for [CC] +*) + +(* UNEXPORTED +Section Continuity_for_CC. +*) + +(*#* +%\begin{convention}% Let [f : CC->CC]. +%\end{convention}% +*) + +inline cic:/CoRN/fta/CC_Props/f.var. + +(* (CSetoid_un_op CC). *) + +inline cic:/CoRN/fta/CC_Props/CCfunLim.con. + +inline cic:/CoRN/fta/CC_Props/CCcontinAt.con. + +inline cic:/CoRN/fta/CC_Props/CCcontin.con. + +inline cic:/CoRN/fta/CC_Props/CCfunLim_SeqLimit.con. + +inline cic:/CoRN/fta/CC_Props/f_seq.con. + +inline cic:/CoRN/fta/CC_Props/poly_pres_lim.con. + +(* UNEXPORTED +End Continuity_for_CC. +*) + +inline cic:/CoRN/fta/CC_Props/seq_yields_zero.con. + diff --git a/matita/contribs/CoRN-Decl/fta/CPoly_Contin1.ma b/matita/contribs/CoRN-Decl/fta/CPoly_Contin1.ma new file mode 100644 index 000000000..cee3b569c --- /dev/null +++ b/matita/contribs/CoRN-Decl/fta/CPoly_Contin1.ma @@ -0,0 +1,60 @@ +(**************************************************************************) +(* ___ *) +(* ||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/fta/CPoly_Contin1". + +(* $Id: CPoly_Contin1.v,v 1.3 2004/04/23 10:00:56 lcf Exp $ *) + +(* INCLUDE +CC_Props +*) + +(*#* * Continuity of complex polynomials +*) + +(* UNEXPORTED +Section Mult_CC_Continuous. +*) + +inline cic:/CoRN/fta/CPoly_Contin1/mult_absCC.con. + +inline cic:/CoRN/fta/CPoly_Contin1/estimate_absCC.con. + +inline cic:/CoRN/fta/CPoly_Contin1/mult_CC_contin.con. + +(* UNEXPORTED +End Mult_CC_Continuous. +*) + +(* UNEXPORTED +Section CPoly_CC_Continuous. +*) + +(*#* +%\begin{convention}% Let [g] be a polynomial over the complex numbers. +%\end{convention}% +*) + +inline cic:/CoRN/fta/CPoly_Contin1/g.var. + +inline cic:/CoRN/fta/CPoly_Contin1/cpoly_CC_contin.con. + +inline cic:/CoRN/fta/CPoly_Contin1/contin_polyCC.con. + +(* UNEXPORTED +End CPoly_CC_Continuous. +*) + diff --git a/matita/contribs/CoRN-Decl/fta/CPoly_Rev.ma b/matita/contribs/CoRN-Decl/fta/CPoly_Rev.ma new file mode 100644 index 000000000..e4e160d11 --- /dev/null +++ b/matita/contribs/CoRN-Decl/fta/CPoly_Rev.ma @@ -0,0 +1,179 @@ +(**************************************************************************) +(* ___ *) +(* ||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/fta/CPoly_Rev". + +(* $Id: CPoly_Rev.v,v 1.3 2004/04/23 10:00:56 lcf Exp $ *) + +(* INCLUDE +CPoly_Degree +*) + +(*#* * Reverse of polynomials +*) + +(* UNEXPORTED +Section Monomials. +*) + +(*#* +%\begin{convention}% Let [R] be a ring, and let [RX] be the +polynomials over this ring. +%\end{convention}% +*) + +inline cic:/CoRN/fta/CPoly_Rev/R.var. + +(* begin hide *) + +inline cic:/CoRN/fta/CPoly_Rev/RX.con. + +(* end hide *) + +inline cic:/CoRN/fta/CPoly_Rev/monom.con. + +inline cic:/CoRN/fta/CPoly_Rev/monom_coeff.con. + +inline cic:/CoRN/fta/CPoly_Rev/monom_coeff'.con. + +(* UNEXPORTED +Hint Resolve monom_coeff monom_coeff': algebra. +*) + +inline cic:/CoRN/fta/CPoly_Rev/monom_degree.con. + +inline cic:/CoRN/fta/CPoly_Rev/monom_S.con. + +(* UNEXPORTED +Hint Resolve monom_S: algebra. +*) + +inline cic:/CoRN/fta/CPoly_Rev/monom_wd_lft.con. + +(* UNEXPORTED +Hint Resolve monom_wd_lft: algebra_c. +*) + +inline cic:/CoRN/fta/CPoly_Rev/monom_mult'.con. + +(* UNEXPORTED +Hint Resolve monom_mult': algebra. +*) + +inline cic:/CoRN/fta/CPoly_Rev/monom_mult.con. + +inline cic:/CoRN/fta/CPoly_Rev/monom_sum.con. + +(* UNEXPORTED +End Monomials. +*) + +(* UNEXPORTED +Hint Resolve monom_coeff monom_coeff' monom_mult monom_sum: algebra. +*) + +(* UNEXPORTED +Implicit Arguments monom [R]. +*) + +(* UNEXPORTED +Section Poly_Reverse. +*) + +inline cic:/CoRN/fta/CPoly_Rev/R.var. + +(* begin hide *) + +inline cic:/CoRN/fta/CPoly_Rev/RX.con. + +(* end hide *) + +inline cic:/CoRN/fta/CPoly_Rev/Rev.con. + +inline cic:/CoRN/fta/CPoly_Rev/Rev_coeff.con. + +inline cic:/CoRN/fta/CPoly_Rev/Rev_coeff'.con. + +(* UNEXPORTED +Hint Resolve Rev_coeff Rev_coeff': algebra. +*) + +inline cic:/CoRN/fta/CPoly_Rev/Rev_wd.con. + +(* UNEXPORTED +Hint Resolve Rev_wd: algebra_c. +*) + +inline cic:/CoRN/fta/CPoly_Rev/Rev_rev.con. + +(* UNEXPORTED +Hint Resolve Rev_rev: algebra. +*) + +inline cic:/CoRN/fta/CPoly_Rev/Rev_degree_le.con. + +inline cic:/CoRN/fta/CPoly_Rev/Rev_degree.con. + +inline cic:/CoRN/fta/CPoly_Rev/Rev_monom.con. + +(* UNEXPORTED +Hint Resolve Rev_monom: algebra. +*) + +inline cic:/CoRN/fta/CPoly_Rev/Rev_zero.con. + +(* UNEXPORTED +Hint Resolve Rev_zero: algebra. +*) + +inline cic:/CoRN/fta/CPoly_Rev/Rev_plus.con. + +(* UNEXPORTED +Hint Resolve Rev_plus: algebra. +*) + +inline cic:/CoRN/fta/CPoly_Rev/Rev_minus.con. + +(* UNEXPORTED +Hint Resolve Rev_minus: algebra. +*) + +inline cic:/CoRN/fta/CPoly_Rev/Rev_sum0.con. + +(* UNEXPORTED +Hint Resolve Rev_sum0: algebra. +*) + +inline cic:/CoRN/fta/CPoly_Rev/Rev_sum.con. + +inline cic:/CoRN/fta/CPoly_Rev/Rev_mult.con. + +(* UNEXPORTED +End Poly_Reverse. +*) + +(* UNEXPORTED +Hint Resolve Rev_wd: algebra_c. +*) + +(* UNEXPORTED +Hint Resolve Rev_rev Rev_mult: algebra. +*) + +(* UNEXPORTED +Implicit Arguments Rev [R]. +*) + diff --git a/matita/contribs/CoRN-Decl/fta/CPoly_Shift.ma b/matita/contribs/CoRN-Decl/fta/CPoly_Shift.ma new file mode 100644 index 000000000..ba74e35fe --- /dev/null +++ b/matita/contribs/CoRN-Decl/fta/CPoly_Shift.ma @@ -0,0 +1,64 @@ +(**************************************************************************) +(* ___ *) +(* ||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/fta/CPoly_Shift". + +(* $Id: CPoly_Shift.v,v 1.4 2004/04/23 10:00:56 lcf Exp $ *) + +(* INCLUDE +CComplex +*) + +(*#* * Shifting polynomials +This can be done for [CRings] in general, but we do it here +only for [CC] because extensionality makes everything much easier, +and we only need it for [CC]. +*) + +(* UNEXPORTED +Section Poly_Shifted. +*) + +inline cic:/CoRN/fta/CPoly_Shift/Shift.con. + +inline cic:/CoRN/fta/CPoly_Shift/Shift_apply.con. + +(* UNEXPORTED +Hint Resolve Shift_apply: algebra. +*) + +inline cic:/CoRN/fta/CPoly_Shift/Shift_wdr.con. + +inline cic:/CoRN/fta/CPoly_Shift/Shift_shift.con. + +inline cic:/CoRN/fta/CPoly_Shift/Shift_mult.con. + +inline cic:/CoRN/fta/CPoly_Shift/Shift_degree_le.con. + +inline cic:/CoRN/fta/CPoly_Shift/Shift_monic.con. + +(* UNEXPORTED +End Poly_Shifted. +*) + +(* UNEXPORTED +Hint Resolve Shift_wdr: algebra_c. +*) + +(* UNEXPORTED +Hint Resolve Shift_apply Shift_shift Shift_mult: algebra. +*) + diff --git a/matita/contribs/CoRN-Decl/fta/FTA.ma b/matita/contribs/CoRN-Decl/fta/FTA.ma new file mode 100644 index 000000000..3060032a7 --- /dev/null +++ b/matita/contribs/CoRN-Decl/fta/FTA.ma @@ -0,0 +1,99 @@ +(**************************************************************************) +(* ___ *) +(* ||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/fta/FTA". + +(* $Id: FTA.v,v 1.6 2004/04/23 10:00:57 lcf Exp $ *) + +(* INCLUDE +CPoly_Rev +*) + +(* INCLUDE +FTAreg +*) + +(*#* * Fundamental Theorem of Algebra +%\begin{convention}% Let [n:nat] and [f] be a complex polynomial of +degree [(S n)]. +%\end{convention}% +*) + +(* UNEXPORTED +Section FTA_reg'. +*) + +inline cic:/CoRN/fta/FTA/f.var. + +inline cic:/CoRN/fta/FTA/n.var. + +inline cic:/CoRN/fta/FTA/f_degree.var. + +inline cic:/CoRN/fta/FTA/FTA_reg'.con. + +(* UNEXPORTED +End FTA_reg'. +*) + +(*#* +%\begin{convention}% Let [n:nat], [f] be a complex polynomial of degree +less than or equal to [(S n)] and [c] be a complex number such that +[f!c [#] Zero]. +%\end{convention}% +*) + +(* UNEXPORTED +Section FTA_1. +*) + +inline cic:/CoRN/fta/FTA/f.var. + +inline cic:/CoRN/fta/FTA/n.var. + +inline cic:/CoRN/fta/FTA/f_degree.var. + +inline cic:/CoRN/fta/FTA/c.var. + +inline cic:/CoRN/fta/FTA/f_c.var. + +inline cic:/CoRN/fta/FTA/FTA_1a.con. + +inline cic:/CoRN/fta/FTA/g.con. + +inline cic:/CoRN/fta/FTA/FTA_1b.con. + +inline cic:/CoRN/fta/FTA/FTA_1.con. + +inline cic:/CoRN/fta/FTA/FTA_1'.con. + +(* UNEXPORTED +End FTA_1. +*) + +(* UNEXPORTED +Section Fund_Thm_Alg. +*) + +inline cic:/CoRN/fta/FTA/FTA'.con. + +inline cic:/CoRN/fta/FTA/FTA.con. + +inline cic:/CoRN/fta/FTA/FTA_a_la_Henk.con. + +(* UNEXPORTED +End Fund_Thm_Alg. +*) + diff --git a/matita/contribs/CoRN-Decl/fta/FTAreg.ma b/matita/contribs/CoRN-Decl/fta/FTAreg.ma new file mode 100644 index 000000000..fed20062f --- /dev/null +++ b/matita/contribs/CoRN-Decl/fta/FTAreg.ma @@ -0,0 +1,219 @@ +(**************************************************************************) +(* ___ *) +(* ||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/fta/FTAreg". + +(* $Id: FTAreg.v,v 1.4 2004/04/23 10:00:57 lcf Exp $ *) + +(* INCLUDE +KneserLemma +*) + +(* INCLUDE +CPoly_Shift +*) + +(* INCLUDE +CPoly_Contin1 +*) + +(*#* * FTA for regular polynomials +** The Kneser sequence +%\begin{convention}% Let [n] be a positive natural number. +%\end{convention}% +*) + +(* UNEXPORTED +Section Seq_Exists. +*) + +inline cic:/CoRN/fta/FTAreg/n.var. + +inline cic:/CoRN/fta/FTAreg/lt0n.var. + +(*#* +%\begin{convention}% Let [qK] be a real between 0 and 1, with +[[ +forall (p : CCX), (monic n p) -> forall (c : IR), ((AbsCC (p!Zero)) [<] c) -> + {z:CC | ((AbsCC z) [^]n [<] c) | ((AbsCC (p!z)) [<] qK[*]c)}. +]] +Let [p] be a monic polynomial over the complex numbers with degree +[n], and let [c0] be such that [(AbsCC (p!Zero)) [<] c0]. +%\end{convention}% +*) + +(* UNEXPORTED +Section Kneser_Sequence. +*) + +inline cic:/CoRN/fta/FTAreg/qK.var. + +inline cic:/CoRN/fta/FTAreg/zltq.var. + +inline cic:/CoRN/fta/FTAreg/qlt1.var. + +inline cic:/CoRN/fta/FTAreg/q_prop.var. + +inline cic:/CoRN/fta/FTAreg/p.var. + +inline cic:/CoRN/fta/FTAreg/mp.var. + +inline cic:/CoRN/fta/FTAreg/c0.var. + +inline cic:/CoRN/fta/FTAreg/p0ltc0.var. + +inline cic:/CoRN/fta/FTAreg/Knes_tup.ind. + +inline cic:/CoRN/fta/FTAreg/Knes_tupp.ind. + +inline cic:/CoRN/fta/FTAreg/Knes_fun.con. + +inline cic:/CoRN/fta/FTAreg/Knes_fun_it.con. + +inline cic:/CoRN/fta/FTAreg/sK.con. + +inline cic:/CoRN/fta/FTAreg/sK_c.con. + +inline cic:/CoRN/fta/FTAreg/sK_c0.con. + +inline cic:/CoRN/fta/FTAreg/sK_prop1.con. + +inline cic:/CoRN/fta/FTAreg/sK_it.con. + +inline cic:/CoRN/fta/FTAreg/sK_prop2.con. + +(* UNEXPORTED +End Kneser_Sequence. +*) + +(* UNEXPORTED +Section Seq_Exists_Main. +*) + +(*#* **Main results +*) + +inline cic:/CoRN/fta/FTAreg/seq_exists.con. + +(* UNEXPORTED +End Seq_Exists_Main. +*) + +(* UNEXPORTED +End Seq_Exists. +*) + +(* UNEXPORTED +Section N_Exists. +*) + +inline cic:/CoRN/fta/FTAreg/n.var. + +inline cic:/CoRN/fta/FTAreg/lt0n.var. + +inline cic:/CoRN/fta/FTAreg/q.var. + +inline cic:/CoRN/fta/FTAreg/zleq.var. + +inline cic:/CoRN/fta/FTAreg/qlt1.var. + +inline cic:/CoRN/fta/FTAreg/c.var. + +inline cic:/CoRN/fta/FTAreg/zltc.var. + +(* begin hide *) + +inline cic:/CoRN/fta/FTAreg/q_.con. + +(* end hide *) + +inline cic:/CoRN/fta/FTAreg/e.var. + +inline cic:/CoRN/fta/FTAreg/zlte.var. + +inline cic:/CoRN/fta/FTAreg/N_exists.con. + +(* UNEXPORTED +End N_Exists. +*) + +(* UNEXPORTED +Section Seq_is_CC_CAuchy. +*) + +(*#* ** The Kneser sequence is Cauchy in [CC] *) + +inline cic:/CoRN/fta/FTAreg/n.var. + +inline cic:/CoRN/fta/FTAreg/lt0n.var. + +inline cic:/CoRN/fta/FTAreg/q.var. + +inline cic:/CoRN/fta/FTAreg/zleq.var. + +inline cic:/CoRN/fta/FTAreg/qlt1.var. + +inline cic:/CoRN/fta/FTAreg/c.var. + +inline cic:/CoRN/fta/FTAreg/zltc.var. + +(*#* %\begin{convention}% Let: + - [q_] prove [q[-]One [#] Zero] + - [nrtq := NRoot q n] + - [nrtc := Nroot c n] + - [nrtqlt1] prove [nrtq [<] One] + - [nrtq_] prove [nrtq[-]One [#] Zero] + +%\end{convention}% *) + +(* begin hide *) + +inline cic:/CoRN/fta/FTAreg/q_.con. + +inline cic:/CoRN/fta/FTAreg/nrtq.con. + +inline cic:/CoRN/fta/FTAreg/nrtc.con. + +inline cic:/CoRN/fta/FTAreg/nrtqlt1.con. + +inline cic:/CoRN/fta/FTAreg/nrtq_.con. + +(* end hide *) + +inline cic:/CoRN/fta/FTAreg/zlt_nrtq.con. + +inline cic:/CoRN/fta/FTAreg/zlt_nrtc.con. + +inline cic:/CoRN/fta/FTAreg/nrt_pow.con. + +inline cic:/CoRN/fta/FTAreg/abs_pow_ltRe.con. + +inline cic:/CoRN/fta/FTAreg/abs_pow_ltIm.con. + +inline cic:/CoRN/fta/FTAreg/SublemmaRe.con. + +inline cic:/CoRN/fta/FTAreg/SublemmaIm.con. + +inline cic:/CoRN/fta/FTAreg/seq_is_CC_Cauchy.con. + +(* UNEXPORTED +End Seq_is_CC_CAuchy. +*) + +inline cic:/CoRN/fta/FTAreg/FTA_monic.con. + +inline cic:/CoRN/fta/FTAreg/FTA_reg.con. + diff --git a/matita/contribs/CoRN-Decl/fta/KeyLemma.ma b/matita/contribs/CoRN-Decl/fta/KeyLemma.ma new file mode 100644 index 000000000..00a0b30c4 --- /dev/null +++ b/matita/contribs/CoRN-Decl/fta/KeyLemma.ma @@ -0,0 +1,175 @@ +(**************************************************************************) +(* ___ *) +(* ||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/fta/KeyLemma". + +(* $Id: KeyLemma.v,v 1.5 2004/04/23 10:00:57 lcf Exp $ *) + +(* INCLUDE +ZArith +*) + +(* INCLUDE +Compare +*) + +(* INCLUDE +NRootIR +*) + +(*#* printing p3m %\ensuremath{\frac13\hat{\ }}% *) + +(*#* printing Halfeps %\ensuremath{\frac\varepsilon2}% *) + +(*#* * Technical lemmas for the FTA +** Key Lemma +*) + +(* UNEXPORTED +Section Key_Lemma. +*) + +(*#* +%\begin{convention}% Let [a:nat->IR] and [n:nat] such that [0 < n], +[forall (k : nat) (Zero [<=] (a k))], [(a n) [=] One] and [a_0 : IR], +and [eps : IR] such that [(Zero [<] eps)] and [(eps [<=] a_0)]. +%\end{convention}% +*) + +inline cic:/CoRN/fta/KeyLemma/a.var. + +inline cic:/CoRN/fta/KeyLemma/n.var. + +inline cic:/CoRN/fta/KeyLemma/gt_n_0.var. + +inline cic:/CoRN/fta/KeyLemma/eps.var. + +inline cic:/CoRN/fta/KeyLemma/eps_pos.var. + +inline cic:/CoRN/fta/KeyLemma/a_nonneg.var. + +inline cic:/CoRN/fta/KeyLemma/a_n_1.var. + +inline cic:/CoRN/fta/KeyLemma/a_0.var. + +inline cic:/CoRN/fta/KeyLemma/eps_le_a_0.var. + +inline cic:/CoRN/fta/KeyLemma/a_0_eps_nonneg.con. + +inline cic:/CoRN/fta/KeyLemma/a_0_eps_fuzz.con. + +inline cic:/CoRN/fta/KeyLemma/lem_1a.con. + +inline cic:/CoRN/fta/KeyLemma/lem_1b.con. + +inline cic:/CoRN/fta/KeyLemma/lem_1c.con. + +inline cic:/CoRN/fta/KeyLemma/lem_1.con. + +inline cic:/CoRN/fta/KeyLemma/p3m.con. + +inline cic:/CoRN/fta/KeyLemma/p3m_pos.con. + +inline cic:/CoRN/fta/KeyLemma/p3m_S.con. + +(* UNEXPORTED +Hint Resolve p3m_S: algebra. +*) + +inline cic:/CoRN/fta/KeyLemma/p3m_P.con. + +inline cic:/CoRN/fta/KeyLemma/p3m_aux.con. + +inline cic:/CoRN/fta/KeyLemma/p3m_pow.con. + +(* UNEXPORTED +Hint Resolve p3m_aux: algebra. +*) + +inline cic:/CoRN/fta/KeyLemma/p3m_0.con. + +(* UNEXPORTED +Hint Resolve p3m_0: algebra. +*) + +inline cic:/CoRN/fta/KeyLemma/third_pos.con. + +(* UNEXPORTED +Hint Resolve third_pos: algebra. +*) + +inline cic:/CoRN/fta/KeyLemma/third_less_one.con. + +(* UNEXPORTED +Hint Resolve third_less_one: algebra. +*) + +inline cic:/CoRN/fta/KeyLemma/p3m_mon.con. + +inline cic:/CoRN/fta/KeyLemma/p3m_mon'.con. + +inline cic:/CoRN/fta/KeyLemma/p3m_small.con. + +inline cic:/CoRN/fta/KeyLemma/p3m_smaller.con. + +inline cic:/CoRN/fta/KeyLemma/chfun.con. + +inline cic:/CoRN/fta/KeyLemma/chfun_1.con. + +inline cic:/CoRN/fta/KeyLemma/chfun_2.con. + +inline cic:/CoRN/fta/KeyLemma/chfun_3.con. + +inline cic:/CoRN/fta/KeyLemma/chfun_4.con. + +inline cic:/CoRN/fta/KeyLemma/Halfeps.con. + +inline cic:/CoRN/fta/KeyLemma/Halfeps_pos.con. + +inline cic:/CoRN/fta/KeyLemma/Halfeps_Halfeps.con. + +(* UNEXPORTED +Hint Resolve Halfeps_Halfeps: algebra. +*) + +inline cic:/CoRN/fta/KeyLemma/Halfeps_eps.con. + +inline cic:/CoRN/fta/KeyLemma/Halfeps_trans.con. + +inline cic:/CoRN/fta/KeyLemma/Key_1a.con. + +(* UNEXPORTED +Hint Resolve Key_1a: algebra. +*) + +inline cic:/CoRN/fta/KeyLemma/Key_1b.con. + +inline cic:/CoRN/fta/KeyLemma/Key_1.con. + +inline cic:/CoRN/fta/KeyLemma/Key_2.con. + +inline cic:/CoRN/fta/KeyLemma/Key.con. + +(* end hide *) + +(* UNEXPORTED +End Key_Lemma. +*) + +(* UNEXPORTED +Hint Resolve p3m_S p3m_P p3m_pow: algebra. +*) + diff --git a/matita/contribs/CoRN-Decl/fta/KneserLemma.ma b/matita/contribs/CoRN-Decl/fta/KneserLemma.ma new file mode 100644 index 000000000..84cd55eb6 --- /dev/null +++ b/matita/contribs/CoRN-Decl/fta/KneserLemma.ma @@ -0,0 +1,149 @@ +(**************************************************************************) +(* ___ *) +(* ||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/fta/KneserLemma". + +(* $Id: KneserLemma.v,v 1.7 2004/04/23 10:00:57 lcf Exp $ *) + +(*#* printing Smallest %\ensuremath{\frac13^{2n^2+n}}% *) + +(*#* printing eta_0 %\ensuremath{\eta_0}% #η0# *) + +(* INCLUDE +NRootCC +*) + +(* INCLUDE +AbsCC +*) + +(* INCLUDE +MainLemma +*) + +(*#* ** Kneser Lemma *) + +(* UNEXPORTED +Section Kneser_Lemma. +*) + +(*#* +%\begin{convention}% Let [b : nat->CC], [n : nat] and [c : IR] +such that [0 < n], [b_0 := b 0], [b_n := (b n) [=] One] and +[(AbsCC b_0) [<] c]. +%\end{convention}% +*) + +inline cic:/CoRN/fta/KneserLemma/b.var. + +inline cic:/CoRN/fta/KneserLemma/n.var. + +inline cic:/CoRN/fta/KneserLemma/gt_n_0.var. + +(* begin hide *) + +inline cic:/CoRN/fta/KneserLemma/b_0.con. + +inline cic:/CoRN/fta/KneserLemma/b_n.con. + +(* end hide *) + +inline cic:/CoRN/fta/KneserLemma/b_n_1.var. + +inline cic:/CoRN/fta/KneserLemma/c.var. + +inline cic:/CoRN/fta/KneserLemma/b_0_lt_c.var. + +(*#* +%\begin{convention}% We define the following local abbreviations: + - [two_n := 2 * n] + - [Small := p3m n] + - [Smaller := p3m (two_n * n)] + - [Smallest := Small[*]Smaller] + - [q := One[-]Smallest] + - [a i := AbsCC (b i)] + +%\end{convention}% +*) + +(* begin hide *) + +inline cic:/CoRN/fta/KneserLemma/two_n.con. + +inline cic:/CoRN/fta/KneserLemma/Small.con. + +inline cic:/CoRN/fta/KneserLemma/Smaller.con. + +inline cic:/CoRN/fta/KneserLemma/Smallest.con. + +inline cic:/CoRN/fta/KneserLemma/q.con. + +(* end hide *) + +inline cic:/CoRN/fta/KneserLemma/b_0'_exists.con. + +inline cic:/CoRN/fta/KneserLemma/eta_0.con. + +inline cic:/CoRN/fta/KneserLemma/eta_0_pos.con. + +inline cic:/CoRN/fta/KneserLemma/eta_exists.con. + +inline cic:/CoRN/fta/KneserLemma/eps_exists_1.con. + +(* less_cotransitive_unfolded on + {Zero [<] y[/]x[//]H3[-]Half[*]eps} + + {y[/]x[//]H3[-]Half[*]eps [<] Half[*]eps}. *) + +inline cic:/CoRN/fta/KneserLemma/eps_exists.con. + +(* begin hide *) + +inline cic:/CoRN/fta/KneserLemma/a.con. + +(* end hide *) + +inline cic:/CoRN/fta/KneserLemma/z_exists.con. + +(* end hide *) + +inline cic:/CoRN/fta/KneserLemma/Kneser_1'.con. + +inline cic:/CoRN/fta/KneserLemma/Kneser_1''.con. + +inline cic:/CoRN/fta/KneserLemma/Kneser_1.con. + +inline cic:/CoRN/fta/KneserLemma/Kneser_2a.con. + +inline cic:/CoRN/fta/KneserLemma/Kneser_2b.con. + +(* end hide *) + +inline cic:/CoRN/fta/KneserLemma/Kneser_2c.con. + +(* end hide *) + +inline cic:/CoRN/fta/KneserLemma/Kneser_2.con. + +(* end hide *) + +inline cic:/CoRN/fta/KneserLemma/Kneser_3.con. + +(* UNEXPORTED +End Kneser_Lemma. +*) + +inline cic:/CoRN/fta/KneserLemma/Kneser.con. + diff --git a/matita/contribs/CoRN-Decl/fta/MainLemma.ma b/matita/contribs/CoRN-Decl/fta/MainLemma.ma new file mode 100644 index 000000000..b180a093f --- /dev/null +++ b/matita/contribs/CoRN-Decl/fta/MainLemma.ma @@ -0,0 +1,130 @@ +(**************************************************************************) +(* ___ *) +(* ||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/fta/MainLemma". + +(* $Id: MainLemma.v,v 1.3 2004/04/23 10:00:57 lcf Exp $ *) + +(*#* printing two_n %\ensuremath{2n}% #2n# *) + +(*#* printing Small %\ensuremath{\frac13^n}% *) + +(*#* printing Smaller %\ensuremath{\frac13^{2n^2}}% *) + +(* INCLUDE +CSumsReals +*) + +(* INCLUDE +KeyLemma +*) + +(*#* ** Main Lemma +*) + +(* UNEXPORTED +Section Main_Lemma. +*) + +(*#* +%\begin{convention}% +Let [a : nat->IR], [n : nat], [a_0 : IR] and [eps : IR] such that [0 < n], +[(Zero [<] eps)], [forall (k : nat)(Zero [<=] (a k))], [(a n) [=] One], and +[(eps [<=] a_0)]. +%\end{convention}% +*) + +inline cic:/CoRN/fta/MainLemma/a.var. + +inline cic:/CoRN/fta/MainLemma/n.var. + +inline cic:/CoRN/fta/MainLemma/gt_n_0.var. + +inline cic:/CoRN/fta/MainLemma/eps.var. + +inline cic:/CoRN/fta/MainLemma/eps_pos.var. + +inline cic:/CoRN/fta/MainLemma/a_nonneg.var. + +inline cic:/CoRN/fta/MainLemma/a_n_1.var. + +inline cic:/CoRN/fta/MainLemma/a_0.var. + +inline cic:/CoRN/fta/MainLemma/eps_le_a_0.var. + +inline cic:/CoRN/fta/MainLemma/a_0_pos.con. + +(*#* +%\begin{convention}% We define the following local abbreviations: + - [two_n := 2 * n] + - [Small := p3m n] + - [Smaller := p3m (two_n * n)] + +%\end{convention}% +*) + +(* begin hide *) + +inline cic:/CoRN/fta/MainLemma/two_n.con. + +inline cic:/CoRN/fta/MainLemma/Small.con. + +inline cic:/CoRN/fta/MainLemma/Smaller.con. + +(* end hide *) + +inline cic:/CoRN/fta/MainLemma/Main_1a'.con. + +(* end hide *) + +inline cic:/CoRN/fta/MainLemma/Main_1b'.con. + +(* end hide *) + +inline cic:/CoRN/fta/MainLemma/Main_1a.con. + +(* end hide *) + +inline cic:/CoRN/fta/MainLemma/Main_1b.con. + +(* end hide *) + +inline cic:/CoRN/fta/MainLemma/Main_1.con. + +(* end hide *) + +inline cic:/CoRN/fta/MainLemma/Main_2'.con. + +inline cic:/CoRN/fta/MainLemma/Main_2.con. + +(* end hide *) + +inline cic:/CoRN/fta/MainLemma/Main_3a.con. + +(* end hide *) + +inline cic:/CoRN/fta/MainLemma/Main_3.con. + +(* end hide *) + +inline cic:/CoRN/fta/MainLemma/Main.con. + +(* end hide *) + +(* UNEXPORTED +End Main_Lemma. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/COrdLemmas.ma b/matita/contribs/CoRN-Decl/ftc/COrdLemmas.ma new file mode 100644 index 000000000..fc8a38805 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/COrdLemmas.ma @@ -0,0 +1,123 @@ +(**************************************************************************) +(* ___ *) +(* ||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/COrdLemmas". + +(* $Id: COrdLemmas.v,v 1.2 2004/04/23 10:00:57 lcf Exp $ *) + +(* INCLUDE +COrdCauchy +*) + +(* UNEXPORTED +Section Lemmas. +*) + +(*#* *Lemmas for Integration + +Here we include several lemmas valid in any ordered field [F] which +are useful for integration. + +** Merging orders + +We first prove that any two strictly ordered sets of points which have +an empty intersection can be ordered as one (this will be the core of +the proof that any two partitions with no common point have a common +refinement). +*) + +inline cic:/CoRN/ftc/COrdLemmas/F.var. + +inline cic:/CoRN/ftc/COrdLemmas/om_fun_lt.con. + +inline cic:/CoRN/ftc/COrdLemmas/om_fun.con. + +inline cic:/CoRN/ftc/COrdLemmas/om_fun_1.con. + +inline cic:/CoRN/ftc/COrdLemmas/om_fun_2a.con. + +inline cic:/CoRN/ftc/COrdLemmas/om_fun_2.con. + +inline cic:/CoRN/ftc/COrdLemmas/om_fun_3a.con. + +inline cic:/CoRN/ftc/COrdLemmas/om_fun_3b.con. + +inline cic:/CoRN/ftc/COrdLemmas/om_fun_4a.con. + +inline cic:/CoRN/ftc/COrdLemmas/om_fun_4b.con. + +inline cic:/CoRN/ftc/COrdLemmas/om_fun_4c.con. + +inline cic:/CoRN/ftc/COrdLemmas/om_fun_4d.con. + +(* begin hide *) + +inline cic:/CoRN/ftc/COrdLemmas/f.var. + +inline cic:/CoRN/ftc/COrdLemmas/f0.var. + +inline cic:/CoRN/ftc/COrdLemmas/f_mon.var. + +inline cic:/CoRN/ftc/COrdLemmas/h.var. + +(* end hide *) + +(*#* ** Summations +Also, some technical stuff on sums. The first lemma relates two +different kinds of sums; the other two ones are variations, where the +structure of the arguments is analyzed in more detail. +*) + +(* begin show *) + +inline cic:/CoRN/ftc/COrdLemmas/Sumx_Sum_Sum + (* end show *) + (* begin hide *).con. + +(* end hide *) + +(* begin show *) + +inline cic:/CoRN/ftc/COrdLemmas/str_Sumx_Sum_Sum + (* end show *) + (* begin hide *).con. + +(* UNEXPORTED +End Lemmas. +*) + +(* UNEXPORTED +Section More_Lemmas. +*) + +inline cic:/CoRN/ftc/COrdLemmas/f'.con. + +(* end hide *) + +inline cic:/CoRN/ftc/COrdLemmas/F.var. + +(* begin show *) + +inline cic:/CoRN/ftc/COrdLemmas/str_Sumx_Sum_Sum' + (* end show *) + (* begin hide *).con. + +(* end hide *) + +(* UNEXPORTED +End More_Lemmas. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/CalculusTheorems.ma b/matita/contribs/CoRN-Decl/ftc/CalculusTheorems.ma new file mode 100644 index 000000000..57fcf425c --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/CalculusTheorems.ma @@ -0,0 +1,125 @@ +(**************************************************************************) +(* ___ *) +(* ||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/CalculusTheorems". + +(* $Id: CalculusTheorems.v,v 1.6 2004/04/23 10:00:57 lcf Exp $ *) + +(* INCLUDE +Rolle +*) + +(* INCLUDE +DiffTactics3 +*) + +(* UNEXPORTED +Opaque Min Max. +*) + +(* UNEXPORTED +Section Various_Theorems. +*) + +(*#* *Calculus Theorems + +This file is intended to present a collection of miscellaneous, mostly +technical results in differential calculus that are interesting or +useful in future work. + +We begin with some properties of continuous functions. Every +continuous function commutes with the limit of a numerical sequence +(sometimes called Heine continuity). +*) + +inline cic:/CoRN/ftc/CalculusTheorems/Continuous_imp_comm_Lim.con. + +(*#* +This is a tricky result: if [F] is continuous and positive in both [[a,b]] +and [(b,c]], then it is positive in [[a,c]]. +*) + +inline cic:/CoRN/ftc/CalculusTheorems/Continuous_imp_pos.con. + +(*#* +Similar results for increasing functions: +*) + +inline cic:/CoRN/ftc/CalculusTheorems/strict_inc_glues.con. + +inline cic:/CoRN/ftc/CalculusTheorems/strict_inc_glues'.con. + +inline cic:/CoRN/ftc/CalculusTheorems/strict_dec_glues.con. + +inline cic:/CoRN/ftc/CalculusTheorems/strict_dec_glues'.con. + +(*#* More on glueing intervals. *) + +inline cic:/CoRN/ftc/CalculusTheorems/olor_pos_clor_nonneg.con. + +inline cic:/CoRN/ftc/CalculusTheorems/olor_pos_olcr_nonneg.con. + +inline cic:/CoRN/ftc/CalculusTheorems/olor_pos_clcr_nonneg.con. + +(*#* +Any function that has the null function as its derivative must be constant. +*) + +inline cic:/CoRN/ftc/CalculusTheorems/FConst_prop.con. + +(*#* As a corollary, two functions with the same derivative must differ +by a constant. +*) + +inline cic:/CoRN/ftc/CalculusTheorems/Feq_crit_with_const.con. + +(*#* This yields the following known result: any differential equation +of the form [f'=g] with initial condition [f(a) [=] b] has a unique solution. +*) + +inline cic:/CoRN/ftc/CalculusTheorems/Feq_criterium.con. + +(*#* +Finally, a well known result: any function with a (strictly) positive +derivative is (strictly) increasing. Although the two lemmas look +quite similar the proofs are completely different, both from the +formalization and from the mathematical point of view. +*) + +inline cic:/CoRN/ftc/CalculusTheorems/Derivative_imp_resp_less.con. + +inline cic:/CoRN/ftc/CalculusTheorems/Derivative_imp_resp_leEq.con. + +inline cic:/CoRN/ftc/CalculusTheorems/Derivative_imp_resp_less'.con. + +(*#* From these results we can finally prove that exponentiation to a +real power preserves the less or equal than relation! +*) + +(* UNEXPORTED +Opaque nring. +*) + +(* UNEXPORTED +Transparent nring. +*) + +inline cic:/CoRN/ftc/CalculusTheorems/nexp_resp_leEq_odd.con. + +(* UNEXPORTED +End Various_Theorems. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/Composition.ma b/matita/contribs/CoRN-Decl/ftc/Composition.ma new file mode 100644 index 000000000..81debe755 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/Composition.ma @@ -0,0 +1,403 @@ +(**************************************************************************) +(* ___ *) +(* ||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/Composition". + +(* $Id: Composition.v,v 1.4 2004/04/23 10:00:58 lcf Exp $ *) + +(* INCLUDE +MoreFunctions +*) + +(* UNEXPORTED +Section Maps_into_Compacts. +*) + +(* UNEXPORTED +Section Part_Funct. +*) + +(*#* *Composition + +Preservation results for functional composition are treated in this +separate file. We start by defining some auxiliary predicates, and +then prove the preservation of continuity through composition and the +chain rule for differentiation, both for compact and arbitrary +intervals. + +%\begin{convention}% Throughout this section: +- [a, b : IR] and [I] will denote [[a,b]]; +- [c, d : IR] and [J] will denote [[c,d]]; +- [F, F', G, G'] will be partial functions. + +%\end{convention}% + +** Maps into Compacts + +Both continuity and differentiability proofs require extra hypothesis +on the functions involved---namely, that every compact interval is +mapped into another compact interval. We define this concept for +partial functions, and prove some trivial results. +*) + +inline cic:/CoRN/ftc/Composition/F.var. + +inline cic:/CoRN/ftc/Composition/G.var. + +inline cic:/CoRN/ftc/Composition/a.var. + +inline cic:/CoRN/ftc/Composition/b.var. + +inline cic:/CoRN/ftc/Composition/Hab.var. + +inline cic:/CoRN/ftc/Composition/c.var. + +inline cic:/CoRN/ftc/Composition/d.var. + +inline cic:/CoRN/ftc/Composition/Hcd.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Composition/I.con. + +(* end hide *) + +(* begin show *) + +inline cic:/CoRN/ftc/Composition/Hf.var. + +(* end show *) + +inline cic:/CoRN/ftc/Composition/maps_into_compacts.con. + +(* begin show *) + +inline cic:/CoRN/ftc/Composition/maps.var. + +(* end show *) + +inline cic:/CoRN/ftc/Composition/maps_lemma'.con. + +inline cic:/CoRN/ftc/Composition/maps_lemma.con. + +inline cic:/CoRN/ftc/Composition/maps_lemma_less.con. + +inline cic:/CoRN/ftc/Composition/maps_lemma_inc.con. + +(* UNEXPORTED +End Part_Funct. +*) + +(* UNEXPORTED +End Maps_into_Compacts. +*) + +(* UNEXPORTED +Section Mapping. +*) + +(*#* +As was the case for division of partial functions, this condition +completely characterizes the domain of the composite function. +*) + +inline cic:/CoRN/ftc/Composition/F.var. + +inline cic:/CoRN/ftc/Composition/G.var. + +inline cic:/CoRN/ftc/Composition/a.var. + +inline cic:/CoRN/ftc/Composition/b.var. + +inline cic:/CoRN/ftc/Composition/Hab.var. + +inline cic:/CoRN/ftc/Composition/c.var. + +inline cic:/CoRN/ftc/Composition/d.var. + +inline cic:/CoRN/ftc/Composition/Hcd.var. + +(* begin show *) + +inline cic:/CoRN/ftc/Composition/Hf.var. + +inline cic:/CoRN/ftc/Composition/Hg.var. + +inline cic:/CoRN/ftc/Composition/maps.var. + +(* end show *) + +inline cic:/CoRN/ftc/Composition/included_comp.con. + +(* UNEXPORTED +End Mapping. +*) + +(* UNEXPORTED +Section Interval_Continuity. +*) + +(*#* **Continuity + +We now prove that the composition of two continuous partial functions is continuous. +*) + +inline cic:/CoRN/ftc/Composition/a.var. + +inline cic:/CoRN/ftc/Composition/b.var. + +inline cic:/CoRN/ftc/Composition/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Composition/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Composition/c.var. + +inline cic:/CoRN/ftc/Composition/d.var. + +inline cic:/CoRN/ftc/Composition/Hcd.var. + +inline cic:/CoRN/ftc/Composition/F.var. + +inline cic:/CoRN/ftc/Composition/G.var. + +(* begin show *) + +inline cic:/CoRN/ftc/Composition/contF.var. + +inline cic:/CoRN/ftc/Composition/contG.var. + +inline cic:/CoRN/ftc/Composition/Hmap.var. + +(* end show *) + +inline cic:/CoRN/ftc/Composition/Continuous_I_comp.con. + +(* UNEXPORTED +End Interval_Continuity. +*) + +(* UNEXPORTED +Section Derivative. +*) + +(*#* **Derivative + +We now work with the derivative relation and prove the chain rule for partial functions. +*) + +inline cic:/CoRN/ftc/Composition/F.var. + +inline cic:/CoRN/ftc/Composition/F'.var. + +inline cic:/CoRN/ftc/Composition/G.var. + +inline cic:/CoRN/ftc/Composition/G'.var. + +inline cic:/CoRN/ftc/Composition/a.var. + +inline cic:/CoRN/ftc/Composition/b.var. + +inline cic:/CoRN/ftc/Composition/Hab'.var. + +inline cic:/CoRN/ftc/Composition/c.var. + +inline cic:/CoRN/ftc/Composition/d.var. + +inline cic:/CoRN/ftc/Composition/Hcd'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Composition/Hab.con. + +inline cic:/CoRN/ftc/Composition/Hcd.con. + +inline cic:/CoRN/ftc/Composition/I.con. + +(* end hide *) + +(* begin show *) + +inline cic:/CoRN/ftc/Composition/derF.var. + +inline cic:/CoRN/ftc/Composition/derG.var. + +inline cic:/CoRN/ftc/Composition/Hmap.var. + +(* end show *) + +inline cic:/CoRN/ftc/Composition/included_comp'.con. + +inline cic:/CoRN/ftc/Composition/maps'.con. + +inline cic:/CoRN/ftc/Composition/Derivative_I_comp.con. + +(*#* +The next lemma will be useful when we move on to differentiability. +*) + +inline cic:/CoRN/ftc/Composition/Diffble_I_comp_aux.con. + +(* UNEXPORTED +End Derivative. +*) + +(* UNEXPORTED +Section Differentiability. +*) + +(*#* **Differentiability + +Finally, we move on to differentiability. +*) + +inline cic:/CoRN/ftc/Composition/F.var. + +inline cic:/CoRN/ftc/Composition/G.var. + +inline cic:/CoRN/ftc/Composition/a.var. + +inline cic:/CoRN/ftc/Composition/b.var. + +inline cic:/CoRN/ftc/Composition/Hab'.var. + +inline cic:/CoRN/ftc/Composition/c.var. + +inline cic:/CoRN/ftc/Composition/d.var. + +inline cic:/CoRN/ftc/Composition/Hcd'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Composition/Hab.con. + +inline cic:/CoRN/ftc/Composition/Hcd.con. + +inline cic:/CoRN/ftc/Composition/I.con. + +(* end hide *) + +(* begin show *) + +inline cic:/CoRN/ftc/Composition/diffF.var. + +inline cic:/CoRN/ftc/Composition/diffG.var. + +inline cic:/CoRN/ftc/Composition/Hmap.var. + +(* end show *) + +inline cic:/CoRN/ftc/Composition/Diffble_I_comp.con. + +(* UNEXPORTED +End Differentiability. +*) + +(* UNEXPORTED +Section Generalized_Intervals. +*) + +(*#* **Generalizations + +We now generalize this results to arbitrary intervals. We begin by generalizing the notion of mapping compacts into compacts. + +%\begin{convention}% We assume [I,J] to be proper intervals. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Composition/I.var. + +inline cic:/CoRN/ftc/Composition/J.var. + +inline cic:/CoRN/ftc/Composition/pI.var. + +inline cic:/CoRN/ftc/Composition/pJ.var. + +inline cic:/CoRN/ftc/Composition/maps_compacts_into.con. + +(*#* +Now everything comes naturally: +*) + +inline cic:/CoRN/ftc/Composition/comp_inc_lemma.con. + +inline cic:/CoRN/ftc/Composition/F.var. + +inline cic:/CoRN/ftc/Composition/F'.var. + +inline cic:/CoRN/ftc/Composition/G.var. + +inline cic:/CoRN/ftc/Composition/G'.var. + +(* begin show *) + +inline cic:/CoRN/ftc/Composition/Hmap.var. + +(* end show *) + +inline cic:/CoRN/ftc/Composition/Continuous_comp.con. + +(* begin show *) + +inline cic:/CoRN/ftc/Composition/Hmap'.var. + +(* end show *) + +inline cic:/CoRN/ftc/Composition/Derivative_comp.con. + +(* UNEXPORTED +End Generalized_Intervals. +*) + +(* UNEXPORTED +Section Corollaries. +*) + +(*#* +Finally, some criteria to prove that a function with a specific domain maps compacts into compacts: +*) + +inline cic:/CoRN/ftc/Composition/positive_fun.con. + +inline cic:/CoRN/ftc/Composition/negative_fun.con. + +inline cic:/CoRN/ftc/Composition/positive_imp_maps_compacts_into.con. + +inline cic:/CoRN/ftc/Composition/negative_imp_maps_compacts_into.con. + +inline cic:/CoRN/ftc/Composition/Continuous_imp_maps_compacts_into.con. + +(*#* +As a corollary, we get the generalization of differentiability property. +*) + +inline cic:/CoRN/ftc/Composition/Diffble_comp.con. + +(* UNEXPORTED +End Corollaries. +*) + +(* UNEXPORTED +Hint Immediate included_comp: included. +*) + +(* UNEXPORTED +Hint Immediate Continuous_I_comp Continuous_comp: continuous. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/Continuity.ma b/matita/contribs/CoRN-Decl/ftc/Continuity.ma new file mode 100644 index 000000000..2ea7152a0 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/Continuity.ma @@ -0,0 +1,409 @@ +(**************************************************************************) +(* ___ *) +(* ||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/Continuity". + +(* $Id: Continuity.v,v 1.6 2004/04/23 10:00:58 lcf Exp $ *) + +(*#* printing Norm_Funct %\ensuremath{\|\cdot\|}% *) + +(* INCLUDE +NRootIR +*) + +(* INCLUDE +FunctSums +*) + +(* UNEXPORTED +Section Definitions_and_Basic_Results. +*) + +(*#* *Continuity + +Constructively, continuity is the most fundamental property of any +function---so strongly that no example is known of a constructive +function that is not continuous. However, the classical definition of +continuity is not good for our purposes, as it is not true, for +example, that a function which is continuous in a compact interval is +uniformly continuous in that same interval (for a discussion of this +see Bishop 1967). Thus, our notion of continuity will be the uniform +one#. #%\footnote{%Similar remarks apply to convergence of sequences +of functions, which we will define ahead, and elsewhere; we will +refrain from discussing this issue at those places.%}.% + +%\begin{convention}% Throughout this section, [a] and [b] will be real +numbers, [I] will denote the compact interval [[a,b]] and +[F, G, H] will denote arbitrary partial functions with domains +respectively [P, Q] and [R]. +%\end{convention}% + +** Definitions and Basic Results + +Here we define continuity and prove some basic properties of continuous functions. +*) + +inline cic:/CoRN/ftc/Continuity/a.var. + +inline cic:/CoRN/ftc/Continuity/b.var. + +inline cic:/CoRN/ftc/Continuity/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Continuity/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Continuity/F.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Continuity/P.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Continuity/Continuous_I.con. + +(*#* +For convenience, we distinguish the two properties of continuous functions. +*) + +inline cic:/CoRN/ftc/Continuity/contin_imp_inc.con. + +inline cic:/CoRN/ftc/Continuity/contin_prop.con. + +(*#* +Assume [F] to be continuous in [I]. Then it has a least upper bound and a greater lower bound on [I]. +*) + +inline cic:/CoRN/ftc/Continuity/contF.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Continuity/Hinc'.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Continuity/Continuous_I_imp_tb_image.con. + +inline cic:/CoRN/ftc/Continuity/Continuous_I_imp_lub.con. + +inline cic:/CoRN/ftc/Continuity/Continuous_I_imp_glb.con. + +(*#* +We now make this glb and lub into operators. +*) + +inline cic:/CoRN/ftc/Continuity/lub_funct.con. + +inline cic:/CoRN/ftc/Continuity/glb_funct.con. + +(*#* +These operators have the expected properties. +*) + +inline cic:/CoRN/ftc/Continuity/lub_is_lub.con. + +inline cic:/CoRN/ftc/Continuity/glb_is_glb.con. + +inline cic:/CoRN/ftc/Continuity/glb_prop.con. + +inline cic:/CoRN/ftc/Continuity/lub_prop.con. + +(*#* +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). +*) + +inline cic:/CoRN/ftc/Continuity/Norm_Funct.con. + +(*#* +The norm effectively bounds the absolute value of a function. +*) + +inline cic:/CoRN/ftc/Continuity/norm_bnd_AbsIR.con. + +(*#* +The following is another way of characterizing the norm: +*) + +inline cic:/CoRN/ftc/Continuity/Continuous_I_imp_abs_lub.con. + +(*#* +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. +*) + +inline cic:/CoRN/ftc/Continuity/positive_norm.con. + +inline cic:/CoRN/ftc/Continuity/norm_fun_lub.con. + +inline cic:/CoRN/ftc/Continuity/leEq_Norm_Funct.con. + +inline cic:/CoRN/ftc/Continuity/less_Norm_Funct.con. + +(* UNEXPORTED +End Definitions_and_Basic_Results. +*) + +(* UNEXPORTED +Implicit Arguments Continuous_I [a b]. +*) + +(* UNEXPORTED +Implicit Arguments Norm_Funct [a b Hab F]. +*) + +(* UNEXPORTED +Section Local_Results. +*) + +(*#* **Algebraic Properties + +We now state and prove some results about continuous functions. Assume that [I] is included in the domain of both [F] and [G]. +*) + +inline cic:/CoRN/ftc/Continuity/a.var. + +inline cic:/CoRN/ftc/Continuity/b.var. + +inline cic:/CoRN/ftc/Continuity/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Continuity/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Continuity/F.var. + +inline cic:/CoRN/ftc/Continuity/G.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Continuity/P.con. + +inline cic:/CoRN/ftc/Continuity/Q.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Continuity/incF.var. + +inline cic:/CoRN/ftc/Continuity/incG.var. + +(*#* +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. +*) + +inline cic:/CoRN/ftc/Continuity/cont_no_sign_change.con. + +inline cic:/CoRN/ftc/Continuity/cont_no_sign_change_pos.con. + +inline cic:/CoRN/ftc/Continuity/cont_no_sign_change_neg.con. + +(*#* +Being continuous is an extensional property. +*) + +inline cic:/CoRN/ftc/Continuity/Continuous_I_wd.con. + +(*#* +A continuous function remains continuous if you restrict its domain. +*) + +inline cic:/CoRN/ftc/Continuity/included_imp_contin.con. + +(*#* +Constant functions and identity are continuous. +*) + +inline cic:/CoRN/ftc/Continuity/Continuous_I_const.con. + +inline cic:/CoRN/ftc/Continuity/Continuous_I_id.con. + +(*#* +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. +*) + +inline cic:/CoRN/ftc/Continuity/contF.var. + +inline cic:/CoRN/ftc/Continuity/contG.var. + +inline cic:/CoRN/ftc/Continuity/Continuous_I_plus.con. + +inline cic:/CoRN/ftc/Continuity/Continuous_I_inv.con. + +inline cic:/CoRN/ftc/Continuity/Continuous_I_mult.con. + +(* UNEXPORTED +Opaque AbsIR Max. +*) + +(* UNEXPORTED +Transparent AbsIR Max. +*) + +inline cic:/CoRN/ftc/Continuity/Continuous_I_max.con. + +(* begin show *) + +inline cic:/CoRN/ftc/Continuity/Hg'.var. + +inline cic:/CoRN/ftc/Continuity/Hg''.var. + +(* end show *) + +inline cic:/CoRN/ftc/Continuity/Continuous_I_recip.con. + +(* UNEXPORTED +End Local_Results. +*) + +(* UNEXPORTED +Hint Resolve contin_imp_inc: included. +*) + +(* UNEXPORTED +Section Corolaries. +*) + +inline cic:/CoRN/ftc/Continuity/a.var. + +inline cic:/CoRN/ftc/Continuity/b.var. + +inline cic:/CoRN/ftc/Continuity/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Continuity/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Continuity/F.var. + +inline cic:/CoRN/ftc/Continuity/G.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Continuity/P.con. + +inline cic:/CoRN/ftc/Continuity/Q.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Continuity/contF.var. + +inline cic:/CoRN/ftc/Continuity/contG.var. + +(*#* +The corresponding properties for subtraction, division and +multiplication by a scalar are easily proved as corollaries; +exponentiation is proved by induction, appealing to the results on +product and constant functions. +*) + +inline cic:/CoRN/ftc/Continuity/Continuous_I_minus.con. + +inline cic:/CoRN/ftc/Continuity/Continuous_I_scal.con. + +inline cic:/CoRN/ftc/Continuity/Continuous_I_nth.con. + +inline cic:/CoRN/ftc/Continuity/Continuous_I_min.con. + +inline cic:/CoRN/ftc/Continuity/Continuous_I_abs.con. + +inline cic:/CoRN/ftc/Continuity/Hg'.var. + +inline cic:/CoRN/ftc/Continuity/Hg''.var. + +inline cic:/CoRN/ftc/Continuity/Continuous_I_div.con. + +(* UNEXPORTED +End Corolaries. +*) + +(* UNEXPORTED +Section Other. +*) + +(* UNEXPORTED +Section Sums. +*) + +(*#* +We finally prove that the sum of an arbitrary family of continuous functions is still a continuous function. +*) + +inline cic:/CoRN/ftc/Continuity/a.var. + +inline cic:/CoRN/ftc/Continuity/b.var. + +inline cic:/CoRN/ftc/Continuity/Hab.var. + +inline cic:/CoRN/ftc/Continuity/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Continuity/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Continuity/Continuous_I_Sum0.con. + +inline cic:/CoRN/ftc/Continuity/Continuous_I_Sumx.con. + +inline cic:/CoRN/ftc/Continuity/Continuous_I_Sum.con. + +(* UNEXPORTED +End Sums. +*) + +(*#* +For practical purposes, these characterization results are useful: +*) + +inline cic:/CoRN/ftc/Continuity/lub_charact.con. + +inline cic:/CoRN/ftc/Continuity/glb_charact.con. + +(*#* +The following result is also extremely useful, as it allows us to set a lower bound on the glb of a function. +*) + +inline cic:/CoRN/ftc/Continuity/leEq_glb.con. + +(*#* +The norm is also an extensional property. +*) + +inline cic:/CoRN/ftc/Continuity/Norm_Funct_wd.con. + +(*#* +The value of the norm is covariant with the length of the interval. +*) + +inline cic:/CoRN/ftc/Continuity/included_imp_norm_leEq.con. + +(* UNEXPORTED +End Other. +*) + +(* UNEXPORTED +Hint Resolve Continuous_I_const Continuous_I_id Continuous_I_plus + Continuous_I_inv Continuous_I_minus Continuous_I_mult Continuous_I_scal + Continuous_I_recip Continuous_I_max Continuous_I_min Continuous_I_div + Continuous_I_nth Continuous_I_abs: continuous. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/Derivative.ma b/matita/contribs/CoRN-Decl/ftc/Derivative.ma new file mode 100644 index 000000000..37588736a --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/Derivative.ma @@ -0,0 +1,180 @@ +(**************************************************************************) +(* ___ *) +(* ||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/Derivative". + +(* $Id: Derivative.v,v 1.7 2004/04/23 10:00:58 lcf Exp $ *) + +(* INCLUDE +Continuity +*) + +(* UNEXPORTED +Section Definitions. +*) + +(*#* *Derivatives + +We will now proceed toward the development of differential calculus. +To begin with, the main notion is that of derivative. + +At this stage we will not define a notion of differentiable function, +mainly because the natural definition (that of being a function which +has some derivative) poses some technical problems; thus, we will +postpone that part of our work to a subsequent stage. + +Derivative is a binary relation in the type of partial functions, +dependent (once again) on a compact interval with distinct +endpoints#. #%\footnote{%As before, we do not define pointwise +differentiability, mainly for coherence reasons. See Bishop [1967] +for a discussion on the relative little interest of that concept.%}.% +The reason for requiring the endpoints to be apart is mainly to be +able to derive the usual properties of the derivative +relation---namely, that any two derivatives of the same function must +coincide. + +%\begin{convention}% Let [a,b:IR] with [a [<] b] and denote by [I] the +interval [[a,b]]. Throughout this chapter, [F, F', G, G'] and [H] +will be partial functions with domains respectively [P, P', Q, Q'] and +[R]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Derivative/a.var. + +inline cic:/CoRN/ftc/Derivative/b.var. + +inline cic:/CoRN/ftc/Derivative/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Derivative/Hab.con. + +inline cic:/CoRN/ftc/Derivative/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Derivative/F.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Derivative/P.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Derivative/Derivative_I.con. + +(* UNEXPORTED +End Definitions. +*) + +(* UNEXPORTED +Implicit Arguments Derivative_I [a b]. +*) + +(* UNEXPORTED +Section Basic_Properties. +*) + +(*#* **Basic Properties +*) + +inline cic:/CoRN/ftc/Derivative/a.var. + +inline cic:/CoRN/ftc/Derivative/b.var. + +inline cic:/CoRN/ftc/Derivative/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Derivative/Hab.con. + +inline cic:/CoRN/ftc/Derivative/I.con. + +(* end hide *) + +(*#* +Like we did for equality, we begin by stating a lemma that makes proofs of derivation easier in practice. +*) + +inline cic:/CoRN/ftc/Derivative/Derivative_I_char.con. + +(* end hide *) + +(*#* +Derivative is a well defined relation; we will make this explicit for both arguments: +*) + +inline cic:/CoRN/ftc/Derivative/F.var. + +inline cic:/CoRN/ftc/Derivative/G.var. + +inline cic:/CoRN/ftc/Derivative/H.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Derivative/P.con. + +inline cic:/CoRN/ftc/Derivative/Q.con. + +inline cic:/CoRN/ftc/Derivative/R.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Derivative/Derivative_I_wdl.con. + +inline cic:/CoRN/ftc/Derivative/Derivative_I_wdr.con. + +(* begin hide *) + +inline cic:/CoRN/ftc/Derivative/Derivative_I_unique_lemma.con. + +(* end hide *) + +(*#* +Derivative is unique. +*) + +inline cic:/CoRN/ftc/Derivative/Derivative_I_unique.con. + +(*#* +Finally, the set where we are considering the relation is included in the domain of both functions. +*) + +inline cic:/CoRN/ftc/Derivative/derivative_imp_inc.con. + +inline cic:/CoRN/ftc/Derivative/derivative_imp_inc'.con. + +(*#* +Any function that is or has a derivative is continuous. +*) + +inline cic:/CoRN/ftc/Derivative/Hab''.var. + +inline cic:/CoRN/ftc/Derivative/deriv_imp_contin'_I.con. + +inline cic:/CoRN/ftc/Derivative/deriv_imp_contin_I.con. + +(* UNEXPORTED +End Basic_Properties. +*) + +(*#* +If [G] is the derivative of [F] in a given interval, then [G] is also the derivative of [F] in any smaller interval. +*) + +inline cic:/CoRN/ftc/Derivative/included_imp_deriv.con. + diff --git a/matita/contribs/CoRN-Decl/ftc/DerivativeOps.ma b/matita/contribs/CoRN-Decl/ftc/DerivativeOps.ma new file mode 100644 index 000000000..18b016072 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/DerivativeOps.ma @@ -0,0 +1,235 @@ +(**************************************************************************) +(* ___ *) +(* ||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/DerivativeOps". + +(* $Id: DerivativeOps.v,v 1.3 2004/04/23 10:00:58 lcf Exp $ *) + +(* INCLUDE +Derivative +*) + +(* UNEXPORTED +Section Lemmas. +*) + +(*#* **Algebraic Operations + +We will now prove the main results about deriving functions built from +the algebraic operators#. #%\footnote{%Composition presents some +tricky questions, and is therefore discussed in a separated +context.%}.% + +[F'] and [G'] will be the derivatives, respectively, of [F] and [G]. + +We begin with some technical stuff that will be necessary for division. +*) + +inline cic:/CoRN/ftc/DerivativeOps/a.var. + +inline cic:/CoRN/ftc/DerivativeOps/b.var. + +inline cic:/CoRN/ftc/DerivativeOps/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/DerivativeOps/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/DerivativeOps/F.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/DerivativeOps/P.con. + +(* end hide *) + +(* begin show *) + +inline cic:/CoRN/ftc/DerivativeOps/Fbnd.var. + +(* end show *) + +inline cic:/CoRN/ftc/DerivativeOps/bnd_away_zero_square.con. + +(* UNEXPORTED +End Lemmas. +*) + +(* UNEXPORTED +Hint Resolve bnd_away_zero_square: included. +*) + +(* UNEXPORTED +Section Local_Results. +*) + +(*#* **Local Results + +We can now derive all the usual rules for deriving constant and identity functions, sums, inverses and products of functions with a known derivative. +*) + +inline cic:/CoRN/ftc/DerivativeOps/a.var. + +inline cic:/CoRN/ftc/DerivativeOps/b.var. + +inline cic:/CoRN/ftc/DerivativeOps/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/DerivativeOps/Hab.con. + +inline cic:/CoRN/ftc/DerivativeOps/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/DerivativeOps/Derivative_I_const.con. + +inline cic:/CoRN/ftc/DerivativeOps/Derivative_I_id.con. + +inline cic:/CoRN/ftc/DerivativeOps/F.var. + +inline cic:/CoRN/ftc/DerivativeOps/F'.var. + +inline cic:/CoRN/ftc/DerivativeOps/G.var. + +inline cic:/CoRN/ftc/DerivativeOps/G'.var. + +inline cic:/CoRN/ftc/DerivativeOps/derF.var. + +inline cic:/CoRN/ftc/DerivativeOps/derG.var. + +inline cic:/CoRN/ftc/DerivativeOps/Derivative_I_plus.con. + +inline cic:/CoRN/ftc/DerivativeOps/Derivative_I_inv.con. + +inline cic:/CoRN/ftc/DerivativeOps/Derivative_I_mult.con. + +(*#* +As was the case for continuity, the rule for the reciprocal function has a side condition. +*) + +(* begin show *) + +inline cic:/CoRN/ftc/DerivativeOps/Fbnd.var. + +(* end show *) + +inline cic:/CoRN/ftc/DerivativeOps/Derivative_I_recip.con. + +(* UNEXPORTED +End Local_Results. +*) + +(* UNEXPORTED +Hint Immediate derivative_imp_inc derivative_imp_inc': included. +*) + +(* UNEXPORTED +Hint Resolve Derivative_I_const Derivative_I_id Derivative_I_plus + Derivative_I_inv Derivative_I_mult Derivative_I_recip: derivate. +*) + +(* UNEXPORTED +Section Corolaries. +*) + +inline cic:/CoRN/ftc/DerivativeOps/a.var. + +inline cic:/CoRN/ftc/DerivativeOps/b.var. + +inline cic:/CoRN/ftc/DerivativeOps/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/DerivativeOps/Hab.con. + +inline cic:/CoRN/ftc/DerivativeOps/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/DerivativeOps/F.var. + +inline cic:/CoRN/ftc/DerivativeOps/F'.var. + +inline cic:/CoRN/ftc/DerivativeOps/G.var. + +inline cic:/CoRN/ftc/DerivativeOps/G'.var. + +inline cic:/CoRN/ftc/DerivativeOps/derF.var. + +inline cic:/CoRN/ftc/DerivativeOps/derG.var. + +(*#* +From this lemmas the rules for the other algebraic operations follow directly. +*) + +inline cic:/CoRN/ftc/DerivativeOps/Derivative_I_minus.con. + +inline cic:/CoRN/ftc/DerivativeOps/Derivative_I_scal.con. + +inline cic:/CoRN/ftc/DerivativeOps/Derivative_I_nth.con. + +inline cic:/CoRN/ftc/DerivativeOps/Gbnd.var. + +inline cic:/CoRN/ftc/DerivativeOps/Derivative_I_div.con. + +(* UNEXPORTED +End Corolaries. +*) + +(* UNEXPORTED +Hint Resolve Derivative_I_minus Derivative_I_nth Derivative_I_scal + Derivative_I_div: derivate. +*) + +(* UNEXPORTED +Section Derivative_Sums. +*) + +(*#* The derivation rules for families of functions are easily proved by +induction using the constant and addition rules. +*) + +inline cic:/CoRN/ftc/DerivativeOps/a.var. + +inline cic:/CoRN/ftc/DerivativeOps/b.var. + +inline cic:/CoRN/ftc/DerivativeOps/Hab.var. + +inline cic:/CoRN/ftc/DerivativeOps/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/DerivativeOps/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/DerivativeOps/Derivative_I_Sum0.con. + +inline cic:/CoRN/ftc/DerivativeOps/Derivative_I_Sumx.con. + +inline cic:/CoRN/ftc/DerivativeOps/Derivative_I_Sum.con. + +(* UNEXPORTED +End Derivative_Sums. +*) + +(* UNEXPORTED +Hint Resolve Derivative_I_Sum0 Derivative_I_Sum Derivative_I_Sumx: derivate. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/Differentiability.ma b/matita/contribs/CoRN-Decl/ftc/Differentiability.ma new file mode 100644 index 000000000..898232c0e --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/Differentiability.ma @@ -0,0 +1,277 @@ +(**************************************************************************) +(* ___ *) +(* ||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/Differentiability". + +(* $Id: Differentiability.v,v 1.5 2004/04/20 22:38:49 hinderer Exp $ *) + +(* INCLUDE +PartInterval +*) + +(* INCLUDE +DerivativeOps +*) + +(* UNEXPORTED +Section Definitions. +*) + +(*#* *Differentiability + +We will now use our work on derivatives to define a notion of +differentiable function and prove its main properties. + +%\begin{convention}% Throughout this section, [a,b] will be real +numbers with [a [<] b], [I] will denote the interval [[a,b]] +and [F,G,H] will be differentiable functions. +%\end{convention}% + +Usually a function [F] is said to be differentiable in a proper +compact interval [[a,b]] if there exists another function [F'] +such that [F'] is a derivative of [F] in that interval. There is a +problem in formalizing this definition, as we pointed out earlier on, +which is that if we simply write it down as is we are not able to get +such a function [F'] from a hypothesis that [F] is differentiable. + +However, it turns out that this is not altogether the best definition +for the following reason: if we say that [F] is differentiable in +[[a,b]], we mean that there is a partial function [F'] which is +defined in [[a,b]] and satisfies a certain condition in that +interval but nothing is required of the behaviour of the function +outside [[a,b]]. Thus we can argue that, from a mathematical +point of view, the [F'] that we get eliminating a hypothesis of +differentiability should be defined exactly on that interval. If we +do this, we can quantify over the set of setoid functions in that +interval and eliminate the existencial quantifier without any +problems. +*) + +inline cic:/CoRN/ftc/Differentiability/Diffble_I.con. + +(* UNEXPORTED +End Definitions. +*) + +(* UNEXPORTED +Implicit Arguments Diffble_I [a b]. +*) + +(* UNEXPORTED +Section Local_Properties. +*) + +(*#* +From this point on, we just prove results analogous to the ones for derivability. + +A function differentiable in [[a,b]] is differentiable in every proper compact subinterval of [[a,b]]. +*) + +inline cic:/CoRN/ftc/Differentiability/included_imp_diffble.con. + +(*#* +A function differentiable in an interval is everywhere defined in that interval. +*) + +inline cic:/CoRN/ftc/Differentiability/a.var. + +inline cic:/CoRN/ftc/Differentiability/b.var. + +inline cic:/CoRN/ftc/Differentiability/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Differentiability/Hab.con. + +inline cic:/CoRN/ftc/Differentiability/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Differentiability/diffble_imp_inc.con. + +(*#* +If a function has a derivative in an interval then it is differentiable in that interval. +*) + +inline cic:/CoRN/ftc/Differentiability/deriv_imp_Diffble_I.con. + +(* UNEXPORTED +End Local_Properties. +*) + +(* UNEXPORTED +Hint Resolve diffble_imp_inc: included. +*) + +(* UNEXPORTED +Section Operations. +*) + +(*#* +All the algebraic results carry on. +*) + +inline cic:/CoRN/ftc/Differentiability/a.var. + +inline cic:/CoRN/ftc/Differentiability/b.var. + +inline cic:/CoRN/ftc/Differentiability/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Differentiability/Hab.con. + +inline cic:/CoRN/ftc/Differentiability/I.con. + +(* end hide *) + +(* UNEXPORTED +Section Constants. +*) + +inline cic:/CoRN/ftc/Differentiability/Diffble_I_const.con. + +inline cic:/CoRN/ftc/Differentiability/Diffble_I_id.con. + +(* UNEXPORTED +End Constants. +*) + +(* UNEXPORTED +Section Well_Definedness. +*) + +inline cic:/CoRN/ftc/Differentiability/F.var. + +inline cic:/CoRN/ftc/Differentiability/H.var. + +inline cic:/CoRN/ftc/Differentiability/diffF.var. + +inline cic:/CoRN/ftc/Differentiability/Diffble_I_wd.con. + +(* UNEXPORTED +End Well_Definedness. +*) + +inline cic:/CoRN/ftc/Differentiability/F.var. + +inline cic:/CoRN/ftc/Differentiability/G.var. + +inline cic:/CoRN/ftc/Differentiability/diffF.var. + +inline cic:/CoRN/ftc/Differentiability/diffG.var. + +inline cic:/CoRN/ftc/Differentiability/Diffble_I_plus.con. + +inline cic:/CoRN/ftc/Differentiability/Diffble_I_inv.con. + +inline cic:/CoRN/ftc/Differentiability/Diffble_I_mult.con. + +(* begin show *) + +inline cic:/CoRN/ftc/Differentiability/Gbnd.var. + +(* end show *) + +inline cic:/CoRN/ftc/Differentiability/Diffble_I_recip.con. + +(* UNEXPORTED +End Operations. +*) + +(* UNEXPORTED +Section Corollaries. +*) + +inline cic:/CoRN/ftc/Differentiability/a.var. + +inline cic:/CoRN/ftc/Differentiability/b.var. + +inline cic:/CoRN/ftc/Differentiability/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Differentiability/Hab.con. + +inline cic:/CoRN/ftc/Differentiability/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Differentiability/F.var. + +inline cic:/CoRN/ftc/Differentiability/G.var. + +inline cic:/CoRN/ftc/Differentiability/diffF.var. + +inline cic:/CoRN/ftc/Differentiability/diffG.var. + +inline cic:/CoRN/ftc/Differentiability/Diffble_I_minus.con. + +inline cic:/CoRN/ftc/Differentiability/Diffble_I_scal.con. + +inline cic:/CoRN/ftc/Differentiability/Diffble_I_nth.con. + +inline cic:/CoRN/ftc/Differentiability/Gbnd.var. + +inline cic:/CoRN/ftc/Differentiability/Diffble_I_div.con. + +(* UNEXPORTED +End Corollaries. +*) + +(* UNEXPORTED +Section Other_Properties. +*) + +(*#* +Differentiability of families of functions is proved by +induction using the constant and addition rules. +*) + +inline cic:/CoRN/ftc/Differentiability/a.var. + +inline cic:/CoRN/ftc/Differentiability/b.var. + +inline cic:/CoRN/ftc/Differentiability/Hab'.var. + +inline cic:/CoRN/ftc/Differentiability/Diffble_I_Sum0.con. + +inline cic:/CoRN/ftc/Differentiability/Diffble_I_Sumx.con. + +inline cic:/CoRN/ftc/Differentiability/Diffble_I_Sum.con. + +(* UNEXPORTED +End Other_Properties. +*) + +(*#* +Finally, a differentiable function is continuous. + +%\begin{convention}% Let [F] be a partial function with derivative [F'] on [I]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Differentiability/diffble_imp_contin_I.con. + +(* UNEXPORTED +Hint Immediate included_imp_contin deriv_imp_contin_I deriv_imp_contin'_I + diffble_imp_contin_I: continuous. +*) + +(* UNEXPORTED +Hint Immediate included_imp_deriv: derivate. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/FTC.ma b/matita/contribs/CoRN-Decl/ftc/FTC.ma new file mode 100644 index 000000000..6042eee7a --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/FTC.ma @@ -0,0 +1,371 @@ +(**************************************************************************) +(* ___ *) +(* ||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/FTC". + +(* $Id: FTC.v,v 1.5 2004/04/23 10:00:58 lcf Exp $ *) + +(*#* printing [-S-] %\ensuremath{\int}% #∫# *) + +(* INCLUDE +MoreIntegrals +*) + +(* INCLUDE +CalculusTheorems +*) + +(* UNEXPORTED +Opaque Min. +*) + +(* UNEXPORTED +Section Indefinite_Integral. +*) + +(*#* *The Fundamental Theorem of Calculus + +Finally we can prove the fundamental theorem of calculus and its most +important corollaries, which are the main tools to formalize most of +real analysis. + +**Indefinite Integrals + +We define the indefinite integral of a function in a proper interval +in the obvious way; we just need to state a first lemma so that the +continuity proofs become unnecessary. + +%\begin{convention}% Let [I : interval], [F : PartIR] be continuous in [I] +and [a] be a point in [I]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/FTC/I.var. + +inline cic:/CoRN/ftc/FTC/F.var. + +inline cic:/CoRN/ftc/FTC/contF.var. + +inline cic:/CoRN/ftc/FTC/a.var. + +inline cic:/CoRN/ftc/FTC/Ha.var. + +inline cic:/CoRN/ftc/FTC/prim_lemma.con. + +inline cic:/CoRN/ftc/FTC/Fprim_strext.con. + +inline cic:/CoRN/ftc/FTC/Fprim.con. + +(* UNEXPORTED +End Indefinite_Integral. +*) + +(* UNEXPORTED +Implicit Arguments Fprim [I F]. +*) + +(* UNEXPORTED +Section FTC. +*) + +(*#* **The FTC + +We can now prove our main theorem. We begin by remarking that the +primitive function is always continuous. + +%\begin{convention}% Assume that [J : interval], [F : PartIR] is +continuous in [J] and [x0] is a point in [J]. Denote by [G] the +indefinite integral of [F] from [x0]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/FTC/J.var. + +inline cic:/CoRN/ftc/FTC/F.var. + +inline cic:/CoRN/ftc/FTC/contF.var. + +inline cic:/CoRN/ftc/FTC/x0.var. + +inline cic:/CoRN/ftc/FTC/Hx0.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/FTC/G.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FTC/Continuous_prim.con. + +(*#* +The derivative of [G] is simply [F]. +*) + +inline cic:/CoRN/ftc/FTC/pJ.var. + +inline cic:/CoRN/ftc/FTC/FTC1.con. + +(*#* +Any other function [G0] with derivative [F] must differ from [G] by a constant. +*) + +inline cic:/CoRN/ftc/FTC/G0.var. + +inline cic:/CoRN/ftc/FTC/derG0.var. + +inline cic:/CoRN/ftc/FTC/FTC2.con. + +(*#* +The following is another statement of the Fundamental Theorem of Calculus, also known as Barrow's rule. +*) + +(* begin hide *) + +inline cic:/CoRN/ftc/FTC/G0_inc.con. + +(* end hide *) + +(* UNEXPORTED +Opaque G. +*) + +inline cic:/CoRN/ftc/FTC/Barrow.con. + +(* end hide *) + +(* UNEXPORTED +End FTC. +*) + +(* UNEXPORTED +Hint Resolve Continuous_prim: continuous. +*) + +(* UNEXPORTED +Hint Resolve FTC1: derivate. +*) + +(* UNEXPORTED +Section Limit_of_Integral_Seq. +*) + +(*#* **Corollaries + +With these tools in our hand, we can prove several useful results. + +%\begin{convention}% From this point onwards: + - [J : interval]; + - [f : nat->PartIR] is a sequence of continuous functions (in [J]); + - [F : PartIR] is continuous in [J]. + +%\end{convention}% + +In the first place, if a sequence of continuous functions converges +then the sequence of their primitives also converges, and the limit +commutes with the indefinite integral. +*) + +inline cic:/CoRN/ftc/FTC/J.var. + +inline cic:/CoRN/ftc/FTC/f.var. + +inline cic:/CoRN/ftc/FTC/F.var. + +inline cic:/CoRN/ftc/FTC/contf.var. + +inline cic:/CoRN/ftc/FTC/contF.var. + +(* UNEXPORTED +Section Compact. +*) + +(*#* +We need to prove this result first for compact intervals. + +%\begin{convention}% Assume that [a, b, x0 : IR] with [(f n)] and [F] +continuous in [[a,b]], $x0\in[a,b]$#x0∈[a,b]#; denote by +[(g n)] and [G] the indefinite integrals respectively of [(f n)] and +[F] with origin [x0]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/FTC/a.var. + +inline cic:/CoRN/ftc/FTC/b.var. + +inline cic:/CoRN/ftc/FTC/Hab.var. + +inline cic:/CoRN/ftc/FTC/contIf.var. + +inline cic:/CoRN/ftc/FTC/contIF.var. + +(* begin show *) + +inline cic:/CoRN/ftc/FTC/convF.var. + +(* end show *) + +inline cic:/CoRN/ftc/FTC/x0.var. + +inline cic:/CoRN/ftc/FTC/Hx0.var. + +inline cic:/CoRN/ftc/FTC/Hx0'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/FTC/g.con. + +inline cic:/CoRN/ftc/FTC/G.con. + +(* end hide *) + +(* begin show *) + +inline cic:/CoRN/ftc/FTC/contg.var. + +inline cic:/CoRN/ftc/FTC/contG.var. + +(* end show *) + +inline cic:/CoRN/ftc/FTC/fun_lim_seq_integral.con. + +(* UNEXPORTED +End Compact. +*) + +(*#* +And now we can generalize it step by step. +*) + +inline cic:/CoRN/ftc/FTC/limit_of_integral.con. + +inline cic:/CoRN/ftc/FTC/limit_of_Integral.con. + +(* UNEXPORTED +Section General. +*) + +(*#* +Finally, with [x0, g, G] as before, +*) + +(* begin show *) + +inline cic:/CoRN/ftc/FTC/convF.var. + +(* end show *) + +inline cic:/CoRN/ftc/FTC/x0.var. + +inline cic:/CoRN/ftc/FTC/Hx0.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/FTC/g.con. + +inline cic:/CoRN/ftc/FTC/G.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FTC/contg.var. + +inline cic:/CoRN/ftc/FTC/contG.var. + +inline cic:/CoRN/ftc/FTC/fun_lim_seq_integral_IR.con. + +(* UNEXPORTED +End General. +*) + +(* UNEXPORTED +End Limit_of_Integral_Seq. +*) + +(* UNEXPORTED +Section Limit_of_Derivative_Seq. +*) + +(*#* +Similar results hold for the sequence of derivatives of a converging sequence; this time the proof is easier, as we can do it directly for any kind of interval. + +%\begin{convention}% Let [g] be the sequence of derivatives of [f] and [G] be the derivative of [F]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/FTC/J.var. + +inline cic:/CoRN/ftc/FTC/pJ.var. + +inline cic:/CoRN/ftc/FTC/f.var. + +inline cic:/CoRN/ftc/FTC/g.var. + +inline cic:/CoRN/ftc/FTC/F.var. + +inline cic:/CoRN/ftc/FTC/G.var. + +inline cic:/CoRN/ftc/FTC/contf.var. + +inline cic:/CoRN/ftc/FTC/contF.var. + +inline cic:/CoRN/ftc/FTC/convF.var. + +inline cic:/CoRN/ftc/FTC/contg.var. + +inline cic:/CoRN/ftc/FTC/contG.var. + +inline cic:/CoRN/ftc/FTC/convG.var. + +inline cic:/CoRN/ftc/FTC/derf.var. + +inline cic:/CoRN/ftc/FTC/fun_lim_seq_derivative.con. + +(* UNEXPORTED +End Limit_of_Derivative_Seq. +*) + +(* UNEXPORTED +Section Derivative_Series. +*) + +(*#* +As a very important case of this result, we get a rule for deriving series. +*) + +inline cic:/CoRN/ftc/FTC/J.var. + +inline cic:/CoRN/ftc/FTC/pJ.var. + +inline cic:/CoRN/ftc/FTC/f.var. + +inline cic:/CoRN/ftc/FTC/g.var. + +(* begin show *) + +inline cic:/CoRN/ftc/FTC/convF.var. + +inline cic:/CoRN/ftc/FTC/convG.var. + +(* end show *) + +inline cic:/CoRN/ftc/FTC/derF.var. + +inline cic:/CoRN/ftc/FTC/Derivative_FSeries.con. + +(* UNEXPORTED +End Derivative_Series. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/FunctSequence.ma b/matita/contribs/CoRN-Decl/ftc/FunctSequence.ma new file mode 100644 index 000000000..c5c588036 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/FunctSequence.ma @@ -0,0 +1,508 @@ +(**************************************************************************) +(* ___ *) +(* ||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/FunctSequence". + +(* $Id: FunctSequence.v,v 1.5 2004/04/23 10:00:58 lcf Exp $ *) + +(* INCLUDE +Continuity +*) + +(* INCLUDE +PartInterval +*) + +(* UNEXPORTED +Section Definitions. +*) + +(*#* *Sequences of Functions + +In this file we define some more operators on functions, namely +sequences and limits. These concepts are defined only for continuous +functions. + +%\begin{convention}% Throughout this section: + - [a] and [b] will be real numbers and the interval [[a,b]] +will be denoted by [I]; + - [f, g] and [h] will denote sequences of continuous functions; + - [F, G] and [H] will denote continuous functions. + +%\end{convention}% + +**Definitions + +A sequence of functions is simply an object of type [nat->PartIR]. +However, we will be interested mostly in convergent and Cauchy +sequences. Several definitions of these concepts will be formalized; +they mirror the several different ways in which a Cauchy sequence can +be defined. For a discussion on the different notions of convergent +see Bishop 1967. +*) + +inline cic:/CoRN/ftc/FunctSequence/a.var. + +inline cic:/CoRN/ftc/FunctSequence/b.var. + +inline cic:/CoRN/ftc/FunctSequence/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/FunctSequence/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FunctSequence/f.var. + +inline cic:/CoRN/ftc/FunctSequence/F.var. + +inline cic:/CoRN/ftc/FunctSequence/contf.var. + +inline cic:/CoRN/ftc/FunctSequence/contF.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/FunctSequence/incf.con. + +inline cic:/CoRN/ftc/FunctSequence/incF.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq.con. + +inline cic:/CoRN/ftc/FunctSequence/conv_fun_seq'.con. + +inline cic:/CoRN/ftc/FunctSequence/conv_norm_fun_seq.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq1.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq'.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq2.con. + +(*#* +These definitions are all shown to be equivalent. +*) + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq_seq'.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq'_seq.con. + +inline cic:/CoRN/ftc/FunctSequence/conv_Cauchy_fun_seq'.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq_seq2.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq2_seq.con. + +inline cic:/CoRN/ftc/FunctSequence/conv_fun_seq'_norm.con. + +inline cic:/CoRN/ftc/FunctSequence/conv_fun_norm_seq.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq1_seq'.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq'_seq1.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq_seq1.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq1_seq.con. + +(*#* +A Cauchy sequence of functions is pointwise a Cauchy sequence. +*) + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_real.con. + +(* UNEXPORTED +End Definitions. +*) + +(* UNEXPORTED +Section More_Definitions. +*) + +inline cic:/CoRN/ftc/FunctSequence/a.var. + +inline cic:/CoRN/ftc/FunctSequence/b.var. + +inline cic:/CoRN/ftc/FunctSequence/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/FunctSequence/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FunctSequence/f.var. + +inline cic:/CoRN/ftc/FunctSequence/contf.var. + +(*#* +We can also say that [f] is simply convergent if it converges to some +continuous function. Notice that we do not quantify directly over +partial functions, for reasons which were already explained. +*) + +inline cic:/CoRN/ftc/FunctSequence/conv_fun_seq.con. + +(*#* +It is useful to extract the limit as a partial function: +*) + +(* begin show *) + +inline cic:/CoRN/ftc/FunctSequence/H.var. + +(* end show *) + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq_Lim.con. + +(* UNEXPORTED +End More_Definitions. +*) + +(* UNEXPORTED +Section Irrelevance_of_Proofs. +*) + +(*#* **Irrelevance of Proofs + +This section contains a number of technical results stating mainly that being a Cauchy sequence or converging to some limit is a property of the sequence itself and independent of the proofs we supply of its continuity or the continuity of its limit. +*) + +inline cic:/CoRN/ftc/FunctSequence/a.var. + +inline cic:/CoRN/ftc/FunctSequence/b.var. + +inline cic:/CoRN/ftc/FunctSequence/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/FunctSequence/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FunctSequence/f.var. + +(* begin show *) + +inline cic:/CoRN/ftc/FunctSequence/contf.var. + +inline cic:/CoRN/ftc/FunctSequence/contf0.var. + +(* end show *) + +inline cic:/CoRN/ftc/FunctSequence/F.var. + +(* begin show *) + +inline cic:/CoRN/ftc/FunctSequence/contF.var. + +inline cic:/CoRN/ftc/FunctSequence/contF0.var. + +(* end show *) + +inline cic:/CoRN/ftc/FunctSequence/conv_fun_seq'_wd.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq'_wd.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq2_wd.con. + +inline cic:/CoRN/ftc/FunctSequence/conv_norm_fun_seq_wd.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq1_wd.con. + +(* UNEXPORTED +End Irrelevance_of_Proofs. +*) + +(* UNEXPORTED +Section More_Proof_Irrelevance. +*) + +inline cic:/CoRN/ftc/FunctSequence/conv_fun_seq_wd.con. + +(* UNEXPORTED +End More_Proof_Irrelevance. +*) + +(* UNEXPORTED +Section More_Properties. +*) + +(*#* **Other Properties + +Still more technical details---a convergent sequence converges to its +limit; the limit is a continuous function; and convergence is well +defined with respect to functional equality in the interval [[a,b]]. +*) + +inline cic:/CoRN/ftc/FunctSequence/a.var. + +inline cic:/CoRN/ftc/FunctSequence/b.var. + +inline cic:/CoRN/ftc/FunctSequence/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/FunctSequence/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FunctSequence/f.var. + +inline cic:/CoRN/ftc/FunctSequence/g.var. + +(* begin show *) + +inline cic:/CoRN/ftc/FunctSequence/contf.var. + +inline cic:/CoRN/ftc/FunctSequence/contf0.var. + +inline cic:/CoRN/ftc/FunctSequence/contg.var. + +inline cic:/CoRN/ftc/FunctSequence/contg0.var. + +(* end show *) + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_conv_fun_seq'.con. + +inline cic:/CoRN/ftc/FunctSequence/F.var. + +inline cic:/CoRN/ftc/FunctSequence/G.var. + +(* begin show *) + +inline cic:/CoRN/ftc/FunctSequence/contF.var. + +inline cic:/CoRN/ftc/FunctSequence/contF0.var. + +inline cic:/CoRN/ftc/FunctSequence/contG.var. + +inline cic:/CoRN/ftc/FunctSequence/contG0.var. + +(* end show *) + +inline cic:/CoRN/ftc/FunctSequence/conv_fun_seq'_wdl.con. + +inline cic:/CoRN/ftc/FunctSequence/conv_fun_seq'_wdr.con. + +inline cic:/CoRN/ftc/FunctSequence/conv_fun_seq'_wdl'.con. + +inline cic:/CoRN/ftc/FunctSequence/conv_fun_seq'_wdr'.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq_wd.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_cont_Lim.con. + +inline cic:/CoRN/ftc/FunctSequence/Cauchy_conv_fun_seq.con. + +inline cic:/CoRN/ftc/FunctSequence/conv_Cauchy_fun_seq.con. + +(*#* +More interesting is the fact that a convergent sequence of functions converges pointwise as a sequence of real numbers. +*) + +inline cic:/CoRN/ftc/FunctSequence/fun_conv_imp_seq_conv.con. + +(*#* +And a sequence of real numbers converges iff the corresponding sequence of constant functions converges to the corresponding constant function. +*) + +inline cic:/CoRN/ftc/FunctSequence/seq_conv_imp_fun_conv.con. + +(* UNEXPORTED +End More_Properties. +*) + +(* UNEXPORTED +Hint Resolve Cauchy_cont_Lim: continuous. +*) + +(* UNEXPORTED +Section Algebraic_Properties. +*) + +(*#* **Algebraic Properties + +We now study how convergence is affected by algebraic operations, and some algebraic properties of the limit function. +*) + +inline cic:/CoRN/ftc/FunctSequence/a.var. + +inline cic:/CoRN/ftc/FunctSequence/b.var. + +inline cic:/CoRN/ftc/FunctSequence/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/FunctSequence/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FunctSequence/f.var. + +inline cic:/CoRN/ftc/FunctSequence/g.var. + +inline cic:/CoRN/ftc/FunctSequence/contf.var. + +inline cic:/CoRN/ftc/FunctSequence/contg.var. + +(*#* +First, the limit function is unique. +*) + +inline cic:/CoRN/ftc/FunctSequence/FLim_unique.con. + +(*#* Constant sequences (not sequences of constant functions!) always converge. +*) + +inline cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_const.con. + +inline cic:/CoRN/ftc/FunctSequence/fun_Cauchy_prop_const.con. + +(*#* +We now prove that if two sequences converge than their sum (difference, product) also converge to the sum (difference, product) of their limits. +*) + +inline cic:/CoRN/ftc/FunctSequence/F.var. + +inline cic:/CoRN/ftc/FunctSequence/G.var. + +inline cic:/CoRN/ftc/FunctSequence/contF.var. + +inline cic:/CoRN/ftc/FunctSequence/contG.var. + +(* begin show *) + +inline cic:/CoRN/ftc/FunctSequence/convF.var. + +inline cic:/CoRN/ftc/FunctSequence/convG.var. + +(* end show *) + +(* begin hide *) + +inline cic:/CoRN/ftc/FunctSequence/incf.con. + +inline cic:/CoRN/ftc/FunctSequence/incg.con. + +inline cic:/CoRN/ftc/FunctSequence/incF.con. + +inline cic:/CoRN/ftc/FunctSequence/incG.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_plus'.con. + +inline cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_minus'.con. + +inline cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_mult'.con. + +(* UNEXPORTED +End Algebraic_Properties. +*) + +(* UNEXPORTED +Section More_Algebraic_Properties. +*) + +inline cic:/CoRN/ftc/FunctSequence/a.var. + +inline cic:/CoRN/ftc/FunctSequence/b.var. + +inline cic:/CoRN/ftc/FunctSequence/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/FunctSequence/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FunctSequence/f.var. + +inline cic:/CoRN/ftc/FunctSequence/g.var. + +inline cic:/CoRN/ftc/FunctSequence/contf.var. + +inline cic:/CoRN/ftc/FunctSequence/contg.var. + +(*#* +The same is true if we don't make the limits explicit. +*) + +(* begin hide *) + +inline cic:/CoRN/ftc/FunctSequence/Hf.var. + +inline cic:/CoRN/ftc/FunctSequence/Hg.var. + +(* end hide *) + +inline cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_plus.con. + +inline cic:/CoRN/ftc/FunctSequence/fun_Cauchy_prop_plus.con. + +inline cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_minus.con. + +inline cic:/CoRN/ftc/FunctSequence/fun_Cauchy_prop_minus.con. + +inline cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_mult.con. + +inline cic:/CoRN/ftc/FunctSequence/fun_Cauchy_prop_mult.con. + +(* UNEXPORTED +End More_Algebraic_Properties. +*) + +(* UNEXPORTED +Section Still_More_Algebraic_Properties. +*) + +inline cic:/CoRN/ftc/FunctSequence/a.var. + +inline cic:/CoRN/ftc/FunctSequence/b.var. + +inline cic:/CoRN/ftc/FunctSequence/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/FunctSequence/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FunctSequence/f.var. + +inline cic:/CoRN/ftc/FunctSequence/contf.var. + +inline cic:/CoRN/ftc/FunctSequence/Hf.var. + +(*#* +As a corollary, we get the analogous property for the sequence of algebraic inverse functions. +*) + +inline cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_inv.con. + +inline cic:/CoRN/ftc/FunctSequence/fun_Cauchy_prop_inv.con. + +(* UNEXPORTED +End Still_More_Algebraic_Properties. +*) + +(* UNEXPORTED +Hint Resolve Continuous_I_Sum Continuous_I_Sumx Continuous_I_Sum0: continuous. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/FunctSeries.ma b/matita/contribs/CoRN-Decl/ftc/FunctSeries.ma new file mode 100644 index 000000000..70dddf1d4 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/FunctSeries.ma @@ -0,0 +1,368 @@ +(**************************************************************************) +(* ___ *) +(* ||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/FunctSeries". + +(* $Id: FunctSeries.v,v 1.6 2004/04/23 10:00:58 lcf Exp $ *) + +(* INCLUDE +FunctSequence +*) + +(* INCLUDE +Series +*) + +(*#* printing fun_seq_part_sum %\ensuremath{\sum^n}% #∑n# *) + +(*#* printing Fun_Series_Sum %\ensuremath{\sum_0^{\infty}}% #∑0# *) + +(* UNEXPORTED +Section Definitions. +*) + +(*#* *Series of Functions + +We now turn our attention to series of functions. Like it was already +the case for sequences, we will mainly rewrite the results we proved +for series of real numbers in a different way. + +%\begin{convention}% Throughout this section: + - [a] and [b] will be real numbers and the interval [[a,b]] will be denoted +by [I]; + - [f, g] and [h] will denote sequences of continuous functions; + - [F, G] and [H] will denote continuous functions. + +%\end{convention}% + +** Definitions + +As before, we will consider only sequences of continuous functions +defined in a compact interval. For this, partial sums are defined and +convergence is simply the convergence of the sequence of partial sums. +*) + +inline cic:/CoRN/ftc/FunctSeries/a.var. + +inline cic:/CoRN/ftc/FunctSeries/b.var. + +inline cic:/CoRN/ftc/FunctSeries/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/FunctSeries/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FunctSeries/f.var. + +inline cic:/CoRN/ftc/FunctSeries/fun_seq_part_sum.con. + +inline cic:/CoRN/ftc/FunctSeries/fun_seq_part_sum_cont.con. + +inline cic:/CoRN/ftc/FunctSeries/fun_series_convergent.con. + +(*#* +For what comes up next we need to know that the convergence of a +series of functions implies pointwise convergence of the corresponding +real number series. +*) + +inline cic:/CoRN/ftc/FunctSeries/fun_series_conv_imp_conv.con. + +(*#* We then define the sum of the series as being the pointwise sum of +the corresponding series. +*) + +(* begin show *) + +inline cic:/CoRN/ftc/FunctSeries/H.var. + +(* end show *) + +(* begin hide *) + +inline cic:/CoRN/ftc/FunctSeries/contf.con. + +inline cic:/CoRN/ftc/FunctSeries/incf.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_strext.con. + +inline cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum.con. + +(* UNEXPORTED +End Definitions. +*) + +(* UNEXPORTED +Implicit Arguments Fun_Series_Sum [a b Hab f]. +*) + +(* UNEXPORTED +Hint Resolve fun_seq_part_sum_cont: continuous. +*) + +(* UNEXPORTED +Section More_Definitions. +*) + +inline cic:/CoRN/ftc/FunctSeries/a.var. + +inline cic:/CoRN/ftc/FunctSeries/b.var. + +inline cic:/CoRN/ftc/FunctSeries/Hab.var. + +inline cic:/CoRN/ftc/FunctSeries/f.var. + +(*#* A series can also be absolutely convergent. *) + +inline cic:/CoRN/ftc/FunctSeries/fun_series_abs_convergent.con. + +(* UNEXPORTED +End More_Definitions. +*) + +(* UNEXPORTED +Section Operations. +*) + +(* **Algebraic Properties + +All of these are analogous to the properties for series of real numbers, so we won't comment much about them. +*) + +inline cic:/CoRN/ftc/FunctSeries/a.var. + +inline cic:/CoRN/ftc/FunctSeries/b.var. + +inline cic:/CoRN/ftc/FunctSeries/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/FunctSeries/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FunctSeries/fun_seq_part_sum_n.con. + +inline cic:/CoRN/ftc/FunctSeries/conv_fun_const_series.con. + +inline cic:/CoRN/ftc/FunctSeries/fun_const_series_sum.con. + +inline cic:/CoRN/ftc/FunctSeries/conv_zero_fun_series.con. + +inline cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_zero.con. + +(* begin show *) + +inline cic:/CoRN/ftc/FunctSeries/f.var. + +inline cic:/CoRN/ftc/FunctSeries/g.var. + +(* end show *) + +inline cic:/CoRN/ftc/FunctSeries/fun_series_convergent_wd.con. + +(* begin show *) + +inline cic:/CoRN/ftc/FunctSeries/convF.var. + +inline cic:/CoRN/ftc/FunctSeries/convG.var. + +(* end show *) + +inline cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_wd'.con. + +inline cic:/CoRN/ftc/FunctSeries/conv_fun_series_plus.con. + +inline cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_plus.con. + +inline cic:/CoRN/ftc/FunctSeries/conv_fun_series_minus.con. + +inline cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_min.con. + +(*#* +%\begin{convention}% Let [c:IR]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/FunctSeries/c.var. + +inline cic:/CoRN/ftc/FunctSeries/H.var. + +inline cic:/CoRN/ftc/FunctSeries/contH.var. + +inline cic:/CoRN/ftc/FunctSeries/conv_fun_series_scal.con. + +inline cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_scal.con. + +(* UNEXPORTED +End Operations. +*) + +(* UNEXPORTED +Section More_Operations. +*) + +inline cic:/CoRN/ftc/FunctSeries/a.var. + +inline cic:/CoRN/ftc/FunctSeries/b.var. + +inline cic:/CoRN/ftc/FunctSeries/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/FunctSeries/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FunctSeries/f.var. + +inline cic:/CoRN/ftc/FunctSeries/convF.var. + +inline cic:/CoRN/ftc/FunctSeries/conv_fun_series_inv.con. + +inline cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_inv.con. + +(* UNEXPORTED +End More_Operations. +*) + +(* UNEXPORTED +Section Other_Results. +*) + +inline cic:/CoRN/ftc/FunctSeries/a.var. + +inline cic:/CoRN/ftc/FunctSeries/b.var. + +inline cic:/CoRN/ftc/FunctSeries/Hab.var. + +inline cic:/CoRN/ftc/FunctSeries/f.var. + +inline cic:/CoRN/ftc/FunctSeries/convF.var. + +(*#* +The following relate the sum series with the limit of the sequence of +partial sums; as a corollary we get the continuity of the sum of the +series. +*) + +inline cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_char'.con. + +inline cic:/CoRN/ftc/FunctSeries/fun_series_conv.con. + +inline cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_cont.con. + +inline cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_char.con. + +inline cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_as_Lim.con. + +(* UNEXPORTED +End Other_Results. +*) + +(* UNEXPORTED +Hint Resolve Fun_Series_Sum_cont: continuous. +*) + +(* UNEXPORTED +Section Convergence_Criteria. +*) + +(*#* **Convergence Criteria + +Most of the convergence criteria for series of real numbers carry over to series of real-valued functions, so again we just present them without comments. +*) + +inline cic:/CoRN/ftc/FunctSeries/a.var. + +inline cic:/CoRN/ftc/FunctSeries/b.var. + +inline cic:/CoRN/ftc/FunctSeries/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/FunctSeries/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/FunctSeries/f.var. + +inline cic:/CoRN/ftc/FunctSeries/contF.var. + +(* UNEXPORTED +Opaque Frestr. +*) + +(* UNEXPORTED +Transparent Frestr. +*) + +(* UNEXPORTED +Opaque FAbs. +*) + +(* UNEXPORTED +Transparent FAbs. +*) + +(* UNEXPORTED +Opaque fun_seq_part_sum. +*) + +(* UNEXPORTED +Opaque FAbs. +*) + +(* UNEXPORTED +Transparent FAbs. +*) + +(* UNEXPORTED +Opaque FAbs. +*) + +(* UNEXPORTED +Transparent fun_seq_part_sum. +*) + +(* UNEXPORTED +Opaque fun_seq_part_sum. +*) + +inline cic:/CoRN/ftc/FunctSeries/fun_str_comparison.con. + +(* UNEXPORTED +Transparent FAbs. +*) + +inline cic:/CoRN/ftc/FunctSeries/fun_comparison.con. + +inline cic:/CoRN/ftc/FunctSeries/abs_imp_conv.con. + +(* UNEXPORTED +Opaque FAbs. +*) + +inline cic:/CoRN/ftc/FunctSeries/fun_ratio_test_conv.con. + +(* UNEXPORTED +End Convergence_Criteria. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/FunctSums.ma b/matita/contribs/CoRN-Decl/ftc/FunctSums.ma new file mode 100644 index 000000000..5006a55f9 --- /dev/null +++ b/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. + diff --git a/matita/contribs/CoRN-Decl/ftc/Integral.ma b/matita/contribs/CoRN-Decl/ftc/Integral.ma new file mode 100644 index 000000000..9241494f9 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/Integral.ma @@ -0,0 +1,492 @@ +(**************************************************************************) +(* ___ *) +(* ||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/Integral". + +(* $Id: Integral.v,v 1.10 2004/04/23 10:00:59 lcf Exp $ *) + +(* INCLUDE +RefLemma +*) + +(*#* printing integral %\ensuremath{\int_I}% #∫I# *) + +(*#* printing Integral %\ensuremath{\int_I}% #∫I# *) + +(* begin hide *) + +(* UNEXPORTED +Section Lemmas. +*) + +inline cic:/CoRN/ftc/Integral/Sumx_wd_weird.con. + +inline cic:/CoRN/ftc/Integral/Sumx_weird_lemma.con. + +(* UNEXPORTED +End Lemmas. +*) + +(* end hide *) + +(* UNEXPORTED +Section Integral. +*) + +(*#* *Integral + +Having proved the main properties of partitions and refinements, we +will define the integral of a continuous function [F] in the interval +[[a,b]] as the limit of the sequence of Sums of $F$ for even +partitions of increasing number of points. + +%\begin{convention}% All throughout, [a,b] will be real numbers, the +interval [[a,b]] will be denoted by [I] and [F,G] will be +continuous functions in [I]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Integral/a.var. + +inline cic:/CoRN/ftc/Integral/b.var. + +inline cic:/CoRN/ftc/Integral/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Integral/I.con. + +inline cic:/CoRN/ftc/Integral/F.var. + +inline cic:/CoRN/ftc/Integral/contF.var. + +inline cic:/CoRN/ftc/Integral/contF'.con. + +(* end hide *) + +(* UNEXPORTED +Section Darboux_Sum. +*) + +inline cic:/CoRN/ftc/Integral/integral_seq.con. + +inline cic:/CoRN/ftc/Integral/Cauchy_Darboux_Seq.con. + +inline cic:/CoRN/ftc/Integral/integral.con. + +(* UNEXPORTED +End Darboux_Sum. +*) + +(* UNEXPORTED +Section Integral_Thm. +*) + +(*#* +The following shows that in fact the integral of [F] is the limit of +any sequence of partitions of mesh converging to 0. + +%\begin{convention}% Let [e] be a positive real number and [P] be a +partition of [I] with [n] points and mesh smaller than the +modulus of continuity of [F] for [e]. Let [fP] be a choice of points +respecting [P]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Integral/n.var. + +inline cic:/CoRN/ftc/Integral/P.var. + +inline cic:/CoRN/ftc/Integral/e.var. + +inline cic:/CoRN/ftc/Integral/He.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Integral/d.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Integral/HmeshP.var. + +inline cic:/CoRN/ftc/Integral/fP.var. + +inline cic:/CoRN/ftc/Integral/HfP.var. + +inline cic:/CoRN/ftc/Integral/HfP'.var. + +inline cic:/CoRN/ftc/Integral/incF.var. + +inline cic:/CoRN/ftc/Integral/partition_Sum_conv_integral.con. + +(* UNEXPORTED +End Integral_Thm. +*) + +(* UNEXPORTED +End Integral. +*) + +(* UNEXPORTED +Section Basic_Properties. +*) + +(*#* +The usual extensionality and strong extensionality results hold. +*) + +inline cic:/CoRN/ftc/Integral/a.var. + +inline cic:/CoRN/ftc/Integral/b.var. + +inline cic:/CoRN/ftc/Integral/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Integral/I.con. + +(* end hide *) + +(* UNEXPORTED +Section Well_Definedness. +*) + +inline cic:/CoRN/ftc/Integral/F.var. + +inline cic:/CoRN/ftc/Integral/G.var. + +inline cic:/CoRN/ftc/Integral/contF.var. + +inline cic:/CoRN/ftc/Integral/contG.var. + +inline cic:/CoRN/ftc/Integral/integral_strext.con. + +inline cic:/CoRN/ftc/Integral/integral_strext'.con. + +inline cic:/CoRN/ftc/Integral/integral_wd.con. + +inline cic:/CoRN/ftc/Integral/integral_wd'.con. + +(* UNEXPORTED +End Well_Definedness. +*) + +(* UNEXPORTED +Section Linearity_and_Monotonicity. +*) + +(* UNEXPORTED +Opaque Even_Partition. +*) + +(*#* +The integral is a linear and monotonous function; in order to prove these facts we also need the important equalities $\int_a^bdx=b-a$#∫abdx=b-a# and $\int_a^af(x)dx=0$#∫aa=0#. +*) + +inline cic:/CoRN/ftc/Integral/integral_one.con. + +inline cic:/CoRN/ftc/Integral/F.var. + +inline cic:/CoRN/ftc/Integral/G.var. + +inline cic:/CoRN/ftc/Integral/contF.var. + +inline cic:/CoRN/ftc/Integral/contG.var. + +inline cic:/CoRN/ftc/Integral/integral_comm_scal.con. + +inline cic:/CoRN/ftc/Integral/integral_plus.con. + +(* UNEXPORTED +Transparent Even_Partition. +*) + +inline cic:/CoRN/ftc/Integral/integral_empty.con. + +(* UNEXPORTED +End Linearity_and_Monotonicity. +*) + +(* UNEXPORTED +Section Linearity_and_Monotonicity'. +*) + +inline cic:/CoRN/ftc/Integral/F.var. + +inline cic:/CoRN/ftc/Integral/G.var. + +inline cic:/CoRN/ftc/Integral/contF.var. + +inline cic:/CoRN/ftc/Integral/contG.var. + +(*#* +%\begin{convention}% Let [alpha, beta : IR] and assume that +[h := alpha{**}F{+}beta{**}G] is continuous. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Integral/alpha.var. + +inline cic:/CoRN/ftc/Integral/beta.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Integral/h.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Integral/contH.var. + +inline cic:/CoRN/ftc/Integral/linear_integral.con. + +(* UNEXPORTED +Opaque nring. +*) + +inline cic:/CoRN/ftc/Integral/monotonous_integral.con. + +(* UNEXPORTED +Transparent nring. +*) + +(* UNEXPORTED +End Linearity_and_Monotonicity'. +*) + +(* UNEXPORTED +Section Corollaries. +*) + +inline cic:/CoRN/ftc/Integral/F.var. + +inline cic:/CoRN/ftc/Integral/G.var. + +inline cic:/CoRN/ftc/Integral/contF.var. + +inline cic:/CoRN/ftc/Integral/contG.var. + +(*#* +As corollaries we can calculate integrals of group operations applied to functions. +*) + +inline cic:/CoRN/ftc/Integral/integral_const.con. + +inline cic:/CoRN/ftc/Integral/integral_minus.con. + +inline cic:/CoRN/ftc/Integral/integral_inv.con. + +(*#* +We can also bound integrals by bounding the integrated functions. +*) + +inline cic:/CoRN/ftc/Integral/lb_integral.con. + +inline cic:/CoRN/ftc/Integral/ub_integral.con. + +inline cic:/CoRN/ftc/Integral/integral_leEq_norm.con. + +(* UNEXPORTED +End Corollaries. +*) + +(* UNEXPORTED +Section Integral_Sum. +*) + +(*#* +We now relate the sum of integrals in adjoining intervals to the +integral over the union of those intervals. + +%\begin{convention}% Let [c] be a real number such that +$c\in[a,b]$#c∈[a,b]#. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Integral/F.var. + +inline cic:/CoRN/ftc/Integral/c.var. + +inline cic:/CoRN/ftc/Integral/Hac.var. + +inline cic:/CoRN/ftc/Integral/Hcb.var. + +inline cic:/CoRN/ftc/Integral/Hab'.var. + +inline cic:/CoRN/ftc/Integral/Hac'.var. + +inline cic:/CoRN/ftc/Integral/Hcb'.var. + +(* UNEXPORTED +Section Partition_Join. +*) + +(*#* +We first prove that every pair of partitions, one of [[a,c]] +and another of [[c,b]] defines a partition of [[a,b]] the mesh +of which is less or equal to the maximum of the mesh of the original +partitions (actually it is equal, but we don't need the other +inequality). + +%\begin{convention}% Let [P,Q] be partitions respectively of +[[a,c]] and [[c,b]] with [n] and [m] points. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Integral/n.var. + +inline cic:/CoRN/ftc/Integral/m.var. + +inline cic:/CoRN/ftc/Integral/P.var. + +inline cic:/CoRN/ftc/Integral/Q.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Integral/partition_join_aux.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Integral/partition_join_fun.con. + +(* begin hide *) + +inline cic:/CoRN/ftc/Integral/pjf_1.con. + +inline cic:/CoRN/ftc/Integral/pjf_2.con. + +inline cic:/CoRN/ftc/Integral/pjf_2'.con. + +inline cic:/CoRN/ftc/Integral/pjf_3.con. + +inline cic:/CoRN/ftc/Integral/partition_join_prf1.con. + +inline cic:/CoRN/ftc/Integral/partition_join_prf2.con. + +inline cic:/CoRN/ftc/Integral/partition_join_start.con. + +inline cic:/CoRN/ftc/Integral/partition_join_finish.con. + +inline cic:/CoRN/ftc/Integral/partition_join.con. + +(* end hide *) + +(*#* +%\begin{convention}% [fP, fQ] are choices of points respecting [P] and [Q]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Integral/fP.var. + +inline cic:/CoRN/ftc/Integral/HfP.var. + +inline cic:/CoRN/ftc/Integral/HfP'.var. + +inline cic:/CoRN/ftc/Integral/fQ.var. + +inline cic:/CoRN/ftc/Integral/HfQ.var. + +inline cic:/CoRN/ftc/Integral/HfQ'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Integral/partition_join_aux'.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Integral/partition_join_pts.con. + +(* begin hide *) + +inline cic:/CoRN/ftc/Integral/pjp_1.con. + +inline cic:/CoRN/ftc/Integral/pjp_2.con. + +inline cic:/CoRN/ftc/Integral/pjp_3.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Integral/partition_join_Pts_in_partition.con. + +inline cic:/CoRN/ftc/Integral/partition_join_Pts_wd.con. + +(* UNEXPORTED +Opaque partition_join. +*) + +(* UNEXPORTED +Transparent partition_join. +*) + +(* UNEXPORTED +Opaque minus. +*) + +(* UNEXPORTED +Transparent minus. +*) + +(* UNEXPORTED +Opaque minus. +*) + +(* UNEXPORTED +Transparent minus. +*) + +inline cic:/CoRN/ftc/Integral/partition_join_Sum_lemma.con. + +inline cic:/CoRN/ftc/Integral/partition_join_mesh.con. + +(* UNEXPORTED +End Partition_Join. +*) + +(*#* +With these results in mind, the following is a trivial consequence: +*) + +(* UNEXPORTED +Opaque Even_Partition. +*) + +inline cic:/CoRN/ftc/Integral/integral_plus_integral.con. + +(* UNEXPORTED +End Integral_Sum. +*) + +(* UNEXPORTED +Transparent Even_Partition. +*) + +(* UNEXPORTED +End Basic_Properties. +*) + +(*#* +The following are simple consequences of this result and of previous ones. +*) + +inline cic:/CoRN/ftc/Integral/integral_less_norm.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Integral/integral_gt_zero.con. + +(* end hide *) + +(*#* remove printing Integral *) + diff --git a/matita/contribs/CoRN-Decl/ftc/IntervalFunct.ma b/matita/contribs/CoRN-Decl/ftc/IntervalFunct.ma new file mode 100644 index 000000000..9001c6b48 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/IntervalFunct.ma @@ -0,0 +1,270 @@ +(**************************************************************************) +(* ___ *) +(* ||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/IntervalFunct". + +(* $Id: IntervalFunct.v,v 1.5 2004/04/08 15:28:06 lcf Exp $ *) + +(* INCLUDE +PartFunEquality +*) + +(* UNEXPORTED +Section Operations. +*) + +(*#* * Functions with compact domain + +In this section we concern ourselves with defining operations on the +set of functions from an arbitrary interval [[a,b]] to [IR]. +Although these are a particular kind of partial function, they have +the advantage that, given [a] and [b], they have type [Set] and can +thus be quantified over and extracted from existential hypothesis. +This will be important when we want to define concepts like +differentiability, which involve the existence of an object satisfying +some given properties. + +Throughout this section we will focus on a compact interval and define +operators analogous to those we already have for arbitrary partial +functions. + +%\begin{convention}% Let [a,b] be real numbers and denote by [I] the +compact interval [[a,b]]. Let [f, g] be setoid functions of +type [I -> IR]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/IntervalFunct/a.var. + +inline cic:/CoRN/ftc/IntervalFunct/b.var. + +inline cic:/CoRN/ftc/IntervalFunct/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/IntervalFunct/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/IntervalFunct/f.var. + +inline cic:/CoRN/ftc/IntervalFunct/g.var. + +(* UNEXPORTED +Section Const. +*) + +(*#* +Constant and identity functions are defined. + +%\begin{convention}% Let [c:IR]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/IntervalFunct/c.var. + +inline cic:/CoRN/ftc/IntervalFunct/IConst_strext.con. + +inline cic:/CoRN/ftc/IntervalFunct/IConst.con. + +(* UNEXPORTED +End Const. +*) + +inline cic:/CoRN/ftc/IntervalFunct/IId_strext.con. + +inline cic:/CoRN/ftc/IntervalFunct/IId.con. + +(*#* +Next, we define addition, algebraic inverse, subtraction and product of functions. +*) + +inline cic:/CoRN/ftc/IntervalFunct/IPlus_strext.con. + +inline cic:/CoRN/ftc/IntervalFunct/IPlus.con. + +inline cic:/CoRN/ftc/IntervalFunct/IInv_strext.con. + +inline cic:/CoRN/ftc/IntervalFunct/IInv.con. + +inline cic:/CoRN/ftc/IntervalFunct/IMinus_strext.con. + +inline cic:/CoRN/ftc/IntervalFunct/IMinus.con. + +inline cic:/CoRN/ftc/IntervalFunct/IMult_strext.con. + +inline cic:/CoRN/ftc/IntervalFunct/IMult.con. + +(* UNEXPORTED +Section Nth_Power. +*) + +(*#* +Exponentiation to a natural power [n] is also useful. +*) + +inline cic:/CoRN/ftc/IntervalFunct/n.var. + +inline cic:/CoRN/ftc/IntervalFunct/INth_strext.con. + +inline cic:/CoRN/ftc/IntervalFunct/INth.con. + +(* UNEXPORTED +End Nth_Power. +*) + +(*#* +If a function is non-zero in all the interval then we can define its multiplicative inverse. +*) + +(* UNEXPORTED +Section Recip_Div. +*) + +(* begin show *) + +inline cic:/CoRN/ftc/IntervalFunct/Hg.var. + +(* end show *) + +inline cic:/CoRN/ftc/IntervalFunct/IRecip_strext.con. + +inline cic:/CoRN/ftc/IntervalFunct/IRecip.con. + +inline cic:/CoRN/ftc/IntervalFunct/IDiv_strext.con. + +inline cic:/CoRN/ftc/IntervalFunct/IDiv.con. + +(* UNEXPORTED +End Recip_Div. +*) + +(*#* +Absolute value will also be needed at some point. +*) + +inline cic:/CoRN/ftc/IntervalFunct/IAbs_strext.con. + +inline cic:/CoRN/ftc/IntervalFunct/IAbs.con. + +(* UNEXPORTED +End Operations. +*) + +(*#* +The set of these functions form a ring with relation to the operations +of sum and multiplication. As they actually form a set, this fact can +be proved in Coq for this class of functions; unfortunately, due to a +problem with the coercions, we are not able to use it (Coq will not +recognize the elements of that ring as functions which can be applied +to elements of [[a,b]]), so we merely state this fact here as a +curiosity. + +Finally, we define composition; for this we need two functions with +different domains. + +%\begin{convention}% [a',b'] be real numbers and denote by [I'] the +compact interval [[a',b']], and let [g] be a setoid function of type +[I' -> IR]. +%\end{convention}% +*) + +(* UNEXPORTED +Section Composition. +*) + +inline cic:/CoRN/ftc/IntervalFunct/a.var. + +inline cic:/CoRN/ftc/IntervalFunct/b.var. + +inline cic:/CoRN/ftc/IntervalFunct/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/IntervalFunct/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/IntervalFunct/a'.var. + +inline cic:/CoRN/ftc/IntervalFunct/b'.var. + +inline cic:/CoRN/ftc/IntervalFunct/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/IntervalFunct/I'.con. + +(* end hide *) + +inline cic:/CoRN/ftc/IntervalFunct/f.var. + +inline cic:/CoRN/ftc/IntervalFunct/g.var. + +inline cic:/CoRN/ftc/IntervalFunct/Hfg.var. + +inline cic:/CoRN/ftc/IntervalFunct/IComp_strext.con. + +inline cic:/CoRN/ftc/IntervalFunct/IComp.con. + +(* UNEXPORTED +End Composition. +*) + +(* UNEXPORTED +Implicit Arguments IConst [a b Hab]. +*) + +(* UNEXPORTED +Implicit Arguments IId [a b Hab]. +*) + +(* UNEXPORTED +Implicit Arguments IPlus [a b Hab]. +*) + +(* UNEXPORTED +Implicit Arguments IInv [a b Hab]. +*) + +(* UNEXPORTED +Implicit Arguments IMinus [a b Hab]. +*) + +(* UNEXPORTED +Implicit Arguments IMult [a b Hab]. +*) + +(* UNEXPORTED +Implicit Arguments INth [a b Hab]. +*) + +(* UNEXPORTED +Implicit Arguments IRecip [a b Hab]. +*) + +(* UNEXPORTED +Implicit Arguments IDiv [a b Hab]. +*) + +(* UNEXPORTED +Implicit Arguments IAbs [a b Hab]. +*) + +(* UNEXPORTED +Implicit Arguments IComp [a b Hab a' b' Hab']. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/MoreFunSeries.ma b/matita/contribs/CoRN-Decl/ftc/MoreFunSeries.ma new file mode 100644 index 000000000..0aae72baa --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/MoreFunSeries.ma @@ -0,0 +1,573 @@ +(**************************************************************************) +(* ___ *) +(* ||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/MoreFunSeries". + +(* $Id: MoreFunSeries.v,v 1.4 2004/04/23 10:00:59 lcf Exp $ *) + +(* INCLUDE +FunctSeries +*) + +(* INCLUDE +MoreFunctions +*) + +(*#* printing FSeries_Sum %\ensuremath{\sum_{\infty}}% #∑'# *) + +(* UNEXPORTED +Section Definitions. +*) + +(*#* *More on Sequences and Series + +We will now extend our convergence definitions and results for +sequences and series of functions defined in compact intervals to +arbitrary intervals. + +%\begin{convention}% Throughout this file, [J] will be an interval, +[f, g] will be sequences of continuous (in [J]) functions and [F,G] +will be continuous (in [J]) functions. +%\end{convention}% + +**Sequences + +First we will consider the case of sequences. + +***Definitions + +Some of the definitions do not make sense in this more general setting +(for instance, because the norm of a function is no longer defined), +but the ones which do we simply adapt in the usual way. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/J.var. + +inline cic:/CoRN/ftc/MoreFunSeries/f.var. + +inline cic:/CoRN/ftc/MoreFunSeries/F.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contf.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contF.var. + +inline cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq'_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq2_IR.con. + +(*#* +The equivalences between these definitions still hold. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/conv_Cauchy_fun_seq'_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq_seq2_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq2_seq_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_real_IR.con. + +(* UNEXPORTED +End Definitions. +*) + +(* UNEXPORTED +Section More_Definitions. +*) + +(*#* +Limit is defined and works in the same way as before. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/J.var. + +inline cic:/CoRN/ftc/MoreFunSeries/f.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contf.var. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreFunSeries/conv.var. + +(* end show *) + +inline cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq_Lim_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq_Lim_char.con. + +(* UNEXPORTED +End More_Definitions. +*) + +(* UNEXPORTED +Section Irrelevance_of_Proofs. +*) + +(*#* ***Basic Properties + +Proofs are irrelevant as before---they just have to be present. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/J.var. + +inline cic:/CoRN/ftc/MoreFunSeries/f.var. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreFunSeries/contf.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contf0.var. + +(* end show *) + +inline cic:/CoRN/ftc/MoreFunSeries/F.var. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreFunSeries/contF.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contF0.var. + +(* end show *) + +inline cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq'_wd_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq2_wd_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq_wd_IR.con. + +(* UNEXPORTED +End Irrelevance_of_Proofs. +*) + +(* UNEXPORTED +Opaque Cauchy_fun_seq_Lim_IR. +*) + +(* UNEXPORTED +Section More_Properties. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/J.var. + +inline cic:/CoRN/ftc/MoreFunSeries/f.var. + +inline cic:/CoRN/ftc/MoreFunSeries/g.var. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreFunSeries/contf.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contf0.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contg.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contg0.var. + +(* end show *) + +inline cic:/CoRN/ftc/MoreFunSeries/Cauchy_conv_fun_seq'_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/F.var. + +inline cic:/CoRN/ftc/MoreFunSeries/G.var. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreFunSeries/contF.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contF0.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contG.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contG0.var. + +(* end show *) + +inline cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq'_wdl_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq'_wdr_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq'_wdl'_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq'_wdr'_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/Cauchy_cont_Lim_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/Cauchy_conv_fun_seq_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/conv_Cauchy_fun_seq_IR.con. + +(* UNEXPORTED +End More_Properties. +*) + +(* UNEXPORTED +Hint Resolve Cauchy_cont_Lim_IR: continuous. +*) + +(* UNEXPORTED +Section Algebraic_Properties. +*) + +(*#* ***Algebraic Properties + +Algebraic operations still work well. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/J.var. + +inline cic:/CoRN/ftc/MoreFunSeries/f.var. + +inline cic:/CoRN/ftc/MoreFunSeries/g.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contf.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contg.var. + +inline cic:/CoRN/ftc/MoreFunSeries/FLim_unique_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq_wd_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_const_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_Cauchy_prop_const_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/F.var. + +inline cic:/CoRN/ftc/MoreFunSeries/G.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contF.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contG.var. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreFunSeries/convF.var. + +inline cic:/CoRN/ftc/MoreFunSeries/convG.var. + +(* end show *) + +inline cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_plus'_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_minus'_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_mult'_IR.con. + +(* UNEXPORTED +End Algebraic_Properties. +*) + +(* UNEXPORTED +Section More_Algebraic_Properties. +*) + +(*#* +If we work with the limit function things fit in just as well. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/J.var. + +inline cic:/CoRN/ftc/MoreFunSeries/f.var. + +inline cic:/CoRN/ftc/MoreFunSeries/g.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contf.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contg.var. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreFunSeries/Hf.var. + +inline cic:/CoRN/ftc/MoreFunSeries/Hg.var. + +(* end show *) + +inline cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_plus_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_Cauchy_prop_plus.con. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_inv_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_Cauchy_prop_inv.con. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_minus_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_Cauchy_prop_minus.con. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_mult_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_Cauchy_prop_mult.con. + +(* UNEXPORTED +End More_Algebraic_Properties. +*) + +(* UNEXPORTED +Section Other. +*) + +(*#* ***Miscellaneous + +Finally, we define a mapping between sequences of real numbers and sequences of (constant) functions and prove that convergence is preserved. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/seq_to_funseq.con. + +inline cic:/CoRN/ftc/MoreFunSeries/funseq_conv.con. + +(*#* +Another interesting fact: if a sequence of constant functions converges then it must converge to a constant function. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/fun_const_Lim.con. + +(* UNEXPORTED +End Other. +*) + +(* UNEXPORTED +Section Series_Definitions. +*) + +(*#* **Series + +We now consider series of functions defined in arbitrary intervals. + +Convergence is defined as expected---through convergence in every compact interval. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/J.var. + +inline cic:/CoRN/ftc/MoreFunSeries/f.var. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_series_convergent_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_series_conv_imp_conv_IR.con. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreFunSeries/H.var. + +(* end show *) + +inline cic:/CoRN/ftc/MoreFunSeries/fun_series_inc_IR.con. + +(*#* Assume [h(x)] is the pointwise series of [f(x)] *) + +(* begin hide *) + +inline cic:/CoRN/ftc/MoreFunSeries/h.con. + +(* end hide *) + +inline cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_strext_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum.con. + +inline cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_char.con. + +(* UNEXPORTED +End Series_Definitions. +*) + +(* UNEXPORTED +Implicit Arguments FSeries_Sum [J f]. +*) + +(* UNEXPORTED +Section More_Series_Definitions. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/J.var. + +inline cic:/CoRN/ftc/MoreFunSeries/f.var. + +(*#* +Absolute convergence still exists. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/fun_series_abs_convergent_IR.con. + +(* UNEXPORTED +End More_Series_Definitions. +*) + +(* UNEXPORTED +Section Convergence_Results. +*) + +(*#* +As before, any series converges to its sum. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/J.var. + +inline cic:/CoRN/ftc/MoreFunSeries/f.var. + +inline cic:/CoRN/ftc/MoreFunSeries/FSeries_conv.con. + +inline cic:/CoRN/ftc/MoreFunSeries/convergent_imp_inc.con. + +inline cic:/CoRN/ftc/MoreFunSeries/convergent_imp_Continuous.con. + +inline cic:/CoRN/ftc/MoreFunSeries/Continuous_FSeries_Sum.con. + +(* UNEXPORTED +End Convergence_Results. +*) + +(* UNEXPORTED +Hint Resolve convergent_imp_inc: included. +*) + +(* UNEXPORTED +Hint Resolve convergent_imp_Continuous Continuous_FSeries_Sum: continuous. +*) + +(* UNEXPORTED +Section Operations. +*) + +(*#* **Algebraic Operations + +Convergence is well defined and preserved by operations. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/J.var. + +inline cic:/CoRN/ftc/MoreFunSeries/conv_fun_const_series_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_const_series_Sum_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/conv_zero_fun_series_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_zero_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/f.var. + +inline cic:/CoRN/ftc/MoreFunSeries/g.var. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_series_convergent_wd_IR.con. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreFunSeries/convF.var. + +inline cic:/CoRN/ftc/MoreFunSeries/convG.var. + +(* end show *) + +inline cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_wd'.con. + +inline cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_plus_conv.con. + +inline cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_plus.con. + +inline cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_inv_conv.con. + +inline cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_inv.con. + +inline cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_minus_conv.con. + +inline cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_minus.con. + +(*#* +%\begin{convention}% Let [c:IR] and [H:PartIR] be continuous in [J]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/MoreFunSeries/c.var. + +inline cic:/CoRN/ftc/MoreFunSeries/H.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contH.var. + +inline cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_scal_conv.con. + +inline cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_scal.con. + +(* UNEXPORTED +End Operations. +*) + +(* UNEXPORTED +Section Convergence_Criteria. +*) + +(*#* ***Convergence Criteria + +The most important tests for convergence of series still apply: the +comparison test (in both versions) and the ratio test. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/J.var. + +inline cic:/CoRN/ftc/MoreFunSeries/f.var. + +inline cic:/CoRN/ftc/MoreFunSeries/contF.var. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_str_comparison_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_comparison_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/abs_imp_conv_IR.con. + +inline cic:/CoRN/ftc/MoreFunSeries/fun_ratio_test_conv_IR.con. + +(* UNEXPORTED +End Convergence_Criteria. +*) + +(* UNEXPORTED +Section Insert_Series. +*) + +(*#* ***Translation + +When working in particular with power series and Taylor series, it is +sometimes useful to ``shift'' all the terms in the series one position +forward, that is, replacing each $f_{i+1}$#fi+1# with +$f_i$#fi# and inserting the null function in the first +position. This does not affect convergence or the sum of the series. +*) + +inline cic:/CoRN/ftc/MoreFunSeries/J.var. + +inline cic:/CoRN/ftc/MoreFunSeries/f.var. + +inline cic:/CoRN/ftc/MoreFunSeries/convF.var. + +inline cic:/CoRN/ftc/MoreFunSeries/insert_series.con. + +inline cic:/CoRN/ftc/MoreFunSeries/insert_series_cont.con. + +inline cic:/CoRN/ftc/MoreFunSeries/insert_series_sum_char.con. + +inline cic:/CoRN/ftc/MoreFunSeries/insert_series_conv.con. + +inline cic:/CoRN/ftc/MoreFunSeries/insert_series_sum.con. + +(* UNEXPORTED +End Insert_Series. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/MoreFunctions.ma b/matita/contribs/CoRN-Decl/ftc/MoreFunctions.ma new file mode 100644 index 000000000..8f0aeeda6 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/MoreFunctions.ma @@ -0,0 +1,650 @@ +(**************************************************************************) +(* ___ *) +(* ||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/MoreFunctions". + +(* $Id: MoreFunctions.v,v 1.5 2004/04/20 22:38:50 hinderer Exp $ *) + +(*#* printing FNorm %\ensuremath{\|\cdot\|_{\infty}}% *) + +(* INCLUDE +MoreIntervals +*) + +(* UNEXPORTED +Opaque Min Max. +*) + +(* UNEXPORTED +Section Basic_Results. +*) + +(*#* *More about Functions + +Here we state all the main results about properties of functions that +we already proved for compact intervals in the more general setting of +arbitrary intervals. + +%\begin{convention}% Let [I:interval] and [F,F',G,G'] be partial functions. +%\end{convention}% + +**Continuity +*) + +inline cic:/CoRN/ftc/MoreFunctions/I.var. + +(*#* +Trivial stuff. +*) + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_imp_inc.con. + +(*#* +%\begin{convention}% Assume that [I] is compact and [F] is continuous in [I]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/MoreFunctions/cI.var. + +inline cic:/CoRN/ftc/MoreFunctions/F.var. + +inline cic:/CoRN/ftc/MoreFunctions/contF.var. + +inline cic:/CoRN/ftc/MoreFunctions/continuous_compact.con. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreFunctions/Hinc.var. + +(* end show *) + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_I_imp_tb_image.con. + +inline cic:/CoRN/ftc/MoreFunctions/FNorm.con. + +inline cic:/CoRN/ftc/MoreFunctions/FNorm_bnd_AbsIR.con. + +(* UNEXPORTED +End Basic_Results. +*) + +(* UNEXPORTED +Hint Resolve Continuous_imp_inc: included. +*) + +(* UNEXPORTED +Section Other_Results. +*) + +(*#* +The usual stuff. +*) + +inline cic:/CoRN/ftc/MoreFunctions/I.var. + +inline cic:/CoRN/ftc/MoreFunctions/F.var. + +inline cic:/CoRN/ftc/MoreFunctions/G.var. + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_wd.con. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreFunctions/contF.var. + +inline cic:/CoRN/ftc/MoreFunctions/contG.var. + +(* end show *) + +inline cic:/CoRN/ftc/MoreFunctions/included_imp_Continuous.con. + +inline cic:/CoRN/ftc/MoreFunctions/Included_imp_Continuous.con. + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_const.con. + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_id.con. + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_plus.con. + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_inv.con. + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_minus.con. + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_mult.con. + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_nth.con. + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_scal.con. + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_abs.con. + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_recip.con. + +(* UNEXPORTED +End Other_Results. +*) + +(* UNEXPORTED +Hint Resolve continuous_compact Continuous_const Continuous_id + Continuous_plus Continuous_inv Continuous_minus Continuous_mult + Continuous_scal Continuous_nth Continuous_recip Continuous_abs: continuous. +*) + +(* UNEXPORTED +Hint Immediate included_imp_Continuous Included_imp_Continuous: continuous. +*) + +(* UNEXPORTED +Section Corollaries. +*) + +inline cic:/CoRN/ftc/MoreFunctions/I.var. + +inline cic:/CoRN/ftc/MoreFunctions/cI.var. + +inline cic:/CoRN/ftc/MoreFunctions/F.var. + +inline cic:/CoRN/ftc/MoreFunctions/G.var. + +inline cic:/CoRN/ftc/MoreFunctions/contF.var. + +inline cic:/CoRN/ftc/MoreFunctions/contG.var. + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_div.con. + +inline cic:/CoRN/ftc/MoreFunctions/FNorm_wd.con. + +(* UNEXPORTED +End Corollaries. +*) + +(* UNEXPORTED +Hint Resolve Continuous_div: continuous. +*) + +(* UNEXPORTED +Section Sums. +*) + +inline cic:/CoRN/ftc/MoreFunctions/I.var. + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_Sumx.con. + +(*#* +%\begin{convention}% Assume [f] is a sequence of continuous functions. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/MoreFunctions/f.var. + +inline cic:/CoRN/ftc/MoreFunctions/contF.var. + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_Sum0.con. + +inline cic:/CoRN/ftc/MoreFunctions/Continuous_Sum.con. + +(* UNEXPORTED +End Sums. +*) + +(* UNEXPORTED +Hint Resolve Continuous_Sum0 Continuous_Sumx Continuous_Sum: continuous. +*) + +(* UNEXPORTED +Section Basic_Properties. +*) + +(*#* **Derivative + +Derivative is not that much different. + +%\begin{convention}% From this point on we assume [I] to be proper. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/MoreFunctions/I.var. + +inline cic:/CoRN/ftc/MoreFunctions/pI.var. + +inline cic:/CoRN/ftc/MoreFunctions/F.var. + +inline cic:/CoRN/ftc/MoreFunctions/G.var. + +inline cic:/CoRN/ftc/MoreFunctions/H.var. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_wdl.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_wdr.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_unique.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_imp_inc.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_imp_inc'.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_imp_Continuous.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_imp_Continuous'.con. + +(* UNEXPORTED +End Basic_Properties. +*) + +(* UNEXPORTED +Hint Immediate Derivative_imp_inc Derivative_imp_inc': included. +*) + +(* UNEXPORTED +Hint Immediate Derivative_imp_Continuous Derivative_imp_Continuous': + continuous. +*) + +(* UNEXPORTED +Section More_Results. +*) + +inline cic:/CoRN/ftc/MoreFunctions/I.var. + +inline cic:/CoRN/ftc/MoreFunctions/pI.var. + +(*#* +%\begin{convention}% Assume that [F'] and [G'] are derivatives of [F] and [G], respectively, in [I]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/MoreFunctions/F.var. + +inline cic:/CoRN/ftc/MoreFunctions/F'.var. + +inline cic:/CoRN/ftc/MoreFunctions/G.var. + +inline cic:/CoRN/ftc/MoreFunctions/G'.var. + +inline cic:/CoRN/ftc/MoreFunctions/derF.var. + +inline cic:/CoRN/ftc/MoreFunctions/derG.var. + +inline cic:/CoRN/ftc/MoreFunctions/included_imp_Derivative.con. + +inline cic:/CoRN/ftc/MoreFunctions/Included_imp_Derivative.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_const.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_id.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_plus.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_inv.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_minus.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_mult.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_scal.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_nth.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_recip.con. + +(* UNEXPORTED +End More_Results. +*) + +(* UNEXPORTED +Section More_Corollaries. +*) + +inline cic:/CoRN/ftc/MoreFunctions/I.var. + +inline cic:/CoRN/ftc/MoreFunctions/pI.var. + +inline cic:/CoRN/ftc/MoreFunctions/F.var. + +inline cic:/CoRN/ftc/MoreFunctions/F'.var. + +inline cic:/CoRN/ftc/MoreFunctions/G.var. + +inline cic:/CoRN/ftc/MoreFunctions/G'.var. + +inline cic:/CoRN/ftc/MoreFunctions/derF.var. + +inline cic:/CoRN/ftc/MoreFunctions/derG.var. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreFunctions/Gbnd.var. + +(* end show *) + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_div.con. + +(* UNEXPORTED +End More_Corollaries. +*) + +(* UNEXPORTED +Section More_Sums. +*) + +inline cic:/CoRN/ftc/MoreFunctions/I.var. + +inline cic:/CoRN/ftc/MoreFunctions/pI.var. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_Sumx.con. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreFunctions/f.var. + +inline cic:/CoRN/ftc/MoreFunctions/f'.var. + +inline cic:/CoRN/ftc/MoreFunctions/derF.var. + +(* end show *) + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_Sum0.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_Sum.con. + +(* UNEXPORTED +End More_Sums. +*) + +(* UNEXPORTED +Section Diffble_Basic_Properties. +*) + +(*#* **Differentiability + +Mutatis mutandis for differentiability. +*) + +inline cic:/CoRN/ftc/MoreFunctions/I.var. + +inline cic:/CoRN/ftc/MoreFunctions/pI.var. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_imp_inc.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_imp_Diffble.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_wd.con. + +inline cic:/CoRN/ftc/MoreFunctions/F.var. + +inline cic:/CoRN/ftc/MoreFunctions/G.var. + +inline cic:/CoRN/ftc/MoreFunctions/diffF.var. + +inline cic:/CoRN/ftc/MoreFunctions/diffG.var. + +(*#* +%\begin{convention}% Assume [F] and [G] are differentiable in [I]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/MoreFunctions/included_imp_Diffble.con. + +inline cic:/CoRN/ftc/MoreFunctions/Included_imp_Diffble.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_const.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_id.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_plus.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_inv.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_minus.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_mult.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_nth.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_scal.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_recip.con. + +(* UNEXPORTED +End Diffble_Basic_Properties. +*) + +(* UNEXPORTED +Hint Immediate Diffble_imp_inc: included. +*) + +(* UNEXPORTED +Section Diffble_Corollaries. +*) + +inline cic:/CoRN/ftc/MoreFunctions/I.var. + +inline cic:/CoRN/ftc/MoreFunctions/pI.var. + +inline cic:/CoRN/ftc/MoreFunctions/F.var. + +inline cic:/CoRN/ftc/MoreFunctions/G.var. + +inline cic:/CoRN/ftc/MoreFunctions/diffF.var. + +inline cic:/CoRN/ftc/MoreFunctions/diffG.var. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_div.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_Sum0.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_Sumx.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_Sum.con. + +(* UNEXPORTED +End Diffble_Corollaries. +*) + +(* UNEXPORTED +Section Nth_Derivative. +*) + +(*#* **Nth Derivative + +Higher order derivatives pose more interesting problems. It turns out that it really becomes necessary to generalize our [n_deriv] operator to any interval. +*) + +inline cic:/CoRN/ftc/MoreFunctions/I.var. + +inline cic:/CoRN/ftc/MoreFunctions/pI.var. + +(* UNEXPORTED +Section Definitions. +*) + +(*#* +%\begin{convention}% Let [n:nat], [F:PartIR] and assume that [F] is n-times differentiable in [I]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/MoreFunctions/n.var. + +inline cic:/CoRN/ftc/MoreFunctions/F.var. + +inline cic:/CoRN/ftc/MoreFunctions/diffF.var. + +inline cic:/CoRN/ftc/MoreFunctions/N_Deriv_fun.con. + +inline cic:/CoRN/ftc/MoreFunctions/N_Deriv_char + (* begin hide *).con. + +(* end hide *) + +inline cic:/CoRN/ftc/MoreFunctions/N_Deriv_strext.con. + +inline cic:/CoRN/ftc/MoreFunctions/N_Deriv_wd.con. + +inline cic:/CoRN/ftc/MoreFunctions/N_Deriv.con. + +(* UNEXPORTED +End Definitions. +*) + +(* UNEXPORTED +Section Basic_Results. +*) + +(*#* +All the usual results hold. +*) + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_n_wd.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_n_wdr.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_n_wdl.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_n_unique.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_n_imp_Diffble.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_n_imp_Diffble.con. + +inline cic:/CoRN/ftc/MoreFunctions/le_imp_Diffble_n.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_n_imp_le.con. + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_n_imp_inc.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_n_imp_Diffble_n.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_n_imp_inc.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_n_imp_inc'.con. + +inline cic:/CoRN/ftc/MoreFunctions/included_imp_Derivative_n.con. + +inline cic:/CoRN/ftc/MoreFunctions/included_imp_Diffble_n.con. + +inline cic:/CoRN/ftc/MoreFunctions/Included_imp_Derivative_n.con. + +inline cic:/CoRN/ftc/MoreFunctions/Included_imp_Diffble_n.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_n_plus.con. + +(* UNEXPORTED +End Basic_Results. +*) + +(* UNEXPORTED +Section More_Results. +*) + +(*#* +Some new results hold, too: +*) + +inline cic:/CoRN/ftc/MoreFunctions/N_Deriv_Feq.con. + +inline cic:/CoRN/ftc/MoreFunctions/N_Deriv_lemma.con. + +inline cic:/CoRN/ftc/MoreFunctions/N_Deriv_S.con. + +inline cic:/CoRN/ftc/MoreFunctions/N_Deriv_plus.con. + +(*#* +Some useful characterization results. +*) + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_n_O.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_n_Sn.con. + +(* UNEXPORTED +End More_Results. +*) + +(* UNEXPORTED +Section Derivating_Diffble. +*) + +(*#* +As a special case we get a differentiation operator%\ldots%#...# +*) + +inline cic:/CoRN/ftc/MoreFunctions/F.var. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreFunctions/diffF.var. + +(* end show *) + +inline cic:/CoRN/ftc/MoreFunctions/Diffble_imp_Diffble_n.con. + +inline cic:/CoRN/ftc/MoreFunctions/Deriv.con. + +(* UNEXPORTED +End Derivating_Diffble. +*) + +(* UNEXPORTED +Section Corollaries. +*) + +(*#* +%\ldots%#...# for which the expected property also holds. +*) + +inline cic:/CoRN/ftc/MoreFunctions/Deriv_lemma.con. + +(*#* +Some more interesting properties. +*) + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_n_1.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_n_chain.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_n_imp_Continuous.con. + +inline cic:/CoRN/ftc/MoreFunctions/Derivative_n_imp_Continuous'.con. + +(* UNEXPORTED +End Corollaries. +*) + +(* UNEXPORTED +End Nth_Derivative. +*) + +(* UNEXPORTED +Hint Resolve Derivative_const Derivative_id Derivative_plus Derivative_inv + Derivative_minus Derivative_mult Derivative_scal Derivative_nth + Derivative_recip Derivative_div Derivative_Sumx Derivative_Sum0 + Derivative_Sum: derivate. +*) + +(* UNEXPORTED +Hint Immediate Derivative_n_imp_inc Derivative_n_imp_inc' Diffble_n_imp_inc: + included. +*) + +(* UNEXPORTED +Hint Resolve Deriv_lemma N_Deriv_lemma: derivate. +*) + +(* UNEXPORTED +Hint Immediate Derivative_n_imp_Continuous Derivative_n_imp_Continuous': + continuous. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/MoreIntegrals.ma b/matita/contribs/CoRN-Decl/ftc/MoreIntegrals.ma new file mode 100644 index 000000000..062018bf9 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/MoreIntegrals.ma @@ -0,0 +1,304 @@ +(**************************************************************************) +(* ___ *) +(* ||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/MoreIntegrals". + +(* $Id: MoreIntegrals.v,v 1.6 2004/04/23 10:00:59 lcf Exp $ *) + +(* INCLUDE +Integral +*) + +(* INCLUDE +MoreFunctions +*) + +(* UNEXPORTED +Section Lemmas. +*) + +(*#* printing Integral %\ensuremath{\int}% #∫# *) + +(*#* printing integral' %\ensuremath{\int}% #∫# *) + +(*#* *The generalized integral + +In this file we extend the definition of integral to allow for +arbitrary integration domains (that is, not requiring that the lower +endpoint of integration be less or equal than the upper endpoint) and +we prove the fundamental properties of the new operator. + +%\begin{convention}% Let [a, b : IR] and assume that [F] and [G] are two +partial functions continuous in [[Min(a,b),Max(a,b)]]. +%\end{convention}% + +** Definitions + +Before we define the new integral we need to some trivial interval inclusions. +*) + +inline cic:/CoRN/ftc/MoreIntegrals/a.var. + +inline cic:/CoRN/ftc/MoreIntegrals/b.var. + +inline cic:/CoRN/ftc/MoreIntegrals/Hab.var. + +inline cic:/CoRN/ftc/MoreIntegrals/compact_inc_Min_lft.con. + +inline cic:/CoRN/ftc/MoreIntegrals/compact_inc_Min_rht.con. + +(* UNEXPORTED +End Lemmas. +*) + +(* UNEXPORTED +Section Definitions. +*) + +(*#* +The integral is defined by the formula +$\int_a^bf=\int_{\min(a,b)}^bf-\int_{\min(a,b)}^af$#∫abf=∫min(a,b)bf-∫min(a,b)af#, +inspired by the domain union rule; obviously it coincides with the +classical definition, and it collapses to the old one in the case [a + [<=] b]. +*) + +inline cic:/CoRN/ftc/MoreIntegrals/a.var. + +inline cic:/CoRN/ftc/MoreIntegrals/b.var. + +inline cic:/CoRN/ftc/MoreIntegrals/Hab.var. + +inline cic:/CoRN/ftc/MoreIntegrals/F.var. + +inline cic:/CoRN/ftc/MoreIntegrals/HF.var. + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_inc1.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_inc2.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Integral.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_integral.con. + +(* UNEXPORTED +End Definitions. +*) + +(* UNEXPORTED +Implicit Arguments Integral [a b Hab F]. +*) + +(* UNEXPORTED +Section Properties_of_Integral. +*) + +(*#* **Properties of the Integral + +All our old properties carry over to this new definition---and some +new ones, too. We begin with (strong) extensionality. +*) + +inline cic:/CoRN/ftc/MoreIntegrals/a.var. + +inline cic:/CoRN/ftc/MoreIntegrals/b.var. + +inline cic:/CoRN/ftc/MoreIntegrals/Hab.var. + +inline cic:/CoRN/ftc/MoreIntegrals/F.var. + +inline cic:/CoRN/ftc/MoreIntegrals/G.var. + +inline cic:/CoRN/ftc/MoreIntegrals/contF.var. + +inline cic:/CoRN/ftc/MoreIntegrals/contG.var. + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_strext.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_strext'.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_wd.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_wd'.con. + +(*#* +The integral is a linear operator. +*) + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_const.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_comm_scal.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_plus.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_inv.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_minus.con. + +inline cic:/CoRN/ftc/MoreIntegrals/linear_Integral.con. + +(*#* +If the endpoints are equal then the integral vanishes. +*) + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_empty.con. + +(*#* +And the norm provides an upper bound for the absolute value of the integral. +*) + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_leEq_norm.con. + +(* UNEXPORTED +End Properties_of_Integral. +*) + +(* UNEXPORTED +Section More_Properties. +*) + +(*#* +Two other ways of stating the addition law for domains. +*) + +inline cic:/CoRN/ftc/MoreIntegrals/integral_plus_Integral.con. + +inline cic:/CoRN/ftc/MoreIntegrals/integral_plus_integral'.con. + +(*#* +And now we can prove the addition law for domains with our general operator. + +%\begin{convention}% Assume [c : IR]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/MoreIntegrals/a.var. + +inline cic:/CoRN/ftc/MoreIntegrals/b.var. + +inline cic:/CoRN/ftc/MoreIntegrals/c.var. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreIntegrals/Hab'.var. + +inline cic:/CoRN/ftc/MoreIntegrals/Hac'.var. + +inline cic:/CoRN/ftc/MoreIntegrals/Hcb'.var. + +inline cic:/CoRN/ftc/MoreIntegrals/Habc'.var. + +(* end show *) + +inline cic:/CoRN/ftc/MoreIntegrals/F.var. + +(* begin show *) + +inline cic:/CoRN/ftc/MoreIntegrals/Hab.var. + +inline cic:/CoRN/ftc/MoreIntegrals/Hac.var. + +inline cic:/CoRN/ftc/MoreIntegrals/Hcb.var. + +inline cic:/CoRN/ftc/MoreIntegrals/Habc.var. + +(* end show *) + +(* begin hide *) + +inline cic:/CoRN/ftc/MoreIntegrals/le_abc_ab.con. + +inline cic:/CoRN/ftc/MoreIntegrals/le_abc_ac.con. + +inline cic:/CoRN/ftc/MoreIntegrals/le_abc_cb.con. + +inline cic:/CoRN/ftc/MoreIntegrals/le_abc_a.con. + +inline cic:/CoRN/ftc/MoreIntegrals/le_abc_b.con. + +inline cic:/CoRN/ftc/MoreIntegrals/le_abc_c.con. + +inline cic:/CoRN/ftc/MoreIntegrals/le_ab_a.con. + +inline cic:/CoRN/ftc/MoreIntegrals/le_cb_c.con. + +inline cic:/CoRN/ftc/MoreIntegrals/le_ac_a.con. + +inline cic:/CoRN/ftc/MoreIntegrals/le_ab_b.con. + +inline cic:/CoRN/ftc/MoreIntegrals/le_cb_b.con. + +inline cic:/CoRN/ftc/MoreIntegrals/le_ac_c.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Habc_abc.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Habc_ab.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Habc_ac.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Habc_cb.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Habc_a.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Habc_b.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Habc_c.con. + +(* end hide *) + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_plus_Integral.con. + +(*#* +Notice that, unlike in the classical case, an extra hypothesis (the +continuity of [F] in the interval [[Min(a,b,c),Max(a,b,c)]]) must be assumed. +*) + +(* UNEXPORTED +End More_Properties. +*) + +(* UNEXPORTED +Section Corollaries. +*) + +inline cic:/CoRN/ftc/MoreIntegrals/a.var. + +inline cic:/CoRN/ftc/MoreIntegrals/b.var. + +inline cic:/CoRN/ftc/MoreIntegrals/Hab.var. + +inline cic:/CoRN/ftc/MoreIntegrals/F.var. + +inline cic:/CoRN/ftc/MoreIntegrals/contF.var. + +(*#* As a corollary, we get the following rule: *) + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_op.con. + +(*#* Finally, some miscellaneous results: *) + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_less_norm.con. + +inline cic:/CoRN/ftc/MoreIntegrals/ub_Integral.con. + +(* UNEXPORTED +End Corollaries. +*) + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_ap_zero.con. + +inline cic:/CoRN/ftc/MoreIntegrals/Integral_eq_zero.con. + diff --git a/matita/contribs/CoRN-Decl/ftc/MoreIntervals.ma b/matita/contribs/CoRN-Decl/ftc/MoreIntervals.ma new file mode 100644 index 000000000..9f87239b1 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/MoreIntervals.ma @@ -0,0 +1,458 @@ +(**************************************************************************) +(* ___ *) +(* ||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/MoreIntervals". + +(* $Id: MoreIntervals.v,v 1.6 2004/04/23 10:00:59 lcf Exp $ *) + +(* INCLUDE +NthDerivative +*) + +(* UNEXPORTED +Opaque Min Max. +*) + +(* UNEXPORTED +Section Intervals. +*) + +(*#* printing realline %\ensuremath{\RR}% #(-∞,+∞)# *) + +(*#* printing openl %\ensuremath{(\cdot,+\infty)}% #(⋅,+∞)# *) + +(*#* printing openr %\ensuremath{(-\infty,\cdot)}% #(-∞,⋅)# *) + +(*#* printing closel %\ensuremath{[\cdot,+\infty)}% #[⋅,+∞)# *) + +(*#* printing closer %\ensuremath{(-\infty,\cdot]}% #(-∞,⋅]# *) + +(*#* printing olor %\ensuremath{(\cdot,\cdot)}% #(⋅,⋅)# *) + +(*#* printing clor %\ensuremath{[\cdot,\cdot)}% #[⋅,⋅)# *) + +(*#* printing olcr %\ensuremath{(\cdot,\cdot]}% #(⋅,⋅]# *) + +(*#* printing clcr %\ensuremath{[\cdot,\cdot]}% #[⋅,⋅]# *) + +(*#* *Generalized Intervals + +At this stage we have enough material to begin generalizing our +concepts in preparation for the fundamental theorem of calculus and +the definition of the main (non-polynomial) functions of analysis. + +In order to define functions via power series (or any other kind of +series) we need to formalize a notion of convergence more general than +the one we already have on compact intervals. This is necessary for +practical reasons: we want to define a single exponential function +with domain [IR], not several exponential functions defined on compact +intervals which we prove to be the same wherever their domains +overlap. In a similar way, we want to define indefinite integrals on +infinite domains and not only on compact intervals. + +Unfortunately, proceeding in a way analogous to how we defined the +concept of global continuity will lead us nowhere; the concept turns +out to be to general, and the behaviour on too small domains +(typically intervals [[a,a']] where [a [=] a'] is neither +provably true nor provably false) will be unsatisfactory. + +There is a special family of sets, however, where this problems can be +avoided: intervals. Intervals have some nice properties that allow us +to prove good results, namely the facts that if [a] and [b] are +elements of an interval [I] then so are [Min(a,b)] and +[Max(a,b)] (which is in general not true) and also the +compact interval [[a,b]] is included in [I]. Furthermore, all +intervals are characterized by simple, well defined predicates, and +the nonempty and proper concepts become very easy to define. + +**Definitions and Basic Results + +We define an inductive type of intervals with nine constructors, +corresponding to the nine basic types of intervals. The reason why so +many constructors are needed is that we do not have a notion of real +line, for many reasons which we will not discuss here. Also it seems +simple to directly define finite intervals than to define then later +as intersections of infinite intervals, as it would only mess things +up. + +The compact interval which we will define here is obviously the same +that we have been working with all the way through; why, then, the +different formulation? The reason is simple: if we had worked with +intervals from the beginning we would have had case definitions at +every spot, and our lemmas and proofs would have been very awkward. +Also, it seems more natural to characterize a compact interval by two +real numbers (and a proof) than as a particular case of a more general +concept which doesn't have an intuitive interpretation. Finally, the +definitions we will make here will have the elegant consequence that +from this point on we can work with any kind of intervals in exactly +the same way. +*) + +inline cic:/CoRN/ftc/MoreIntervals/interval.ind. + +(*#* +To each interval a predicate (set) is assigned by the following map: +*) + +inline cic:/CoRN/ftc/MoreIntervals/iprop.con. + +(* begin hide *) + +(* end hide *) + +(*#* +This map is made into a coercion, so that intervals +%\emph{%##are%}%## really subsets of reals. + +We now define what it means for an interval to be nonvoid, proper, +finite and compact in the obvious way. +*) + +inline cic:/CoRN/ftc/MoreIntervals/nonvoid.con. + +inline cic:/CoRN/ftc/MoreIntervals/proper.con. + +inline cic:/CoRN/ftc/MoreIntervals/finite.con. + +inline cic:/CoRN/ftc/MoreIntervals/compact_.con. + +(*#* Finite intervals have a left end and a right end. *) + +inline cic:/CoRN/ftc/MoreIntervals/left_end.con. + +inline cic:/CoRN/ftc/MoreIntervals/right_end.con. + +(*#* +Some trivia: compact intervals are finite; proper intervals are nonvoid; an interval is nonvoid iff it contains some point. +*) + +inline cic:/CoRN/ftc/MoreIntervals/compact_finite.con. + +inline cic:/CoRN/ftc/MoreIntervals/proper_nonvoid.con. + +inline cic:/CoRN/ftc/MoreIntervals/nonvoid_point.con. + +inline cic:/CoRN/ftc/MoreIntervals/nonvoid_char.con. + +(*#* +For practical reasons it helps to define left end and right end of compact intervals. +*) + +inline cic:/CoRN/ftc/MoreIntervals/Lend.con. + +inline cic:/CoRN/ftc/MoreIntervals/Rend.con. + +(*#* In a compact interval, the left end is always less than or equal +to the right end. +*) + +inline cic:/CoRN/ftc/MoreIntervals/Lend_leEq_Rend.con. + +(*#* +Some nice characterizations of inclusion: +*) + +inline cic:/CoRN/ftc/MoreIntervals/compact_included.con. + +inline cic:/CoRN/ftc/MoreIntervals/included_interval'.con. + +inline cic:/CoRN/ftc/MoreIntervals/included_interval.con. + +(*#* +A weirder inclusion result. +*) + +inline cic:/CoRN/ftc/MoreIntervals/included3_interval.con. + +(*#* +Finally, all intervals are characterized by well defined predicates. +*) + +inline cic:/CoRN/ftc/MoreIntervals/iprop_wd.con. + +(* UNEXPORTED +End Intervals. +*) + +(* UNEXPORTED +Implicit Arguments Lend [I]. +*) + +(* UNEXPORTED +Implicit Arguments Rend [I]. +*) + +(* UNEXPORTED +Section Compact_Constructions. +*) + +(* UNEXPORTED +Section Single_Compact_Interval. +*) + +(*#* **Constructions with Compact Intervals + +Several important constructions are now discussed. + +We begin by defining the compact interval [[x,x]]. + +%\begin{convention}% Let [P:IR->CProp] be well defined, and [x:IR] +such that [P(x)] holds. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/MoreIntervals/P.var. + +inline cic:/CoRN/ftc/MoreIntervals/wdP.var. + +inline cic:/CoRN/ftc/MoreIntervals/x.var. + +inline cic:/CoRN/ftc/MoreIntervals/Hx.var. + +inline cic:/CoRN/ftc/MoreIntervals/compact_single.con. + +(*#* +This interval contains [x] and only (elements equal to) [x]; furthermore, for every (well-defined) [P], if $x\in P$#x∈P# then $[x,x]\subseteq P$#[x,x]⊆P#. +*) + +inline cic:/CoRN/ftc/MoreIntervals/compact_single_prop.con. + +inline cic:/CoRN/ftc/MoreIntervals/compact_single_pt.con. + +inline cic:/CoRN/ftc/MoreIntervals/compact_single_inc.con. + +(* UNEXPORTED +End Single_Compact_Interval. +*) + +(*#* +The special case of intervals is worth singling out, as one of the hypothesis becomes a theorem. +*) + +inline cic:/CoRN/ftc/MoreIntervals/compact_single_iprop.con. + +(*#* +Now for more interesting and important results. + +Let [I] be a proper interval and [x] be a point of [I]. Then there is +a proper compact interval [[a,b]] such that $x\in[a,b]\subseteq +I$#x∈[a,b]⊆I#. +*) + +(* UNEXPORTED +Section Proper_Compact_with_One_or_Two_Points. +*) + +(* begin hide *) + +inline cic:/CoRN/ftc/MoreIntervals/cip1'.con. + +inline cic:/CoRN/ftc/MoreIntervals/cip1''.con. + +inline cic:/CoRN/ftc/MoreIntervals/cip1'''.con. + +inline cic:/CoRN/ftc/MoreIntervals/cip1''''.con. + +inline cic:/CoRN/ftc/MoreIntervals/cip2.con. + +inline cic:/CoRN/ftc/MoreIntervals/cip2'.con. + +inline cic:/CoRN/ftc/MoreIntervals/cip2''.con. + +inline cic:/CoRN/ftc/MoreIntervals/cip2'''.con. + +inline cic:/CoRN/ftc/MoreIntervals/cip3.con. + +inline cic:/CoRN/ftc/MoreIntervals/cip3'.con. + +inline cic:/CoRN/ftc/MoreIntervals/cip3''.con. + +inline cic:/CoRN/ftc/MoreIntervals/cip3'''.con. + +(* end hide *) + +inline cic:/CoRN/ftc/MoreIntervals/compact_in_interval.con. + +inline cic:/CoRN/ftc/MoreIntervals/compact_compact_in_interval.con. + +inline cic:/CoRN/ftc/MoreIntervals/proper_compact_in_interval.con. + +inline cic:/CoRN/ftc/MoreIntervals/proper_compact_in_interval'.con. + +inline cic:/CoRN/ftc/MoreIntervals/included_compact_in_interval.con. + +inline cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval.con. + +inline cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval'.con. + +inline cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval_inc1.con. + +inline cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval_inc2.con. + +(*#* +If [x [=] y] then the construction yields the same interval whether we +use [x] or [y] in its definition. This property is required at some +stage, which is why we formalized this result as a functional +definition rather than as an existential formula. +*) + +inline cic:/CoRN/ftc/MoreIntervals/compact_in_interval_wd1.con. + +inline cic:/CoRN/ftc/MoreIntervals/compact_in_interval_wd2.con. + +(*#* +We can make an analogous construction for two points. +*) + +inline cic:/CoRN/ftc/MoreIntervals/compact_in_interval2.con. + +inline cic:/CoRN/ftc/MoreIntervals/compact_compact_in_interval2.con. + +inline cic:/CoRN/ftc/MoreIntervals/proper_compact_in_interval2.con. + +inline cic:/CoRN/ftc/MoreIntervals/proper_compact_in_interval2'.con. + +inline cic:/CoRN/ftc/MoreIntervals/included_compact_in_interval2.con. + +inline cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval2x.con. + +inline cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval2y.con. + +inline cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval2x'.con. + +inline cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval2y'.con. + +inline cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval2_inc1.con. + +inline cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval2_inc2.con. + +inline cic:/CoRN/ftc/MoreIntervals/compact_in_interval_x_lft.con. + +inline cic:/CoRN/ftc/MoreIntervals/compact_in_interval_y_lft.con. + +inline cic:/CoRN/ftc/MoreIntervals/compact_in_interval_x_rht.con. + +inline cic:/CoRN/ftc/MoreIntervals/compact_in_interval_y_rht.con. + +(* UNEXPORTED +End Proper_Compact_with_One_or_Two_Points. +*) + +(*#* +Compact intervals are exactly compact intervals(!). +*) + +inline cic:/CoRN/ftc/MoreIntervals/interval_compact_inc.con. + +inline cic:/CoRN/ftc/MoreIntervals/compact_interval_inc.con. + +(*#* +A generalization of the previous results: if $[a,b]\subseteq J$#[a,b]⊆J# +and [J] is proper, then we can find a proper interval [[a',b']] such that +$[a,b]\subseteq[a',b']\subseteq J$#[a,b]⊆[a',b']⊆J#. +*) + +inline cic:/CoRN/ftc/MoreIntervals/compact_proper_in_interval.con. + +(* UNEXPORTED +End Compact_Constructions. +*) + +(* UNEXPORTED +Section Functions. +*) + +(*#* **Properties of Functions in Intervals + +We now define notions of continuity, differentiability and so on on +arbitrary intervals. As expected, a function [F] has property [P] in +the (proper) interval [I] iff it has property [P] in every compact +interval included in [I]. We can formalize this in a nice way using +previously defined concepts. + +%\begin{convention}% Let [n:nat] and [I:interval]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/MoreIntervals/n.var. + +inline cic:/CoRN/ftc/MoreIntervals/I.var. + +inline cic:/CoRN/ftc/MoreIntervals/Continuous.con. + +inline cic:/CoRN/ftc/MoreIntervals/Derivative.con. + +inline cic:/CoRN/ftc/MoreIntervals/Diffble.con. + +inline cic:/CoRN/ftc/MoreIntervals/Derivative_n.con. + +inline cic:/CoRN/ftc/MoreIntervals/Diffble_n.con. + +(* UNEXPORTED +End Functions. +*) + +(* UNEXPORTED +Section Reflexivity_Properties. +*) + +(*#* +In the case of compact intervals, this definitions collapse to the old ones. +*) + +inline cic:/CoRN/ftc/MoreIntervals/Continuous_Int.con. + +inline cic:/CoRN/ftc/MoreIntervals/Int_Continuous.con. + +inline cic:/CoRN/ftc/MoreIntervals/Derivative_Int.con. + +inline cic:/CoRN/ftc/MoreIntervals/Int_Derivative.con. + +inline cic:/CoRN/ftc/MoreIntervals/Diffble_Int.con. + +inline cic:/CoRN/ftc/MoreIntervals/Int_Diffble.con. + +(* UNEXPORTED +End Reflexivity_Properties. +*) + +(* UNEXPORTED +Section Lemmas. +*) + +(*#* +Interestingly, inclusion and equality in an interval are also characterizable in a similar way: +*) + +inline cic:/CoRN/ftc/MoreIntervals/included_imp_inc.con. + +inline cic:/CoRN/ftc/MoreIntervals/included_Feq''.con. + +inline cic:/CoRN/ftc/MoreIntervals/included_Feq'.con. + +(* UNEXPORTED +End Lemmas. +*) + +(* UNEXPORTED +Hint Resolve included_interval included_interval' included3_interval + compact_single_inc compact_single_iprop included_compact_in_interval + iprop_compact_in_interval_inc1 iprop_compact_in_interval_inc2 + included_compact_in_interval2 iprop_compact_in_interval2_inc1 + iprop_compact_in_interval2_inc2 interval_compact_inc compact_interval_inc + iprop_wd: included. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/NthDerivative.ma b/matita/contribs/CoRN-Decl/ftc/NthDerivative.ma new file mode 100644 index 000000000..7f918465b --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/NthDerivative.ma @@ -0,0 +1,302 @@ +(**************************************************************************) +(* ___ *) +(* ||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/NthDerivative". + +(* $Id: NthDerivative.v,v 1.5 2004/04/20 22:38:50 hinderer Exp $ *) + +(* INCLUDE +Differentiability +*) + +(* UNEXPORTED +Section Nth_Derivative. +*) + +(*#* *Nth Derivative + +We now study higher order differentiability. + +%\begin{convention}% Throughout this section: + - [a, b] will be real numbers with [a [<] b]; + - [I] will denote the compact interval [[a,b]]; + - [F, G, H] will denote partial functions. + +%\end{convention}% + +**Definitions + +We first define what we mean by the derivative of order [n] of a function. +*) + +inline cic:/CoRN/ftc/NthDerivative/a.var. + +inline cic:/CoRN/ftc/NthDerivative/b.var. + +inline cic:/CoRN/ftc/NthDerivative/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/NthDerivative/Hab.con. + +inline cic:/CoRN/ftc/NthDerivative/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/NthDerivative/Derivative_I_n.con. + +(*#* +Unlike first order differentiability, for our definition to be +workable it is better to define directly what it means for a function +to be [n] times differentiable instead of quantifying over the +[Derivative_I_n] relation. +*) + +inline cic:/CoRN/ftc/NthDerivative/Diffble_I_n.con. + +(* UNEXPORTED +End Nth_Derivative. +*) + +(* UNEXPORTED +Implicit Arguments Derivative_I_n [a b]. +*) + +(* UNEXPORTED +Implicit Arguments Diffble_I_n [a b]. +*) + +(* UNEXPORTED +Section Trivia. +*) + +(*#* **Trivia + +These are the expected extensionality and uniqueness results. +*) + +inline cic:/CoRN/ftc/NthDerivative/a.var. + +inline cic:/CoRN/ftc/NthDerivative/b.var. + +inline cic:/CoRN/ftc/NthDerivative/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/NthDerivative/Hab.con. + +inline cic:/CoRN/ftc/NthDerivative/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/NthDerivative/Diffble_I_n_wd.con. + +inline cic:/CoRN/ftc/NthDerivative/Derivative_I_n_wdr.con. + +inline cic:/CoRN/ftc/NthDerivative/Derivative_I_n_wdl.con. + +inline cic:/CoRN/ftc/NthDerivative/Derivative_I_n_unique.con. + +(* UNEXPORTED +End Trivia. +*) + +(* UNEXPORTED +Section Basic_Results. +*) + +(*#* **Basic Results + +We now explore the concept of [n] times differentiability. Notice +that, unlike the first order case, we do not pay so much attention to +the relation of [n] times derivative, but focus rather on the +definition of [Diffble_I_n]. +*) + +inline cic:/CoRN/ftc/NthDerivative/a.var. + +inline cic:/CoRN/ftc/NthDerivative/b.var. + +inline cic:/CoRN/ftc/NthDerivative/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/NthDerivative/Hab.con. + +inline cic:/CoRN/ftc/NthDerivative/I.con. + +(* end hide *) + +(*#* +We begin by showing that having a higher order derivative implies being differentiable. +*) + +inline cic:/CoRN/ftc/NthDerivative/Diffble_I_n_imp_diffble.con. + +inline cic:/CoRN/ftc/NthDerivative/deriv_n_imp_diffble.con. + +(*#* +If a function is [n] times differentiable then it is also [m] times differentiable for every [m] less or equal than [n]. +*) + +inline cic:/CoRN/ftc/NthDerivative/le_imp_Diffble_I.con. + +(*#* +The next result consolidates our intuition that a function is [n] +times differentiable if we can build from it a chain of [n] +derivatives. +*) + +inline cic:/CoRN/ftc/NthDerivative/Diffble_I_imp_le.con. + +(*#* +As expected, an [n] times differentiable in [[a,b]] function must be +defined in that interval. +*) + +inline cic:/CoRN/ftc/NthDerivative/Diffble_I_n_imp_inc.con. + +(*#* +Also, the notions of derivative and differentiability are related as expected. +*) + +inline cic:/CoRN/ftc/NthDerivative/Diffble_I_n_imp_deriv_n.con. + +inline cic:/CoRN/ftc/NthDerivative/deriv_n_imp_Diffble_I_n.con. + +(*#* +From this we can prove that if [F] has an nth order derivative in +[[a,b]] then both [F] and its derivative are defined in that interval. +*) + +inline cic:/CoRN/ftc/NthDerivative/Derivative_I_n_imp_inc.con. + +inline cic:/CoRN/ftc/NthDerivative/Derivative_I_n_imp_inc'.con. + +(* UNEXPORTED +Section aux. +*) + +(*#* +First order differentiability is just a special case. +*) + +(* begin show *) + +inline cic:/CoRN/ftc/NthDerivative/F.var. + +inline cic:/CoRN/ftc/NthDerivative/diffF.var. + +inline cic:/CoRN/ftc/NthDerivative/diffFn.var. + +(* end show *) + +inline cic:/CoRN/ftc/NthDerivative/deriv_1_deriv.con. + +inline cic:/CoRN/ftc/NthDerivative/deriv_1_deriv'.con. + +(* UNEXPORTED +End aux. +*) + +(*#* +As usual, nth order derivability is preserved by shrinking the interval. +*) + +inline cic:/CoRN/ftc/NthDerivative/included_imp_deriv_n.con. + +inline cic:/CoRN/ftc/NthDerivative/included_imp_diffble_n.con. + +(*#* +And finally we have an addition rule for the order of the derivative. +*) + +inline cic:/CoRN/ftc/NthDerivative/Derivative_I_n_plus.con. + +(* UNEXPORTED +End Basic_Results. +*) + +(* UNEXPORTED +Section More_Results. +*) + +inline cic:/CoRN/ftc/NthDerivative/a.var. + +inline cic:/CoRN/ftc/NthDerivative/b.var. + +inline cic:/CoRN/ftc/NthDerivative/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/NthDerivative/Hab.con. + +inline cic:/CoRN/ftc/NthDerivative/I.con. + +(* end hide *) + +(*#* **The Nth Derivative + +We now define an operator that returns an nth order derivative of an +n-times differentiable function. This is analogous to the quantifier +elimination which we would get if we had defined nth differentiability +as an existential quantification of the nth derivative relation. +*) + +inline cic:/CoRN/ftc/NthDerivative/n_deriv_I.con. + +(*#* +This operator is well defined and works as expected. +*) + +inline cic:/CoRN/ftc/NthDerivative/n_deriv_I_wd.con. + +inline cic:/CoRN/ftc/NthDerivative/n_deriv_lemma.con. + +inline cic:/CoRN/ftc/NthDerivative/n_deriv_inc.con. + +inline cic:/CoRN/ftc/NthDerivative/n_deriv_inc'.con. + +(*#* +Some basic properties of this operation. +*) + +inline cic:/CoRN/ftc/NthDerivative/n_Sn_deriv.con. + +inline cic:/CoRN/ftc/NthDerivative/n_deriv_plus.con. + +(* UNEXPORTED +End More_Results. +*) + +(* UNEXPORTED +Section More_on_n_deriv. +*) + +(*#* +Some not so basic properties of this operation (needed in rather specific situations). +*) + +inline cic:/CoRN/ftc/NthDerivative/n_deriv_I_wd'.con. + +inline cic:/CoRN/ftc/NthDerivative/n_deriv_I_wd''.con. + +inline cic:/CoRN/ftc/NthDerivative/n_deriv_I_strext'.con. + +(* UNEXPORTED +End More_on_n_deriv. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/PartFunEquality.ma b/matita/contribs/CoRN-Decl/ftc/PartFunEquality.ma new file mode 100644 index 000000000..0ca5ba98a --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/PartFunEquality.ma @@ -0,0 +1,419 @@ +(**************************************************************************) +(* ___ *) +(* ||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/PartFunEquality". + +(* $Id: PartFunEquality.v,v 1.8 2004/04/23 10:00:59 lcf Exp $ *) + +(*#* printing Feq %\ensuremath{\approx}% #≈# *) + +(* INCLUDE +Intervals +*) + +(* INCLUDE +DiffTactics1 +*) + +(* UNEXPORTED +Section Definitions. +*) + +(*#* *Equality of Partial Functions + +** Definitions + +In some contexts (namely when quantifying over partial functions) we +need to refer explicitly to the subsetoid of elements satisfying a +given predicate rather than to the predicate itself. The following +definition makes this possible. +*) + +inline cic:/CoRN/ftc/PartFunEquality/subset.con. + +(*#* +The core of our work will revolve around the following fundamental +notion: two functions are equal in a given domain (predicate) iff they +coincide on every point of that domain#. #%\footnote{%Notice that, +according to our definition of partial function, it is equivalent to +prove the equality for every proof or for a specific proof. Typically +it is easier to consider a generic case%.}%. This file is concerned +with proving the main properties of this equality relation. +*) + +inline cic:/CoRN/ftc/PartFunEquality/Feq.con. + +(*#* +Notice that, because the quantification over the proofs is universal, +we must require explicitly that the predicate be included in the +domain of each function; otherwise the basic properties of equality +(like, for example, transitivity) would fail to hold#. #%\footnote{%To +see this it is enough to realize that the empty function would be +equal to every other function in every domain.%}.% The way to +circumvent this would be to quantify existentially over the proofs; +this, however, would have two major disadvantages: first, proofs of +equality would become very cumbersome and clumsy; secondly (and most +important), we often need to prove the inclusions from an equality +hypothesis, and this definition allows us to do it in a very easy way. +Also, the pointwise equality is much nicer to use from this definition +than in an existentially quantified one. +*) + +(* UNEXPORTED +End Definitions. +*) + +(* UNEXPORTED +Section Equality_Results. +*) + +(*#* **Properties of Inclusion + +We will now prove the main properties of the equality relation. + +%\begin{convention}% Let [I,R:IR->CProp] and [F,G:PartIR], and denote +by [P] and [Q], respectively, the domains of [F] and [G]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/PartFunEquality/I.var. + +inline cic:/CoRN/ftc/PartFunEquality/F.var. + +inline cic:/CoRN/ftc/PartFunEquality/G.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/PartFunEquality/P.con. + +inline cic:/CoRN/ftc/PartFunEquality/Q.con. + +(* end hide *) + +inline cic:/CoRN/ftc/PartFunEquality/R.var. + +(*#* +We start with two lemmas which make it much easier to prove and use +this definition: +*) + +inline cic:/CoRN/ftc/PartFunEquality/eq_imp_Feq.con. + +inline cic:/CoRN/ftc/PartFunEquality/Feq_imp_eq.con. + +inline cic:/CoRN/ftc/PartFunEquality/included_IR.con. + +(* UNEXPORTED +End Equality_Results. +*) + +(* UNEXPORTED +Hint Resolve included_IR : included. +*) + +(* UNEXPORTED +Section Some_More. +*) + +(*#* +If two function coincide on a given subset then they coincide in any smaller subset. +*) + +inline cic:/CoRN/ftc/PartFunEquality/included_Feq.con. + +(* UNEXPORTED +End Some_More. +*) + +(* UNEXPORTED +Section Away_from_Zero. +*) + +(* UNEXPORTED +Section Definitions. +*) + +(*#* **Away from Zero + +Before we prove our main results about the equality we have to do some +work on division. A function is said to be bounded away from zero in +a set if there exists a positive lower bound for the set of absolute +values of its image of that set. + +%\begin{convention}% Let [I : IR->CProp], [F : PartIR] and denote by [P] +the domain of [F]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/PartFunEquality/I.var. + +inline cic:/CoRN/ftc/PartFunEquality/F.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/PartFunEquality/P.con. + +(* end hide *) + +inline cic:/CoRN/ftc/PartFunEquality/bnd_away_zero.con. + +(*#* +If [F] is bounded away from zero in [I] then [F] is necessarily apart from zero in [I]; also this means that [I] is included in the domain of [{1/}F]. +*) + +(* begin show *) + +inline cic:/CoRN/ftc/PartFunEquality/Hf.var. + +(* end show *) + +inline cic:/CoRN/ftc/PartFunEquality/bnd_imp_ap_zero.con. + +inline cic:/CoRN/ftc/PartFunEquality/bnd_imp_inc_recip.con. + +inline cic:/CoRN/ftc/PartFunEquality/bnd_imp_inc_div.con. + +(* UNEXPORTED +End Definitions. +*) + +(*#* +Boundedness away from zero is preserved through restriction of the set. + +%\begin{convention}% Let [F] be a partial function and [P, Q] be predicates. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/PartFunEquality/F.var. + +inline cic:/CoRN/ftc/PartFunEquality/P.var. + +inline cic:/CoRN/ftc/PartFunEquality/Q.var. + +inline cic:/CoRN/ftc/PartFunEquality/included_imp_bnd.con. + +inline cic:/CoRN/ftc/PartFunEquality/FRestr_bnd.con. + +(*#* +A function is said to be bounded away from zero everywhere if it is bounded away from zero in every compact subinterval of its domain; a similar definition is made for arbitrary sets, which will be necessary for future work. +*) + +inline cic:/CoRN/ftc/PartFunEquality/bnd_away_zero_everywhere.con. + +inline cic:/CoRN/ftc/PartFunEquality/bnd_away_zero_in_P.con. + +(*#* +An immediate consequence: +*) + +inline cic:/CoRN/ftc/PartFunEquality/bnd_in_P_imp_ap_zero.con. + +inline cic:/CoRN/ftc/PartFunEquality/FRestr_bnd'.con. + +(* UNEXPORTED +End Away_from_Zero. +*) + +(* UNEXPORTED +Hint Resolve bnd_imp_inc_recip bnd_imp_inc_div: included. +*) + +(* UNEXPORTED +Hint Immediate bnd_in_P_imp_ap_zero: included. +*) + +(*#* ** The [FEQ] tactic +This tactic splits a goal of the form [Feq I F G] into the three subgoals +[included I (Dom F)], [included I (Dom G)] and [forall x, F x [=] G x] +and applies [Included] to the first two and [rational] to the third. +*) + +(* begin hide *) + +(* UNEXPORTED +Ltac FEQ := apply eq_imp_Feq; + [ Included | Included | intros; try (simpl in |- *; rational) ]. +*) + +(* end hide *) + +(* UNEXPORTED +Section More_on_Equality. +*) + +(*#* **Properties of Equality + +We are now finally able to prove the main properties of the equality relation. We begin by showing it to be an equivalence relation. + +%\begin{convention}% Let [I] be a predicate and [F, F', G, G', H] be +partial functions. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/PartFunEquality/I.var. + +(* UNEXPORTED +Section Feq_Equivalence. +*) + +inline cic:/CoRN/ftc/PartFunEquality/F.var. + +inline cic:/CoRN/ftc/PartFunEquality/G.var. + +inline cic:/CoRN/ftc/PartFunEquality/H.var. + +inline cic:/CoRN/ftc/PartFunEquality/Feq_reflexive.con. + +inline cic:/CoRN/ftc/PartFunEquality/Feq_symmetric.con. + +inline cic:/CoRN/ftc/PartFunEquality/Feq_transitive.con. + +(* UNEXPORTED +End Feq_Equivalence. +*) + +(* UNEXPORTED +Section Operations. +*) + +(*#* +Also it is preserved through application of functional constructors and restriction. +*) + +inline cic:/CoRN/ftc/PartFunEquality/F.var. + +inline cic:/CoRN/ftc/PartFunEquality/F'.var. + +inline cic:/CoRN/ftc/PartFunEquality/G.var. + +inline cic:/CoRN/ftc/PartFunEquality/G'.var. + +inline cic:/CoRN/ftc/PartFunEquality/Feq_plus.con. + +inline cic:/CoRN/ftc/PartFunEquality/Feq_inv.con. + +inline cic:/CoRN/ftc/PartFunEquality/Feq_minus.con. + +inline cic:/CoRN/ftc/PartFunEquality/Feq_mult.con. + +inline cic:/CoRN/ftc/PartFunEquality/Feq_nth.con. + +inline cic:/CoRN/ftc/PartFunEquality/Feq_recip.con. + +inline cic:/CoRN/ftc/PartFunEquality/Feq_recip'.con. + +inline cic:/CoRN/ftc/PartFunEquality/Feq_div.con. + +inline cic:/CoRN/ftc/PartFunEquality/Feq_div'.con. + +(*#* +Notice that in the case of division we only need to require boundedness away from zero for one of the functions (as they are equal); thus the two last lemmas are stated in two different ways, as according to the context one or the other condition may be easier to prove. + +The restriction of a function is well defined. +*) + +inline cic:/CoRN/ftc/PartFunEquality/FRestr_wd.con. + +(*#* +The image of a set is extensional. +*) + +inline cic:/CoRN/ftc/PartFunEquality/fun_image_wd.con. + +(* UNEXPORTED +End Operations. +*) + +(* UNEXPORTED +End More_on_Equality. +*) + +(* UNEXPORTED +Section Nth_Power. +*) + +(*#* **Nth Power + +We finish this group of lemmas with characterization results for the +power function (similar to those already proved for arbitrary rings). +The characterization is done at first pointwise and later using the +equality relation. + +%\begin{convention}% Let [F] be a partial function with domain [P] and +[Q] be a predicate on the real numbers assumed to be included in [P]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/PartFunEquality/F.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/PartFunEquality/P.con. + +(* end hide *) + +inline cic:/CoRN/ftc/PartFunEquality/Q.var. + +inline cic:/CoRN/ftc/PartFunEquality/H.var. + +inline cic:/CoRN/ftc/PartFunEquality/Hf.var. + +inline cic:/CoRN/ftc/PartFunEquality/FNth_zero.con. + +inline cic:/CoRN/ftc/PartFunEquality/n.var. + +inline cic:/CoRN/ftc/PartFunEquality/H'.var. + +inline cic:/CoRN/ftc/PartFunEquality/FNth_mult.con. + +(* UNEXPORTED +End Nth_Power. +*) + +(* UNEXPORTED +Section Strong_Nth_Power. +*) + +(*#* +%\begin{convention}% Let [a,b] be real numbers such that [I := [a,b]] +is included in the domain of [F]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/PartFunEquality/a.var. + +inline cic:/CoRN/ftc/PartFunEquality/b.var. + +inline cic:/CoRN/ftc/PartFunEquality/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/PartFunEquality/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/PartFunEquality/F.var. + +inline cic:/CoRN/ftc/PartFunEquality/incF.var. + +inline cic:/CoRN/ftc/PartFunEquality/FNth_zero'.con. + +inline cic:/CoRN/ftc/PartFunEquality/FNth_mult'.con. + +(* UNEXPORTED +End Strong_Nth_Power. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/PartInterval.ma b/matita/contribs/CoRN-Decl/ftc/PartInterval.ma new file mode 100644 index 000000000..b4f8515cf --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/PartInterval.ma @@ -0,0 +1,195 @@ +(**************************************************************************) +(* ___ *) +(* ||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/PartInterval". + +(* $Id: PartInterval.v,v 1.6 2004/04/23 10:01:00 lcf Exp $ *) + +(* INCLUDE +IntervalFunct +*) + +(* UNEXPORTED +Section Conversion. +*) + +(*#* *Correspondence + +In this file we prove that there are mappings going in both ways +between the set of partial functions whose domain contains +[[a,b]] and the set of real-valued functions with domain on +that interval. These mappings form an adjunction, and thus they have +all the good properties for preservation results. + +**Mappings + +We begin by defining the map from partial functions to setoid +functions as simply being the restriction of the partial function to +the interval [[a,b]]. + +%\begin{convention}% Let [F] be a partial function and [a,b:IR] such +that [I [=] [a,b]] is included in the domain of [F]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/PartInterval/F.var. + +inline cic:/CoRN/ftc/PartInterval/a.var. + +inline cic:/CoRN/ftc/PartInterval/b.var. + +inline cic:/CoRN/ftc/PartInterval/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/PartInterval/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/PartInterval/Hf.var. + +inline cic:/CoRN/ftc/PartInterval/IntPartIR_strext.con. + +inline cic:/CoRN/ftc/PartInterval/IntPartIR.con. + +(* UNEXPORTED +End Conversion. +*) + +(* UNEXPORTED +Implicit Arguments IntPartIR [F a b Hab]. +*) + +(* UNEXPORTED +Section AntiConversion. +*) + +(*#* +To go the other way around, we simply take a setoid function [f] with +domain [[a,b]] and build the corresponding partial function. +*) + +inline cic:/CoRN/ftc/PartInterval/a.var. + +inline cic:/CoRN/ftc/PartInterval/b.var. + +inline cic:/CoRN/ftc/PartInterval/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/PartInterval/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/PartInterval/f.var. + +inline cic:/CoRN/ftc/PartInterval/PartInt_strext.con. + +inline cic:/CoRN/ftc/PartInterval/PartInt.con. + +(* UNEXPORTED +End AntiConversion. +*) + +(* UNEXPORTED +Implicit Arguments PartInt [a b Hab]. +*) + +(* UNEXPORTED +Section Inverses. +*) + +(*#* +In one direction these operators are inverses. +*) + +inline cic:/CoRN/ftc/PartInterval/int_part_int.con. + +(* UNEXPORTED +End Inverses. +*) + +(* UNEXPORTED +Section Equivalences. +*) + +(*#* **Mappings Preserve Operations + +We now prove that all the operations we have defined on both sets are +preserved by [PartInt]. + +%\begin{convention}% Let [F,G] be partial functions and [a,b:IR] and +denote by [I] the interval [[a,b]]. Let [f,g] be setoid functions of +type [I->IR] equal respectively to [F] and [G] in [I]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/PartInterval/F.var. + +inline cic:/CoRN/ftc/PartInterval/G.var. + +inline cic:/CoRN/ftc/PartInterval/a.var. + +inline cic:/CoRN/ftc/PartInterval/b.var. + +inline cic:/CoRN/ftc/PartInterval/c.var. + +inline cic:/CoRN/ftc/PartInterval/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/PartInterval/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/PartInterval/f.var. + +inline cic:/CoRN/ftc/PartInterval/g.var. + +inline cic:/CoRN/ftc/PartInterval/Ff.var. + +inline cic:/CoRN/ftc/PartInterval/Gg.var. + +inline cic:/CoRN/ftc/PartInterval/part_int_const.con. + +inline cic:/CoRN/ftc/PartInterval/part_int_id.con. + +inline cic:/CoRN/ftc/PartInterval/part_int_plus.con. + +inline cic:/CoRN/ftc/PartInterval/part_int_inv.con. + +inline cic:/CoRN/ftc/PartInterval/part_int_minus.con. + +inline cic:/CoRN/ftc/PartInterval/part_int_mult.con. + +inline cic:/CoRN/ftc/PartInterval/part_int_nth.con. + +(* begin show *) + +inline cic:/CoRN/ftc/PartInterval/HG.var. + +inline cic:/CoRN/ftc/PartInterval/Hg.var. + +(* end show *) + +inline cic:/CoRN/ftc/PartInterval/part_int_recip.con. + +inline cic:/CoRN/ftc/PartInterval/part_int_div.con. + +(* UNEXPORTED +End Equivalences. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/Partitions.ma b/matita/contribs/CoRN-Decl/ftc/Partitions.ma new file mode 100644 index 000000000..6c29c9ece --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/Partitions.ma @@ -0,0 +1,486 @@ +(**************************************************************************) +(* ___ *) +(* ||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/Partitions". + +(* $Id: Partitions.v,v 1.7 2004/04/23 10:01:00 lcf Exp $ *) + +(* INCLUDE +Continuity +*) + +(*#* printing Partition_Sum %\ensuremath{\sum_P}% #∑P# *) + +(* UNEXPORTED +Section Definitions. +*) + +(*#* *Partitions + +We now begin to lay the way for the definition of Riemann integral. This will +be done through the definition of a sequence of +sums that is proved to be convergent; in order to do that, we first +need to do a bit of work on partitions. + +**Definitions + +A partition is defined as a record type. For each compact interval [[a,b]] +and each natural number [n], a partition of [[a,b]] with [n+1] points is a +choice of real numbers [a [=] a0 [<=] a1 [<=] an [=] b]; the following +specification works as follows: + - [Pts] is the function that chooses the points (it is declared as a +coercion); + - [prf1] states that [Pts] is a setoid function; + - [prf2] states that the points are ordered; + - [start] requires that [a0 [=] a] and + - [finish] requires that [an [=] b]. + +*) + +inline cic:/CoRN/ftc/Partitions/Partition.ind. + +(*#* Two immediate consequences of this are that [ai [<=] aj] whenever +[i < j] and that [ai] is in [[a,b]] for all [i]. +*) + +inline cic:/CoRN/ftc/Partitions/Partition_mon.con. + +inline cic:/CoRN/ftc/Partitions/Partition_in_compact.con. + +(*#* +Each partition of [[a,b]] implies a partition of the interval +$[a,a_{n-1}]$#[a,an-1]#. This partition will play an +important role in much of our future work, so we take some care to +define it. +*) + +inline cic:/CoRN/ftc/Partitions/part_pred_lemma.con. + +inline cic:/CoRN/ftc/Partitions/Partition_Dom.con. + +(*#* +The mesh of a partition is the greatest distance between two +consecutive points. For convenience's sake we also define the dual +concept, which is very helpful in some situations. In order to do +this, we begin by building a list with all the distances between +consecutive points; next we only need to extract the maximum and the +minimum of this list. Notice that this list is nonempty except in the +case when [a [=] b] and [n = 0]; this means that the convention we took +of defining the minimum and maximum of the empty list to be [0] actually +helps us in this case. +*) + +inline cic:/CoRN/ftc/Partitions/Part_Mesh_List.con. + +inline cic:/CoRN/ftc/Partitions/Mesh.con. + +inline cic:/CoRN/ftc/Partitions/AntiMesh.con. + +(*#* +Even partitions (partitions where all the points are evenly spaced) +will also play a central role in our work; the first two lemmas are +presented simply to make the definition of even partition lighter. +*) + +inline cic:/CoRN/ftc/Partitions/even_part_1.con. + +inline cic:/CoRN/ftc/Partitions/even_part_2.con. + +inline cic:/CoRN/ftc/Partitions/Even_Partition.con. + +(* UNEXPORTED +Section Refinements. +*) + +inline cic:/CoRN/ftc/Partitions/a.var. + +inline cic:/CoRN/ftc/Partitions/b.var. + +inline cic:/CoRN/ftc/Partitions/Hab.var. + +inline cic:/CoRN/ftc/Partitions/m.var. + +inline cic:/CoRN/ftc/Partitions/n.var. + +inline cic:/CoRN/ftc/Partitions/P.var. + +inline cic:/CoRN/ftc/Partitions/Q.var. + +(*#* +We now define what it means for a partition [Q] to be a refinement of +[P] and prove the main property of refinements. +*) + +inline cic:/CoRN/ftc/Partitions/Refinement.con. + +inline cic:/CoRN/ftc/Partitions/Refinement_prop.con. + +(*#* +We will also need to consider arbitrary sums %of the form +\[\sum_{i=0}^{n-1}f(x_i)(a_{i+1}-a_i)\]%#of +f(xi)(ai+1-ai)# where +$x_i\in[a_i,a_{i+1}]$#xi∈[ai,ai+1]#. +For this, we again need a choice function [x] which has to satisfy +some condition. We define the condition and the sum for a fixed [P]: +*) + +inline cic:/CoRN/ftc/Partitions/Points_in_Partition.con. + +inline cic:/CoRN/ftc/Partitions/Pts_part_lemma.con. + +inline cic:/CoRN/ftc/Partitions/Partition_Sum.con. + +(* UNEXPORTED +End Refinements. +*) + +(* UNEXPORTED +Implicit Arguments Points_in_Partition [a b Hab n]. +*) + +(* UNEXPORTED +Implicit Arguments Partition_Sum [a b Hab n P g F]. +*) + +(*#* **Constructions + +We now formalize some trivial and helpful constructions. + +%\begin{convention}% We will assume a fixed compact interval [[a,b]], denoted by [I]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Partitions/a.var. + +inline cic:/CoRN/ftc/Partitions/b.var. + +inline cic:/CoRN/ftc/Partitions/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Partitions/I.con. + +(* end hide *) + +(* UNEXPORTED +Section Getting_Points. +*) + +(*#* +From a partition we always have a canonical choice of points at which +to evaluate a function: just take all but the last points of the +partition. + +%\begin{convention}% Let [Q] be a partition of [I] with [m] points. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Partitions/m.var. + +inline cic:/CoRN/ftc/Partitions/Q.var. + +inline cic:/CoRN/ftc/Partitions/Partition_imp_points.con. + +inline cic:/CoRN/ftc/Partitions/Partition_imp_points_1.con. + +inline cic:/CoRN/ftc/Partitions/Partition_imp_points_2.con. + +(* UNEXPORTED +End Getting_Points. +*) + +(*#* +As a corollary, given any continuous function [F] and a natural number we have an immediate choice of a sum of [F] in [[a,b]]. +*) + +inline cic:/CoRN/ftc/Partitions/F.var. + +inline cic:/CoRN/ftc/Partitions/contF.var. + +inline cic:/CoRN/ftc/Partitions/Even_Partition_Sum.con. + +(* UNEXPORTED +End Definitions. +*) + +(* UNEXPORTED +Implicit Arguments Partition [a b]. +*) + +(* UNEXPORTED +Implicit Arguments Partition_Dom [a b Hab n]. +*) + +(* UNEXPORTED +Implicit Arguments Mesh [a b Hab n]. +*) + +(* UNEXPORTED +Implicit Arguments AntiMesh [a b Hab n]. +*) + +(* UNEXPORTED +Implicit Arguments Pts [a b Hab lng]. +*) + +(* UNEXPORTED +Implicit Arguments Part_Mesh_List [n a b Hab]. +*) + +(* UNEXPORTED +Implicit Arguments Points_in_Partition [a b Hab n]. +*) + +(* UNEXPORTED +Implicit Arguments Partition_Sum [a b Hab n P g F]. +*) + +(* UNEXPORTED +Implicit Arguments Even_Partition [a b]. +*) + +(* UNEXPORTED +Implicit Arguments Even_Partition_Sum [a b]. +*) + +(* UNEXPORTED +Implicit Arguments Refinement [a b Hab n m]. +*) + +(* UNEXPORTED +Hint Resolve start finish: algebra. +*) + +(* UNEXPORTED +Section Lemmas. +*) + +(*#* ** Properties of the mesh + +If a partition has more than one point then its mesh list is nonempty. +*) + +inline cic:/CoRN/ftc/Partitions/length_Part_Mesh_List.con. + +(*#* +Any element of the auxiliary list defined to calculate the mesh of a partition has a very specific form. +*) + +inline cic:/CoRN/ftc/Partitions/Part_Mesh_List_lemma.con. + +(*#* +Mesh and antimesh are always nonnegative. +*) + +inline cic:/CoRN/ftc/Partitions/Mesh_nonneg.con. + +inline cic:/CoRN/ftc/Partitions/AntiMesh_nonneg.con. + +(*#* +Most important, [AntiMesh] and [Mesh] provide lower and upper bounds +for the distance between any two consecutive points in a partition. + +%\begin{convention}% Let [I] be [[a,b]] and [P] be a partition of [I] +with [n] points. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Partitions/a.var. + +inline cic:/CoRN/ftc/Partitions/b.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Partitions/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Partitions/Hab.var. + +inline cic:/CoRN/ftc/Partitions/n.var. + +inline cic:/CoRN/ftc/Partitions/P.var. + +inline cic:/CoRN/ftc/Partitions/Mesh_lemma.con. + +inline cic:/CoRN/ftc/Partitions/AntiMesh_lemma.con. + +inline cic:/CoRN/ftc/Partitions/Mesh_leEq.con. + +(* UNEXPORTED +End Lemmas. +*) + +(* UNEXPORTED +Section Even_Partitions. +*) + +(*#* More technical stuff. Two equal partitions have the same mesh. +*) + +inline cic:/CoRN/ftc/Partitions/Mesh_wd.con. + +inline cic:/CoRN/ftc/Partitions/Mesh_wd'.con. + +(*#* +The mesh of an even partition is easily calculated. +*) + +inline cic:/CoRN/ftc/Partitions/even_partition_Mesh.con. + +(*#* ** Miscellaneous +%\begin{convention}% Throughout this section, let [a,b:IR] and [I] be [[a,b]]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Partitions/a.var. + +inline cic:/CoRN/ftc/Partitions/b.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Partitions/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Partitions/Hab.var. + +(*#* +An interesting property: in a partition, if [ai [<] aj] then [i < j]. +*) + +inline cic:/CoRN/ftc/Partitions/Partition_Points_mon.con. + +inline cic:/CoRN/ftc/Partitions/refinement_resp_mult.con. + +(*#* +%\begin{convention}% Assume [m,n] are positive natural numbers and +denote by [P] and [Q] the even partitions with, respectively, [m] and +[n] points. +%\end{convention}% + +Even partitions always have a common refinement. +*) + +inline cic:/CoRN/ftc/Partitions/m.var. + +inline cic:/CoRN/ftc/Partitions/n.var. + +inline cic:/CoRN/ftc/Partitions/Hm.var. + +inline cic:/CoRN/ftc/Partitions/Hn.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Partitions/P.con. + +inline cic:/CoRN/ftc/Partitions/Q.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Partitions/even_partition_refinement.con. + +(* UNEXPORTED +End Even_Partitions. +*) + +(* UNEXPORTED +Section More_Definitions. +*) + +(*#* ** Separation + +Some auxiliary definitions. A partition is said to be separated if all its points are distinct. +*) + +inline cic:/CoRN/ftc/Partitions/a.var. + +inline cic:/CoRN/ftc/Partitions/b.var. + +inline cic:/CoRN/ftc/Partitions/Hab.var. + +inline cic:/CoRN/ftc/Partitions/_Separated.con. + +(*#* +Two partitions are said to be (mutually) separated if they are both +separated and all their points are distinct (except for the +endpoints). + +%\begin{convention}% Let [P,Q] be partitions of [I] with, +respectively, [n] and [m] points. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Partitions/n.var. + +inline cic:/CoRN/ftc/Partitions/m.var. + +inline cic:/CoRN/ftc/Partitions/P.var. + +inline cic:/CoRN/ftc/Partitions/Q.var. + +inline cic:/CoRN/ftc/Partitions/Separated.con. + +(* UNEXPORTED +End More_Definitions. +*) + +(* UNEXPORTED +Implicit Arguments _Separated [a b Hab n]. +*) + +(* UNEXPORTED +Implicit Arguments Separated [a b Hab n m]. +*) + +(* UNEXPORTED +Section Sep_Partitions. +*) + +inline cic:/CoRN/ftc/Partitions/a.var. + +inline cic:/CoRN/ftc/Partitions/b.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Partitions/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Partitions/Hab.var. + +(*#* +The antimesh of a separated partition is always positive. +*) + +inline cic:/CoRN/ftc/Partitions/pos_AntiMesh.con. + +(*#* +A partition can have only one point iff the endpoints of the interval +are the same; moreover, if the partition is separated and the +endpoints of the interval are the same then it must have one point. +*) + +inline cic:/CoRN/ftc/Partitions/partition_length_zero.con. + +inline cic:/CoRN/ftc/Partitions/_Separated_imp_length_zero.con. + +inline cic:/CoRN/ftc/Partitions/partition_less_imp_gt_zero.con. + +(* UNEXPORTED +End Sep_Partitions. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/RefLemma.ma b/matita/contribs/CoRN-Decl/ftc/RefLemma.ma new file mode 100644 index 000000000..485ca2433 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/RefLemma.ma @@ -0,0 +1,551 @@ +(**************************************************************************) +(* ___ *) +(* ||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/RefLemma". + +(* $Id: RefLemma.v,v 1.7 2004/04/23 10:01:00 lcf Exp $ *) + +(* INCLUDE +RefSeparating +*) + +(* INCLUDE +RefSeparated +*) + +(* INCLUDE +RefSepRef +*) + +(* UNEXPORTED +Section Refinement_Lemma. +*) + +(*#* *The Refinement Lemmas + +Here we resume the results proved in four different files. The aim is to prove the following result (last part of Theorem 2.9 of Bishop 1967): + +%\noindent\textbf{%##Theorem##%}% Let [f] be a continuous function on a +compact interval [[a,b]] with modulus of continuity%\footnote{%# (#From our +point of view, the modulus of continuity is simply the proof that [f] is +continuous.#)#%}% [omega]. +Let [P] be a partition of [[a,b]] and [eps [>] Zero] be such that +[mesh(P) [<] omega(eps)]. +Then +%\[\left|S(f,P)-\int_a^bf(x)dx\right|\leq\varepsilon(b-a),\]%#|S(f,P)-∫f(x)dx|≤ε(b-a)# +where [S(f,P)] denotes any sum of the function [f] respecting the partition +[P] (as previously defined). + +The proof of this theorem relies on the fact that for any two partitions [P] +and [R] of [[a,b]] it is possible to define a partition [Q] which is +``almost'' a common refinement of [P] and [R]---that is, given [eps [>] Zero] +it is possible to define [Q] such that for every point [x] of either [P] or +[R] there is a point [y] of [Q] such that [|x[-]y| [<] eps]. +This requires three separate constructions (done in three separate files) +which are then properly combined to give the final result. We recommend the +reader to ignore this technical constructions. + +First we prove that if [P] and [R] are both +separated (though not necessarily separated from each other) then we can +define a partition [P'] arbitrarily close to [P] (that is, such that given +[alpha [>] Zero] and [xi [>] Zero] [P'] satisfies both +[mesh(P') [<] mesh(P) [+] xi] and for every choice of points [x_i] respecting +[P] there is a choice of points [x'_i] respecting [P'] such that +[|S(f,P)-S(f,P')| [<] alpha]) that is separated from [R]. + +Then we prove that given any partition [P] +and assuming [a [#] b] we can define a partition [P'] arbitrarily close to +[P] (in the same sense as above) which is separated. + +Finally we prove that every two separated +partitions [P] and [R] have a common refinement---as every two points in [P] +and [R] are apart, we can decide which one is smaller. We use here the +technical results about ordering that we proved in the file [IntegralLemmas.v]. + +Using the results from these files, we prove our main lemma in several steps +(and versions). + +%\begin{convention}% Throughout this section: + - [a,b:IR] and [I] denotes [[a,b]]; + - [F] is a partial function continuous in [I]. + +%\end{convention}% +*) + +inline cic:/CoRN/ftc/RefLemma/a.var. + +inline cic:/CoRN/ftc/RefLemma/b.var. + +inline cic:/CoRN/ftc/RefLemma/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/RefLemma/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/RefLemma/F.var. + +inline cic:/CoRN/ftc/RefLemma/contF.var. + +inline cic:/CoRN/ftc/RefLemma/incF.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/RefLemma/contF'.con. + +(* end hide *) + +(* UNEXPORTED +Section First_Refinement_Lemma. +*) + +(*#* +This is the first part of the proof of Theorem 2.9. + +%\begin{convention}% + - [P, Q] are partitions of [I] with, respectively, [n] and [m] points; + - [Q] is a refinement of [P]; + - [e] is a positive real number; + - [d] is the modulus of continuity of [F] for [e]; + - the mesh of [P] is less or equal to [d]; + - [fP] and [fQ] are choices of points respecting the partitions [P] and [Q], +respectively. + +%\end{convention}% +*) + +inline cic:/CoRN/ftc/RefLemma/e.var. + +inline cic:/CoRN/ftc/RefLemma/He.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/RefLemma/d.con. + +(* end hide *) + +inline cic:/CoRN/ftc/RefLemma/m.var. + +inline cic:/CoRN/ftc/RefLemma/n.var. + +inline cic:/CoRN/ftc/RefLemma/P.var. + +inline cic:/CoRN/ftc/RefLemma/HMesh.var. + +inline cic:/CoRN/ftc/RefLemma/Q.var. + +inline cic:/CoRN/ftc/RefLemma/Href.var. + +inline cic:/CoRN/ftc/RefLemma/fP.var. + +inline cic:/CoRN/ftc/RefLemma/HfP.var. + +inline cic:/CoRN/ftc/RefLemma/HfP'.var. + +inline cic:/CoRN/ftc/RefLemma/fQ.var. + +inline cic:/CoRN/ftc/RefLemma/HfQ.var. + +inline cic:/CoRN/ftc/RefLemma/HfQ'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/RefLemma/sub.con. + +inline cic:/CoRN/ftc/RefLemma/RL_sub_0.con. + +inline cic:/CoRN/ftc/RefLemma/RL_sub_n.con. + +inline cic:/CoRN/ftc/RefLemma/RL_sub_mon.con. + +inline cic:/CoRN/ftc/RefLemma/RL_sub_mon'.con. + +inline cic:/CoRN/ftc/RefLemma/RL_sub_hyp.con. + +inline cic:/CoRN/ftc/RefLemma/RL_sub_S.con. + +inline cic:/CoRN/ftc/RefLemma/H.con. + +inline cic:/CoRN/ftc/RefLemma/H'.con. + +inline cic:/CoRN/ftc/RefLemma/H0.con. + +inline cic:/CoRN/ftc/RefLemma/RL_sub_SS.con. + +inline cic:/CoRN/ftc/RefLemma/RL_h.con. + +inline cic:/CoRN/ftc/RefLemma/RL_g.con. + +inline cic:/CoRN/ftc/RefLemma/ref_calc1.con. + +inline cic:/CoRN/ftc/RefLemma/ref_calc2.con. + +inline cic:/CoRN/ftc/RefLemma/ref_calc3.con. + +inline cic:/CoRN/ftc/RefLemma/ref_calc4.con. + +inline cic:/CoRN/ftc/RefLemma/ref_calc5.con. + +inline cic:/CoRN/ftc/RefLemma/ref_calc6.con. + +inline cic:/CoRN/ftc/RefLemma/ref_calc7.con. + +inline cic:/CoRN/ftc/RefLemma/ref_calc8.con. + +(* end hide *) + +inline cic:/CoRN/ftc/RefLemma/first_refinement_lemma.con. + +(* UNEXPORTED +End First_Refinement_Lemma. +*) + +(* UNEXPORTED +Section Second_Refinement_Lemma. +*) + +(*#* +This is inequality (2.6.7). + +%\begin{convention}% + - [P, Q, R] are partitions of [I] with, respectively, [j, n] and [k] points; + - [Q] is a common refinement of [P] and [R]; + - [e, e'] are positive real numbers; + - [d, d'] are the moduli of continuity of [F] for [e, e']; + - the Mesh of [P] is less or equal to [d]; + - the Mesh of [R] is less or equal to [d']; + - [fP, fQ] and [fR] are choices of points respecting the partitions [P, Q] +and [R], respectively. + +%\end{convention}% +*) + +inline cic:/CoRN/ftc/RefLemma/n.var. + +inline cic:/CoRN/ftc/RefLemma/j.var. + +inline cic:/CoRN/ftc/RefLemma/k.var. + +inline cic:/CoRN/ftc/RefLemma/P.var. + +inline cic:/CoRN/ftc/RefLemma/Q.var. + +inline cic:/CoRN/ftc/RefLemma/R.var. + +inline cic:/CoRN/ftc/RefLemma/HrefP.var. + +inline cic:/CoRN/ftc/RefLemma/HrefR.var. + +inline cic:/CoRN/ftc/RefLemma/e.var. + +inline cic:/CoRN/ftc/RefLemma/e'.var. + +inline cic:/CoRN/ftc/RefLemma/He.var. + +inline cic:/CoRN/ftc/RefLemma/He'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/RefLemma/d.con. + +inline cic:/CoRN/ftc/RefLemma/d'.con. + +(* end hide *) + +inline cic:/CoRN/ftc/RefLemma/HMeshP.var. + +inline cic:/CoRN/ftc/RefLemma/HMeshR.var. + +inline cic:/CoRN/ftc/RefLemma/fP.var. + +inline cic:/CoRN/ftc/RefLemma/HfP.var. + +inline cic:/CoRN/ftc/RefLemma/HfP'.var. + +inline cic:/CoRN/ftc/RefLemma/fR.var. + +inline cic:/CoRN/ftc/RefLemma/HfR.var. + +inline cic:/CoRN/ftc/RefLemma/HfR'.var. + +inline cic:/CoRN/ftc/RefLemma/second_refinement_lemma.con. + +(* UNEXPORTED +End Second_Refinement_Lemma. +*) + +(* UNEXPORTED +Section Third_Refinement_Lemma. +*) + +(*#* +This is an approximation of inequality (2.6.7), but without assuming the existence of a common refinement of [P] and [R]. + +%\begin{convention}% + - [P, R] are partitions of [I] with, respectively, [n] and [m] points; + - [e, e'] are positive real numbers; + - [d, d'] are the moduli of continuity of [F] for [e, e']; + - the Mesh of [P] is less than [d]; + - the Mesh of [R] is less than [d']; + - [fP] and [fR] are choices of points respecting the partitions [P] and [R], +respectively; + - [beta] is a positive real number. + +%\end{convention}% +*) + +inline cic:/CoRN/ftc/RefLemma/n.var. + +inline cic:/CoRN/ftc/RefLemma/m.var. + +inline cic:/CoRN/ftc/RefLemma/P.var. + +inline cic:/CoRN/ftc/RefLemma/R.var. + +inline cic:/CoRN/ftc/RefLemma/e.var. + +inline cic:/CoRN/ftc/RefLemma/e'.var. + +inline cic:/CoRN/ftc/RefLemma/He.var. + +inline cic:/CoRN/ftc/RefLemma/He'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/RefLemma/d.con. + +inline cic:/CoRN/ftc/RefLemma/d'.con. + +(* end hide *) + +inline cic:/CoRN/ftc/RefLemma/HMeshP.var. + +inline cic:/CoRN/ftc/RefLemma/HMeshR.var. + +inline cic:/CoRN/ftc/RefLemma/fP.var. + +inline cic:/CoRN/ftc/RefLemma/HfP.var. + +inline cic:/CoRN/ftc/RefLemma/HfP'.var. + +inline cic:/CoRN/ftc/RefLemma/fR.var. + +inline cic:/CoRN/ftc/RefLemma/HfR.var. + +inline cic:/CoRN/ftc/RefLemma/HfR'.var. + +inline cic:/CoRN/ftc/RefLemma/Hab'.var. + +inline cic:/CoRN/ftc/RefLemma/beta.var. + +inline cic:/CoRN/ftc/RefLemma/Hbeta.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/RefLemma/alpha.con. + +inline cic:/CoRN/ftc/RefLemma/RL_alpha.con. + +inline cic:/CoRN/ftc/RefLemma/csi1.con. + +inline cic:/CoRN/ftc/RefLemma/RL_csi1.con. + +inline cic:/CoRN/ftc/RefLemma/delta1.con. + +inline cic:/CoRN/ftc/RefLemma/RL_delta1.con. + +inline cic:/CoRN/ftc/RefLemma/P'.con. + +inline cic:/CoRN/ftc/RefLemma/RL_P'_sep.con. + +inline cic:/CoRN/ftc/RefLemma/RL_P'_Mesh.con. + +inline cic:/CoRN/ftc/RefLemma/fP'.con. + +inline cic:/CoRN/ftc/RefLemma/RL_fP'_in_P'.con. + +inline cic:/CoRN/ftc/RefLemma/RL_P'_P_sum.con. + +inline cic:/CoRN/ftc/RefLemma/csi2.con. + +inline cic:/CoRN/ftc/RefLemma/RL_csi2.con. + +inline cic:/CoRN/ftc/RefLemma/delta2.con. + +inline cic:/CoRN/ftc/RefLemma/RL_delta2.con. + +inline cic:/CoRN/ftc/RefLemma/R'.con. + +inline cic:/CoRN/ftc/RefLemma/RL_R'_sep.con. + +inline cic:/CoRN/ftc/RefLemma/RL_R'_Mesh.con. + +inline cic:/CoRN/ftc/RefLemma/fR'.con. + +inline cic:/CoRN/ftc/RefLemma/RL_fR'_in_R'.con. + +inline cic:/CoRN/ftc/RefLemma/RL_R'_R_sum.con. + +inline cic:/CoRN/ftc/RefLemma/csi3.con. + +inline cic:/CoRN/ftc/RefLemma/RL_csi3.con. + +inline cic:/CoRN/ftc/RefLemma/Q.con. + +inline cic:/CoRN/ftc/RefLemma/RL_Q_Mesh.con. + +inline cic:/CoRN/ftc/RefLemma/RL_Q_sep.con. + +inline cic:/CoRN/ftc/RefLemma/fQ.con. + +inline cic:/CoRN/ftc/RefLemma/RL_fQ_in_Q.con. + +inline cic:/CoRN/ftc/RefLemma/RL_Q_P'_sum.con. + +(* end hide *) + +inline cic:/CoRN/ftc/RefLemma/third_refinement_lemma.con. + +(* UNEXPORTED +End Third_Refinement_Lemma. +*) + +(* UNEXPORTED +Section Fourth_Refinement_Lemma. +*) + +(* begin hide *) + +inline cic:/CoRN/ftc/RefLemma/Fa.con. + +inline cic:/CoRN/ftc/RefLemma/RL_sum_lemma_aux.con. + +(* end hide *) + +(*#* +Finally, this is inequality (2.6.7) exactly as stated (same conventions as +above) +*) + +inline cic:/CoRN/ftc/RefLemma/n.var. + +inline cic:/CoRN/ftc/RefLemma/m.var. + +inline cic:/CoRN/ftc/RefLemma/P.var. + +inline cic:/CoRN/ftc/RefLemma/R.var. + +inline cic:/CoRN/ftc/RefLemma/e.var. + +inline cic:/CoRN/ftc/RefLemma/e'.var. + +inline cic:/CoRN/ftc/RefLemma/He.var. + +inline cic:/CoRN/ftc/RefLemma/He'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/RefLemma/d.con. + +inline cic:/CoRN/ftc/RefLemma/d'.con. + +(* end hide *) + +inline cic:/CoRN/ftc/RefLemma/HMeshP.var. + +inline cic:/CoRN/ftc/RefLemma/HMeshR.var. + +inline cic:/CoRN/ftc/RefLemma/fP.var. + +inline cic:/CoRN/ftc/RefLemma/HfP.var. + +inline cic:/CoRN/ftc/RefLemma/HfP'.var. + +inline cic:/CoRN/ftc/RefLemma/fR.var. + +inline cic:/CoRN/ftc/RefLemma/HfR.var. + +inline cic:/CoRN/ftc/RefLemma/HfR'.var. + +(* begin show *) + +inline cic:/CoRN/ftc/RefLemma/Hab'.var. + +(* end show *) + +inline cic:/CoRN/ftc/RefLemma/fourth_refinement_lemma.con. + +(* UNEXPORTED +End Fourth_Refinement_Lemma. +*) + +(* UNEXPORTED +Section Main_Refinement_Lemma. +*) + +(*#* We finish by presenting Theorem 9. *) + +inline cic:/CoRN/ftc/RefLemma/n.var. + +inline cic:/CoRN/ftc/RefLemma/m.var. + +inline cic:/CoRN/ftc/RefLemma/P.var. + +inline cic:/CoRN/ftc/RefLemma/R.var. + +inline cic:/CoRN/ftc/RefLemma/e.var. + +inline cic:/CoRN/ftc/RefLemma/e'.var. + +inline cic:/CoRN/ftc/RefLemma/He.var. + +inline cic:/CoRN/ftc/RefLemma/He'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/RefLemma/d.con. + +inline cic:/CoRN/ftc/RefLemma/d'.con. + +(* end hide *) + +inline cic:/CoRN/ftc/RefLemma/HMeshP.var. + +inline cic:/CoRN/ftc/RefLemma/HMeshR.var. + +inline cic:/CoRN/ftc/RefLemma/fP.var. + +inline cic:/CoRN/ftc/RefLemma/HfP.var. + +inline cic:/CoRN/ftc/RefLemma/HfP'.var. + +inline cic:/CoRN/ftc/RefLemma/fR.var. + +inline cic:/CoRN/ftc/RefLemma/HfR.var. + +inline cic:/CoRN/ftc/RefLemma/HfR'.var. + +inline cic:/CoRN/ftc/RefLemma/refinement_lemma.con. + +(* UNEXPORTED +End Main_Refinement_Lemma. +*) + +(* UNEXPORTED +End Refinement_Lemma. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/RefSepRef.ma b/matita/contribs/CoRN-Decl/ftc/RefSepRef.ma new file mode 100644 index 000000000..99a1c3183 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/RefSepRef.ma @@ -0,0 +1,150 @@ +(**************************************************************************) +(* ___ *) +(* ||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/RefSepRef". + +(* $Id: RefSepRef.v,v 1.6 2004/04/23 10:01:00 lcf Exp $ *) + +(* begin hide *) + +(* INCLUDE +COrdLemmas +*) + +(* INCLUDE +Partitions +*) + +(* UNEXPORTED +Section Refining_Separated. +*) + +inline cic:/CoRN/ftc/RefSepRef/a.var. + +inline cic:/CoRN/ftc/RefSepRef/b.var. + +inline cic:/CoRN/ftc/RefSepRef/Hab.var. + +inline cic:/CoRN/ftc/RefSepRef/I.con. + +inline cic:/CoRN/ftc/RefSepRef/F.var. + +inline cic:/CoRN/ftc/RefSepRef/contF.var. + +inline cic:/CoRN/ftc/RefSepRef/incF.var. + +inline cic:/CoRN/ftc/RefSepRef/m.var. + +inline cic:/CoRN/ftc/RefSepRef/n.var. + +inline cic:/CoRN/ftc/RefSepRef/P.var. + +inline cic:/CoRN/ftc/RefSepRef/R.var. + +inline cic:/CoRN/ftc/RefSepRef/HPR.var. + +inline cic:/CoRN/ftc/RefSepRef/RSR_HP.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_HP'.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_HR.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_HR'.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_mn0.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_nm0.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_H'.con. + +inline cic:/CoRN/ftc/RefSepRef/f'.con. + +inline cic:/CoRN/ftc/RefSepRef/g'.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_f'_nlnf.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_g'_nlnf.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_f'_mon.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_g'_mon.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_f'_ap_g'.con. + +inline cic:/CoRN/ftc/RefSepRef/h.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_h_nlnf.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_h_mon.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_h_mon'.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_h_f'.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_h_g'.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_h_PropAll.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_h_PropEx.con. + +inline cic:/CoRN/ftc/RefSepRef/Separated_Refinement_fun.con. + +inline cic:/CoRN/ftc/RefSepRef/Separated_Refinement_lemma1.con. + +inline cic:/CoRN/ftc/RefSepRef/Separated_Refinement_lemma3.con. + +inline cic:/CoRN/ftc/RefSepRef/Separated_Refinement_lemma4.con. + +inline cic:/CoRN/ftc/RefSepRef/Separated_Refinement_lemma2.con. + +inline cic:/CoRN/ftc/RefSepRef/Separated_Refinement.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_auxP.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_auxR.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_auxP_lemma0.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_h_inj.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_auxP_lemmai.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_auxP_lemman.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_auxP_lemma1.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_auxP_lemma2.con. + +inline cic:/CoRN/ftc/RefSepRef/Separated_Refinement_lft.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_auxR_lemma0.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_auxR_lemmai.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_auxR_lemmam.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_auxR_lemma1.con. + +inline cic:/CoRN/ftc/RefSepRef/RSR_auxR_lemma2.con. + +inline cic:/CoRN/ftc/RefSepRef/Separated_Refinement_rht.con. + +(* UNEXPORTED +End Refining_Separated. +*) + +(* end hide *) + diff --git a/matita/contribs/CoRN-Decl/ftc/RefSeparated.ma b/matita/contribs/CoRN-Decl/ftc/RefSeparated.ma new file mode 100644 index 000000000..a65a4ecda --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/RefSeparated.ma @@ -0,0 +1,174 @@ +(**************************************************************************) +(* ___ *) +(* ||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/RefSeparated". + +(* $Id: RefSeparated.v,v 1.8 2004/04/23 10:01:00 lcf Exp $ *) + +(* begin hide *) + +(* INCLUDE +COrdLemmas +*) + +(* INCLUDE +Partitions +*) + +(* UNEXPORTED +Section Separating__Separated. +*) + +inline cic:/CoRN/ftc/RefSeparated/a.var. + +inline cic:/CoRN/ftc/RefSeparated/b.var. + +inline cic:/CoRN/ftc/RefSeparated/Hab.var. + +inline cic:/CoRN/ftc/RefSeparated/I.con. + +inline cic:/CoRN/ftc/RefSeparated/F.var. + +inline cic:/CoRN/ftc/RefSeparated/contF.var. + +inline cic:/CoRN/ftc/RefSeparated/incF.var. + +inline cic:/CoRN/ftc/RefSeparated/Hab'.var. + +inline cic:/CoRN/ftc/RefSeparated/m.var. + +inline cic:/CoRN/ftc/RefSeparated/n.var. + +inline cic:/CoRN/ftc/RefSeparated/P.var. + +inline cic:/CoRN/ftc/RefSeparated/R.var. + +inline cic:/CoRN/ftc/RefSeparated/HP.var. + +inline cic:/CoRN/ftc/RefSeparated/HR.var. + +inline cic:/CoRN/ftc/RefSeparated/RS_pos_n.con. + +inline cic:/CoRN/ftc/RefSeparated/RS_pos_m.con. + +inline cic:/CoRN/ftc/RefSeparated/alpha.var. + +inline cic:/CoRN/ftc/RefSeparated/Halpha.var. + +inline cic:/CoRN/ftc/RefSeparated/e.con. + +inline cic:/CoRN/ftc/RefSeparated/RS_He.con. + +inline cic:/CoRN/ftc/RefSeparated/contF'.con. + +inline cic:/CoRN/ftc/RefSeparated/d.con. + +inline cic:/CoRN/ftc/RefSeparated/RS_Hd.con. + +inline cic:/CoRN/ftc/RefSeparated/RS_Hd'.con. + +inline cic:/CoRN/ftc/RefSeparated/csi.var. + +inline cic:/CoRN/ftc/RefSeparated/Hcsi.var. + +inline cic:/CoRN/ftc/RefSeparated/M.con. + +inline cic:/CoRN/ftc/RefSeparated/deltaP.con. + +inline cic:/CoRN/ftc/RefSeparated/deltaR.con. + +inline cic:/CoRN/ftc/RefSeparated/delta.con. + +inline cic:/CoRN/ftc/RefSeparated/RS_delta_deltaP.con. + +inline cic:/CoRN/ftc/RefSeparated/RS_delta_deltaR.con. + +inline cic:/CoRN/ftc/RefSeparated/RS_delta_csi.con. + +inline cic:/CoRN/ftc/RefSeparated/RS_delta_d.con. + +inline cic:/CoRN/ftc/RefSeparated/RS_delta_pos.con. + +(* UNEXPORTED +Section Defining_ai'. +*) + +inline cic:/CoRN/ftc/RefSeparated/i.var. + +inline cic:/CoRN/ftc/RefSeparated/Hi.var. + +inline cic:/CoRN/ftc/RefSeparated/separation_conseq.con. + +inline cic:/CoRN/ftc/RefSeparated/pred1.con. + +inline cic:/CoRN/ftc/RefSeparated/pred2.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_aux_lemma.con. + +inline cic:/CoRN/ftc/RefSeparated/Hi0.var. + +inline cic:/CoRN/ftc/RefSeparated/Hin.var. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_fun_i.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_leEq.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_less.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_ap.con. + +(* UNEXPORTED +End Defining_ai'. +*) + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_fun.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_fun_i_delta.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_fun_delta.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_mon_i.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_mon.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_fun_i_wd.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_fun_wd.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_part.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_lemma.con. + +inline cic:/CoRN/ftc/RefSeparated/g.var. + +inline cic:/CoRN/ftc/RefSeparated/gP.var. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_points.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_points_lemma.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_aux.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_Sum.con. + +inline cic:/CoRN/ftc/RefSeparated/sep__sep_Mesh.con. + +(* UNEXPORTED +End Separating__Separated. +*) + +(* end hide *) + diff --git a/matita/contribs/CoRN-Decl/ftc/RefSeparating.ma b/matita/contribs/CoRN-Decl/ftc/RefSeparating.ma new file mode 100644 index 000000000..1710d161c --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/RefSeparating.ma @@ -0,0 +1,170 @@ +(**************************************************************************) +(* ___ *) +(* ||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/RefSeparating". + +(* $Id: RefSeparating.v,v 1.7 2004/04/23 10:01:01 lcf Exp $ *) + +(* begin hide *) + +(* INCLUDE +COrdLemmas +*) + +(* INCLUDE +Partitions +*) + +(* UNEXPORTED +Section Separating_Partition. +*) + +inline cic:/CoRN/ftc/RefSeparating/a.var. + +inline cic:/CoRN/ftc/RefSeparating/b.var. + +inline cic:/CoRN/ftc/RefSeparating/Hab.var. + +inline cic:/CoRN/ftc/RefSeparating/I.con. + +inline cic:/CoRN/ftc/RefSeparating/F.var. + +inline cic:/CoRN/ftc/RefSeparating/contF.var. + +inline cic:/CoRN/ftc/RefSeparating/incF.var. + +inline cic:/CoRN/ftc/RefSeparating/Hab'.var. + +inline cic:/CoRN/ftc/RefSeparating/n.var. + +inline cic:/CoRN/ftc/RefSeparating/P.var. + +inline cic:/CoRN/ftc/RefSeparating/alpha.var. + +inline cic:/CoRN/ftc/RefSeparating/Halpha.var. + +inline cic:/CoRN/ftc/RefSeparating/csi.var. + +inline cic:/CoRN/ftc/RefSeparating/Hcsi.var. + +inline cic:/CoRN/ftc/RefSeparating/M.con. + +inline cic:/CoRN/ftc/RefSeparating/RS'_pos_n.con. + +inline cic:/CoRN/ftc/RefSeparating/SPap_n.con. + +inline cic:/CoRN/ftc/RefSeparating/delta.con. + +inline cic:/CoRN/ftc/RefSeparating/RS'_delta_pos.con. + +inline cic:/CoRN/ftc/RefSeparating/RS'_delta_csi.con. + +inline cic:/CoRN/ftc/RefSeparating/Hab''.var. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_lemma.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_h.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_h_bnd.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_h_mon_1.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_h_mon_2.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_h_mon_3.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_app_n.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_h_lemma.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_h_lemma2.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_h_lemma3.con. + +inline cic:/CoRN/ftc/RefSeparating/RS'_delta2_delta4.con. + +inline cic:/CoRN/ftc/RefSeparating/RS'_m1.con. + +inline cic:/CoRN/ftc/RefSeparating/RS'_m.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_length.con. + +inline cic:/CoRN/ftc/RefSeparating/RS'_m_m1.con. + +inline cic:/CoRN/ftc/RefSeparating/RS'_pos_m.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_fun.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_fun_bnd.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_fun_0.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_fun_i.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_fun_m.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_fun_i'.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_fun_bnd'.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_fun_wd.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_fun_mon.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_fun_mon_pts.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_mon.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_mon_Mesh.con. + +inline cic:/CoRN/ftc/RefSeparating/g.var. + +inline cic:/CoRN/ftc/RefSeparating/gP.var. + +inline cic:/CoRN/ftc/RefSeparating/gP'.var. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_pts.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_pts_lemma.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_pts_in_Partition.con. + +inline cic:/CoRN/ftc/RefSeparating/RS'_Hsep_S.con. + +inline cic:/CoRN/ftc/RefSeparating/RS'_Hsep.con. + +inline cic:/CoRN/ftc/RefSeparating/RS'_h.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_suRS'_m1.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_Sum2.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_Sum3.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_Sum4.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_aux.con. + +inline cic:/CoRN/ftc/RefSeparating/sep__part_Sum.con. + +(* UNEXPORTED +End Separating_Partition. +*) + +(* end hide *) + diff --git a/matita/contribs/CoRN-Decl/ftc/Rolle.ma b/matita/contribs/CoRN-Decl/ftc/Rolle.ma new file mode 100644 index 000000000..c8e8cdc4f --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/Rolle.ma @@ -0,0 +1,284 @@ +(**************************************************************************) +(* ___ *) +(* ||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/Rolle". + +(* $Id: Rolle.v,v 1.6 2004/04/23 10:01:01 lcf Exp $ *) + +(* INCLUDE +DiffTactics2 +*) + +(* INCLUDE +MoreFunctions +*) + +(* UNEXPORTED +Section Rolle. +*) + +(*#* *Rolle's Theorem + +We now begin to work with partial functions. We begin by stating and proving Rolle's theorem in various forms and some of its corollaries. + +%\begin{convention}% Assume that: + - [a,b:IR] with [a [<] b] and denote by [I] the interval [[a,b]]; + - [F,F'] are partial functions such that [F'] is the derivative of [F] in [I]; + - [e] is a positive real number. + +%\end{convention}% +*) + +(* begin hide *) + +inline cic:/CoRN/ftc/Rolle/a.var. + +inline cic:/CoRN/ftc/Rolle/b.var. + +inline cic:/CoRN/ftc/Rolle/Hab'.var. + +inline cic:/CoRN/ftc/Rolle/Hab.con. + +inline cic:/CoRN/ftc/Rolle/I.con. + +inline cic:/CoRN/ftc/Rolle/F.var. + +inline cic:/CoRN/ftc/Rolle/F'.var. + +inline cic:/CoRN/ftc/Rolle/derF.var. + +inline cic:/CoRN/ftc/Rolle/Ha.var. + +inline cic:/CoRN/ftc/Rolle/Hb.var. + +(* end hide *) + +(* begin show *) + +inline cic:/CoRN/ftc/Rolle/Fab.var. + +(* end show *) + +(* begin hide *) + +inline cic:/CoRN/ftc/Rolle/e.var. + +inline cic:/CoRN/ftc/Rolle/He.var. + +inline cic:/CoRN/ftc/Rolle/contF'.con. + +inline cic:/CoRN/ftc/Rolle/derivF.con. + +inline cic:/CoRN/ftc/Rolle/Rolle_lemma2.con. + +inline cic:/CoRN/ftc/Rolle/df.con. + +inline cic:/CoRN/ftc/Rolle/Hdf.con. + +inline cic:/CoRN/ftc/Rolle/Hf.con. + +inline cic:/CoRN/ftc/Rolle/Rolle_lemma3.con. + +inline cic:/CoRN/ftc/Rolle/df'.con. + +inline cic:/CoRN/ftc/Rolle/Hdf'.con. + +inline cic:/CoRN/ftc/Rolle/Hf'.con. + +inline cic:/CoRN/ftc/Rolle/d.con. + +inline cic:/CoRN/ftc/Rolle/Hd.con. + +inline cic:/CoRN/ftc/Rolle/incF.con. + +inline cic:/CoRN/ftc/Rolle/n.con. + +inline cic:/CoRN/ftc/Rolle/fcp.con. + +inline cic:/CoRN/ftc/Rolle/Rolle_lemma1.con. + +inline cic:/CoRN/ftc/Rolle/incF'.con. + +inline cic:/CoRN/ftc/Rolle/fcp'.con. + +inline cic:/CoRN/ftc/Rolle/Rolle_lemma4.con. + +inline cic:/CoRN/ftc/Rolle/Rolle_lemma5.con. + +inline cic:/CoRN/ftc/Rolle/Rolle_lemma6.con. + +inline cic:/CoRN/ftc/Rolle/Rolle_lemma7.con. + +inline cic:/CoRN/ftc/Rolle/j.con. + +inline cic:/CoRN/ftc/Rolle/Hj.con. + +inline cic:/CoRN/ftc/Rolle/Hj'.con. + +inline cic:/CoRN/ftc/Rolle/k.con. + +inline cic:/CoRN/ftc/Rolle/Hk.con. + +inline cic:/CoRN/ftc/Rolle/Hk'.con. + +inline cic:/CoRN/ftc/Rolle/Rolle_lemma8.con. + +inline cic:/CoRN/ftc/Rolle/Rolle_lemma9.con. + +inline cic:/CoRN/ftc/Rolle/Rolle_lemma10.con. + +inline cic:/CoRN/ftc/Rolle/Rolle_lemma11.con. + +inline cic:/CoRN/ftc/Rolle/Rolle_lemma12.con. + +inline cic:/CoRN/ftc/Rolle/Rolle_lemma13.con. + +inline cic:/CoRN/ftc/Rolle/Rolle_lemma15.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Rolle/Rolle.con. + +(* UNEXPORTED +End Rolle. +*) + +(* UNEXPORTED +Section Law_of_the_Mean. +*) + +(*#* +The following is a simple corollary: +*) + +inline cic:/CoRN/ftc/Rolle/a.var. + +inline cic:/CoRN/ftc/Rolle/b.var. + +inline cic:/CoRN/ftc/Rolle/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Rolle/Hab.con. + +inline cic:/CoRN/ftc/Rolle/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Rolle/F.var. + +inline cic:/CoRN/ftc/Rolle/F'.var. + +inline cic:/CoRN/ftc/Rolle/HF.var. + +(* begin show *) + +inline cic:/CoRN/ftc/Rolle/HA.var. + +inline cic:/CoRN/ftc/Rolle/HB.var. + +(* end show *) + +inline cic:/CoRN/ftc/Rolle/Law_of_the_Mean_I.con. + +(* UNEXPORTED +End Law_of_the_Mean. +*) + +(* UNEXPORTED +Section Corollaries. +*) + +(*#* +We can also state these theorems without expliciting the derivative of [F]. +*) + +inline cic:/CoRN/ftc/Rolle/a.var. + +inline cic:/CoRN/ftc/Rolle/b.var. + +inline cic:/CoRN/ftc/Rolle/Hab'.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/Rolle/Hab.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Rolle/F.var. + +(* begin show *) + +inline cic:/CoRN/ftc/Rolle/HF.var. + +(* end show *) + +inline cic:/CoRN/ftc/Rolle/Rolle'.con. + +inline cic:/CoRN/ftc/Rolle/Law_of_the_Mean'_I.con. + +(* UNEXPORTED +End Corollaries. +*) + +(* UNEXPORTED +Section Generalizations. +*) + +(*#* +The mean law is more useful if we abstract [a] and [b] from the +context---allowing them in particular to be equal. In the case where +[F(a) [=] F(b)] we get Rolle's theorem again, so there is no need to +state it also in this form. + +%\begin{convention}% Assume [I] is a proper interval, [F,F':PartIR]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Rolle/I.var. + +inline cic:/CoRN/ftc/Rolle/pI.var. + +inline cic:/CoRN/ftc/Rolle/F.var. + +inline cic:/CoRN/ftc/Rolle/F'.var. + +(* begin show *) + +inline cic:/CoRN/ftc/Rolle/derF.var. + +(* end show *) + +(* begin hide *) + +inline cic:/CoRN/ftc/Rolle/incF.con. + +inline cic:/CoRN/ftc/Rolle/incF'.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Rolle/Law_of_the_Mean.con. + +(*#* +We further generalize the mean law by writing as an explicit bound. +*) + +inline cic:/CoRN/ftc/Rolle/Law_of_the_Mean_ineq.con. + +(* UNEXPORTED +End Generalizations. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/StrongIVT.ma b/matita/contribs/CoRN-Decl/ftc/StrongIVT.ma new file mode 100644 index 000000000..b27af136a --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/StrongIVT.ma @@ -0,0 +1,166 @@ +(**************************************************************************) +(* ___ *) +(* ||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/StrongIVT". + +(* $Id: StrongIVT.v,v 1.5 2004/04/23 10:01:01 lcf Exp $ *) + +(* INCLUDE +WeakIVT +*) + +(* INCLUDE +CalculusTheorems +*) + +(* UNEXPORTED +Section IVT'. +*) + +(*#* ** Strong IVT for partial functions + +The IVT can be generalized to arbitrary partial functions; in the first +part, we will simply do that, repeating the previous construction. + +The same notations and conventions apply as before. +*) + +inline cic:/CoRN/ftc/StrongIVT/a.var. + +inline cic:/CoRN/ftc/StrongIVT/b.var. + +inline cic:/CoRN/ftc/StrongIVT/Hab'.var. + +inline cic:/CoRN/ftc/StrongIVT/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/StrongIVT/I.con. + +inline cic:/CoRN/ftc/StrongIVT/I'.con. + +(* end hide *) + +inline cic:/CoRN/ftc/StrongIVT/F.var. + +inline cic:/CoRN/ftc/StrongIVT/contF.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/StrongIVT/incF.con. + +(* end hide *) + +(* begin show *) + +inline cic:/CoRN/ftc/StrongIVT/incrF.var. + +(* end show *) + +(* begin hide *) + +inline cic:/CoRN/ftc/StrongIVT/Ha.con. + +inline cic:/CoRN/ftc/StrongIVT/Hb.con. + +inline cic:/CoRN/ftc/StrongIVT/HFab'.con. + +(* end hide *) + +(* begin show *) + +inline cic:/CoRN/ftc/StrongIVT/z.var. + +inline cic:/CoRN/ftc/StrongIVT/Haz.var. + +inline cic:/CoRN/ftc/StrongIVT/Hzb.var. + +(* end show *) + +inline cic:/CoRN/ftc/StrongIVT/IVT'_seq_lemma.con. + +(* end hide *) + +inline cic:/CoRN/ftc/StrongIVT/IVT'_aux_seq_type.ind. + +inline cic:/CoRN/ftc/StrongIVT/IVT'_iter.con. + +inline cic:/CoRN/ftc/StrongIVT/IVT'_seq.con. + +inline cic:/CoRN/ftc/StrongIVT/a'_seq.con. + +inline cic:/CoRN/ftc/StrongIVT/b'_seq.con. + +inline cic:/CoRN/ftc/StrongIVT/a'_seq_I.con. + +inline cic:/CoRN/ftc/StrongIVT/b'_seq_I.con. + +inline cic:/CoRN/ftc/StrongIVT/a'_seq_less_b'_seq.con. + +inline cic:/CoRN/ftc/StrongIVT/a'_seq_less_z.con. + +inline cic:/CoRN/ftc/StrongIVT/z_less_b'_seq.con. + +inline cic:/CoRN/ftc/StrongIVT/a'_seq_mon.con. + +inline cic:/CoRN/ftc/StrongIVT/b'_seq_mon.con. + +inline cic:/CoRN/ftc/StrongIVT/a'_seq_b'_seq_dist_n.con. + +inline cic:/CoRN/ftc/StrongIVT/a'_seq_b'_seq_dist.con. + +inline cic:/CoRN/ftc/StrongIVT/a'_seq_Cauchy.con. + +inline cic:/CoRN/ftc/StrongIVT/b'_seq_Cauchy.con. + +inline cic:/CoRN/ftc/StrongIVT/xa.con. + +inline cic:/CoRN/ftc/StrongIVT/xb.con. + +inline cic:/CoRN/ftc/StrongIVT/a'_seq_b'_seq_lim.con. + +inline cic:/CoRN/ftc/StrongIVT/xa'_in_interval.con. + +inline cic:/CoRN/ftc/StrongIVT/IVT'_I.con. + +(* UNEXPORTED +End IVT'. +*) + +(*#* **Other formulations + +We now generalize the various statements of the intermediate value +theorem to more widely applicable forms. +*) + +inline cic:/CoRN/ftc/StrongIVT/Weak_IVT.con. + +inline cic:/CoRN/ftc/StrongIVT/IVT_inc.con. + +(* UNEXPORTED +Transparent Min. +*) + +inline cic:/CoRN/ftc/StrongIVT/IVT_dec.con. + +inline cic:/CoRN/ftc/StrongIVT/IVT'_inc.con. + +(* UNEXPORTED +Transparent Min. +*) + +inline cic:/CoRN/ftc/StrongIVT/IVT'_dec.con. + diff --git a/matita/contribs/CoRN-Decl/ftc/Taylor.ma b/matita/contribs/CoRN-Decl/ftc/Taylor.ma new file mode 100644 index 000000000..e636e5518 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/Taylor.ma @@ -0,0 +1,156 @@ +(**************************************************************************) +(* ___ *) +(* ||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/Taylor". + +(* $Id: Taylor.v,v 1.10 2004/04/23 10:01:01 lcf Exp $ *) + +(* INCLUDE +TaylorLemma +*) + +(* UNEXPORTED +Opaque Min Max N_Deriv. +*) + +(* UNEXPORTED +Section More_Taylor_Defs. +*) + +(*#* **General case + +The generalization to arbitrary intervals just needs a few more definitions. + +%\begin{convention}% Let [I] be a proper interval, [F:PartIR] and +[a,b:IR] be points of [I]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Taylor/I.var. + +inline cic:/CoRN/ftc/Taylor/pI.var. + +inline cic:/CoRN/ftc/Taylor/F.var. + +(* begin show *) + +inline cic:/CoRN/ftc/Taylor/deriv_Sn.con. + +(* end show *) + +inline cic:/CoRN/ftc/Taylor/a.var. + +inline cic:/CoRN/ftc/Taylor/b.var. + +inline cic:/CoRN/ftc/Taylor/Ha.var. + +inline cic:/CoRN/ftc/Taylor/Hb.var. + +(* begin show *) + +inline cic:/CoRN/ftc/Taylor/fi.con. + +inline cic:/CoRN/ftc/Taylor/funct_i.con. + +(* end show *) + +inline cic:/CoRN/ftc/Taylor/Taylor_Seq'.con. + +(* begin hide *) + +inline cic:/CoRN/ftc/Taylor/TaylorB.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Taylor/Taylor_Rem.con. + +(* begin hide *) + +inline cic:/CoRN/ftc/Taylor/Taylor_Sumx_lemma.con. + +inline cic:/CoRN/ftc/Taylor/Taylor_lemma_ap.con. + +(* end hide *) + +inline cic:/CoRN/ftc/Taylor/Taylor'.con. + +(* UNEXPORTED +End More_Taylor_Defs. +*) + +(* UNEXPORTED +Section Taylor_Theorem. +*) + +(*#* +And finally the ``nice'' version, when we know the expression of the +derivatives of [F]. + +%\begin{convention}% Let [f] be the sequence of derivatives of [F] of +order up to [n] and [F'] be the nth-derivative of [F]. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/Taylor/I.var. + +inline cic:/CoRN/ftc/Taylor/pI.var. + +inline cic:/CoRN/ftc/Taylor/F.var. + +inline cic:/CoRN/ftc/Taylor/n.var. + +inline cic:/CoRN/ftc/Taylor/f.var. + +inline cic:/CoRN/ftc/Taylor/goodF.var. + +inline cic:/CoRN/ftc/Taylor/goodF'.var. + +inline cic:/CoRN/ftc/Taylor/derF.var. + +inline cic:/CoRN/ftc/Taylor/F'.var. + +inline cic:/CoRN/ftc/Taylor/derF'.var. + +inline cic:/CoRN/ftc/Taylor/a.var. + +inline cic:/CoRN/ftc/Taylor/b.var. + +inline cic:/CoRN/ftc/Taylor/Ha.var. + +inline cic:/CoRN/ftc/Taylor/Hb.var. + +(* begin show *) + +inline cic:/CoRN/ftc/Taylor/funct_i.con. + +inline cic:/CoRN/ftc/Taylor/Taylor_Seq.con. + +inline cic:/CoRN/ftc/Taylor/deriv_Sn.con. + +(* end show *) + +inline cic:/CoRN/ftc/Taylor/Taylor_aux.con. + +(* UNEXPORTED +Transparent N_Deriv. +*) + +inline cic:/CoRN/ftc/Taylor/Taylor.con. + +(* UNEXPORTED +End Taylor_Theorem. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/TaylorLemma.ma b/matita/contribs/CoRN-Decl/ftc/TaylorLemma.ma new file mode 100644 index 000000000..0fc554356 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/TaylorLemma.ma @@ -0,0 +1,322 @@ +(**************************************************************************) +(* ___ *) +(* ||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/TaylorLemma". + +(* $Id: TaylorLemma.v,v 1.8 2004/04/23 10:01:01 lcf Exp $ *) + +(* INCLUDE +Rolle +*) + +(* UNEXPORTED +Opaque Min. +*) + +(* UNEXPORTED +Section Taylor_Defs. +*) + +(*#* *Taylor's Theorem + +We now prove Taylor's theorem for the remainder of the Taylor +series. This proof is done in two steps: first, we prove the lemma +for a proper compact interval; next we generalize the result to two +arbitrary (eventually equal) points in a proper interval. + +** First case + +We assume two different points [a] and [b] in the domain of [F] and +define the nth order derivative of [F] in the interval +[[Min(a,b),Max(a,b)]]. +*) + +inline cic:/CoRN/ftc/TaylorLemma/a.var. + +inline cic:/CoRN/ftc/TaylorLemma/b.var. + +inline cic:/CoRN/ftc/TaylorLemma/Hap.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/TaylorLemma/Hab'.con. + +inline cic:/CoRN/ftc/TaylorLemma/Hab.con. + +inline cic:/CoRN/ftc/TaylorLemma/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/TaylorLemma/F.var. + +inline cic:/CoRN/ftc/TaylorLemma/Ha.var. + +inline cic:/CoRN/ftc/TaylorLemma/Hb.var. + +(* begin show *) + +inline cic:/CoRN/ftc/TaylorLemma/fi.con. + +(* end show *) + +(*#* +This last local definition is simply: +$f_i=f^{(i)}$#fi=f(i)#. +*) + +(* begin hide *) + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_lemma1.con. + +(* end hide *) + +(*#* +Now we can define the Taylor sequence around [a]. The auxiliary +definition gives, for any [i], the function expressed by the rule +%\[g(x)=\frac{f^{(i)} +(a)}{i!}*(x-a)^i.\]%#g(x)=f(i)(a)/i!*(x-a)i.# +We denote by [A] and [B] the elements of [[Min(a,b),Max(a,b)]] +corresponding to [a] and [b]. +*) + +(* begin hide *) + +inline cic:/CoRN/ftc/TaylorLemma/TL_compact_a.con. + +inline cic:/CoRN/ftc/TaylorLemma/TL_compact_b.con. + +(* end hide *) + +(* begin show *) + +inline cic:/CoRN/ftc/TaylorLemma/funct_i.con. + +(* end show *) + +(* begin hide *) + +inline cic:/CoRN/ftc/TaylorLemma/funct_i'.con. + +inline cic:/CoRN/ftc/TaylorLemma/TL_a_i.con. + +inline cic:/CoRN/ftc/TaylorLemma/TL_b_i.con. + +inline cic:/CoRN/ftc/TaylorLemma/TL_x_i.con. + +inline cic:/CoRN/ftc/TaylorLemma/TL_a_i'.con. + +inline cic:/CoRN/ftc/TaylorLemma/TL_b_i'.con. + +inline cic:/CoRN/ftc/TaylorLemma/TL_x_i'.con. + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_lemma2.con. + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_lemma2'.con. + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_lemma3.con. + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_lemma3'.con. + +(* end hide *) + +(*#* +Adding the previous expressions up to a given bound [n] gives us the +Taylor sum of order [n]. +*) + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_seq'.con. + +(* begin hide *) + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_seq'_aux.con. + +inline cic:/CoRN/ftc/TaylorLemma/TL_lemma_a.con. + +(* end hide *) + +(*#* +It is easy to show that [b] is in the domain of this series, which allows us to write down the Taylor remainder around [b]. +*) + +inline cic:/CoRN/ftc/TaylorLemma/TL_lemma_b.con. + +(* begin hide *) + +inline cic:/CoRN/ftc/TaylorLemma/TL_lemma_a'.con. + +inline cic:/CoRN/ftc/TaylorLemma/TL_lemma_b'.con. + +(* end hide *) + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_rem.con. + +(* begin hide *) + +inline cic:/CoRN/ftc/TaylorLemma/g.con. + +(* UNEXPORTED +Opaque Taylor_seq'_aux Taylor_rem. +*) + +(* UNEXPORTED +Transparent Taylor_rem. +*) + +(* UNEXPORTED +Opaque Taylor_seq'. +*) + +(* UNEXPORTED +Transparent Taylor_seq' Taylor_seq'_aux. +*) + +(* UNEXPORTED +Opaque funct_i'. +*) + +(* UNEXPORTED +Opaque funct_i. +*) + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_lemma4.con. + +(* UNEXPORTED +Transparent funct_i funct_i'. +*) + +(* UNEXPORTED +Opaque Taylor_seq'_aux. +*) + +(* UNEXPORTED +Transparent Taylor_seq'_aux. +*) + +(* UNEXPORTED +Opaque FSumx. +*) + +(* UNEXPORTED +Opaque funct_i'. +*) + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_lemma5.con. + +(* UNEXPORTED +Transparent funct_i' FSumx. +*) + +inline cic:/CoRN/ftc/TaylorLemma/funct_aux.con. + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_lemma6.con. + +(* UNEXPORTED +Ltac Lazy_Included := + repeat first + [ apply included_IR + | apply included_FPlus + | apply included_FInv + | apply included_FMinus + | apply included_FMult + | apply included_FNth + | apply included_refl ]. +*) + +(* UNEXPORTED +Ltac Lazy_Eq := + repeat first + [ apply bin_op_wd_unfolded + | apply un_op_wd_unfolded + | apply cg_minus_wd + | apply div_wd + | apply csf_wd_unfolded ]; Algebra. +*) + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_lemma7.con. + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_lemma8.con. + +(* UNEXPORTED +Opaque funct_aux. +*) + +(* UNEXPORTED +Transparent funct_aux. +*) + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_lemma9.con. + +inline cic:/CoRN/ftc/TaylorLemma/g'.con. + +(* UNEXPORTED +Opaque Taylor_rem funct_aux. +*) + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_lemma10.con. + +(* UNEXPORTED +Transparent Taylor_rem funct_aux. +*) + +(* end hide *) + +(*#* +Now Taylor's theorem. + +%\begin{convention}% Let [e] be a positive real number. +%\end{convention}% +*) + +inline cic:/CoRN/ftc/TaylorLemma/e.var. + +inline cic:/CoRN/ftc/TaylorLemma/He.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_lemma11.con. + +(* end hide *) + +(* begin show *) + +inline cic:/CoRN/ftc/TaylorLemma/deriv_Sn'.con. + +(* end show *) + +(* begin hide *) + +inline cic:/CoRN/ftc/TaylorLemma/TLH.con. + +(* end hide *) + +(* UNEXPORTED +Opaque funct_aux. +*) + +(* UNEXPORTED +Opaque Taylor_rem. +*) + +(* UNEXPORTED +Transparent Taylor_rem funct_aux. +*) + +inline cic:/CoRN/ftc/TaylorLemma/Taylor_lemma.con. + +(* UNEXPORTED +End Taylor_Defs. +*) + diff --git a/matita/contribs/CoRN-Decl/ftc/WeakIVT.ma b/matita/contribs/CoRN-Decl/ftc/WeakIVT.ma new file mode 100644 index 000000000..a66df65e1 --- /dev/null +++ b/matita/contribs/CoRN-Decl/ftc/WeakIVT.ma @@ -0,0 +1,233 @@ +(**************************************************************************) +(* ___ *) +(* ||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/WeakIVT". + +(* $Id: WeakIVT.v,v 1.9 2004/04/23 10:01:01 lcf Exp $ *) + +(*#* printing ** %\ensuremath\times% #×# *) + +(* begin hide *) + +(* end hide *) + +(* INCLUDE +Continuity +*) + +(*#* *IVT for Partial Functions + +In general, we cannot prove the classically valid Intermediate Value +Theorem for arbitrary partial functions, which states that in any +interval [[a,b]], for any value [z] between [f(a)] and [f(b)] +there exists $x\in[a,b]$#x∈[a,b]# such that [f(x) [=] z]. + +However, as is usually the case, there are some good aproximation results. We +will prove them here. +*) + +(* UNEXPORTED +Section Lemma1. +*) + +inline cic:/CoRN/ftc/WeakIVT/a.var. + +inline cic:/CoRN/ftc/WeakIVT/b.var. + +inline cic:/CoRN/ftc/WeakIVT/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/WeakIVT/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/WeakIVT/F.var. + +inline cic:/CoRN/ftc/WeakIVT/contF.var. + +(*#* **First Lemmas + +%\begin{convention}% Let [a, b : IR] and [Hab : a [<=] b] and denote by [I] +the interval [[a,b]]. Let [F] be a continuous function on [I]. +%\end{convention}% + +We begin by proving that, if [f(a) [<] f(b)], then for every [y] in +[[f(a),f(b)]] there is an $x\in[a,b]$#x∈[a,b]# such that [f(x)] is close +enough to [z]. +*) + +inline cic:/CoRN/ftc/WeakIVT/Weak_IVT_ap_lft.con. + +(* UNEXPORTED +End Lemma1. +*) + +(* UNEXPORTED +Section Lemma2. +*) + +inline cic:/CoRN/ftc/WeakIVT/a.var. + +inline cic:/CoRN/ftc/WeakIVT/b.var. + +inline cic:/CoRN/ftc/WeakIVT/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/WeakIVT/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/WeakIVT/F.var. + +inline cic:/CoRN/ftc/WeakIVT/contF.var. + +(*#* +If [f(b) [<] f(a)], a similar result holds: +*) + +inline cic:/CoRN/ftc/WeakIVT/Weak_IVT_ap_rht.con. + +(* UNEXPORTED +End Lemma2. +*) + +(* UNEXPORTED +Section IVT. +*) + +(*#* **The IVT + +We will now assume that [a [<] b] and that [F] is not only +continuous, but also strictly increasing in [I]. Under +these assumptions, we can build two sequences of values which +converge to [x0] such that [f(x0) [=] z]. +*) + +inline cic:/CoRN/ftc/WeakIVT/a.var. + +inline cic:/CoRN/ftc/WeakIVT/b.var. + +inline cic:/CoRN/ftc/WeakIVT/Hab'.var. + +inline cic:/CoRN/ftc/WeakIVT/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/WeakIVT/I.con. + +(* end hide *) + +inline cic:/CoRN/ftc/WeakIVT/F.var. + +inline cic:/CoRN/ftc/WeakIVT/contF.var. + +(* begin hide *) + +inline cic:/CoRN/ftc/WeakIVT/incF.con. + +(* end hide *) + +(* begin show *) + +inline cic:/CoRN/ftc/WeakIVT/incrF.var. + +(* end show *) + +(* begin hide *) + +inline cic:/CoRN/ftc/WeakIVT/Ha.con. + +inline cic:/CoRN/ftc/WeakIVT/Hb.con. + +inline cic:/CoRN/ftc/WeakIVT/HFab'.con. + +(* end hide *) + +(* begin show *) + +inline cic:/CoRN/ftc/WeakIVT/z.var. + +inline cic:/CoRN/ftc/WeakIVT/Haz.var. + +inline cic:/CoRN/ftc/WeakIVT/Hzb.var. + +(* end show *) + +(*#* Given any two points [x [<] y] in [[a,b]] such that [x [<=] z [<=] y], +we can find [x' [<] y'] such that $|x'-y'|=\frac23|x-y|$#|x'-y'|=2/3|x-y|# +and [x' [<=] z [<=] y']. +*) + +inline cic:/CoRN/ftc/WeakIVT/IVT_seq_lemma.con. + +(* end hide *) + +(*#* +We now iterate this construction. +*) + +inline cic:/CoRN/ftc/WeakIVT/IVT_aux_seq_type.ind. + +inline cic:/CoRN/ftc/WeakIVT/IVT_iter.con. + +inline cic:/CoRN/ftc/WeakIVT/IVT_seq.con. + +(*#* +We now define the sequences built from this iteration, starting with [a] and [b]. +*) + +inline cic:/CoRN/ftc/WeakIVT/a_seq.con. + +inline cic:/CoRN/ftc/WeakIVT/b_seq.con. + +inline cic:/CoRN/ftc/WeakIVT/a_seq_I.con. + +inline cic:/CoRN/ftc/WeakIVT/b_seq_I.con. + +inline cic:/CoRN/ftc/WeakIVT/a_seq_less_b_seq.con. + +inline cic:/CoRN/ftc/WeakIVT/a_seq_leEq_z.con. + +inline cic:/CoRN/ftc/WeakIVT/z_leEq_b_seq.con. + +inline cic:/CoRN/ftc/WeakIVT/a_seq_mon.con. + +inline cic:/CoRN/ftc/WeakIVT/b_seq_mon.con. + +inline cic:/CoRN/ftc/WeakIVT/a_seq_b_seq_dist_n.con. + +inline cic:/CoRN/ftc/WeakIVT/a_seq_b_seq_dist.con. + +inline cic:/CoRN/ftc/WeakIVT/a_seq_Cauchy.con. + +inline cic:/CoRN/ftc/WeakIVT/b_seq_Cauchy.con. + +inline cic:/CoRN/ftc/WeakIVT/xa.con. + +inline cic:/CoRN/ftc/WeakIVT/xb.con. + +inline cic:/CoRN/ftc/WeakIVT/a_seq_b_seq_lim.con. + +inline cic:/CoRN/ftc/WeakIVT/xa_in_interval.con. + +inline cic:/CoRN/ftc/WeakIVT/IVT_I.con. + +(* UNEXPORTED +End IVT. +*) + diff --git a/matita/contribs/CoRN-Decl/makefile b/matita/contribs/CoRN-Decl/makefile new file mode 100644 index 000000000..60f15b469 --- /dev/null +++ b/matita/contribs/CoRN-Decl/makefile @@ -0,0 +1,39 @@ +H=@ + +RT_BASEDIR=../../ +OPTIONS=-bench +MMAKE=$(RT_BASEDIR)matitamake $(OPTIONS) +CLEAN=$(RT_BASEDIR)matitaclean $(OPTIONS) +MMAKEO=$(RT_BASEDIR)matitamake.opt $(OPTIONS) +CLEANO=$(RT_BASEDIR)matitaclean.opt $(OPTIONS) + +devel:=$(shell basename `pwd`) + +ifneq "$(SRC)" "" + XXX="SRC=$(SRC)" +endif + +all: preall + $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) build $(devel) +clean: preall + $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) clean $(devel) +cleanall: preall + $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEAN) all + +all.opt opt: preall.opt + $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) build $(devel) +clean.opt: preall.opt + $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) clean $(devel) +cleanall.opt: preall.opt + $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MCLEANO) all + +%.mo: preall + $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) $@ +%.mo.opt: preall.opt + $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) $@ + +preall: + $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKE) init $(devel) + +preall.opt: + $(H)$(XXX) MATITA_FLAGS=$(MATITA_FLAGS) $(MMAKEO) init $(devel) diff --git a/matita/contribs/CoRN-Decl/metrics/CMetricSpaces.ma b/matita/contribs/CoRN-Decl/metrics/CMetricSpaces.ma new file mode 100644 index 000000000..7996af496 --- /dev/null +++ b/matita/contribs/CoRN-Decl/metrics/CMetricSpaces.ma @@ -0,0 +1,205 @@ +(**************************************************************************) +(* ___ *) +(* ||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/metrics/CMetricSpaces". + +(* $Id: CMetricSpaces.v,v 1.4 2004/04/23 10:01:01 lcf Exp $ *) + +(* INCLUDE +Prod_Sub +*) + +(* INCLUDE +Equiv +*) + +(* UNEXPORTED +Section Definition_MS. +*) + +(*#* **Definition of Metric Space +*) + +inline cic:/CoRN/metrics/CMetricSpaces/CMetricSpace.ind. + +(* UNEXPORTED +End Definition_MS. +*) + +(* UNEXPORTED +Section MS_basics. +*) + +(*#* **Metric Space basics +*) + +inline cic:/CoRN/metrics/CMetricSpaces/d_CMetricSpace_apdiag_imp_grzero.con. + +inline cic:/CoRN/metrics/CMetricSpaces/d_zero_imp_eq.con. + +inline cic:/CoRN/metrics/CMetricSpaces/is_CMetricSpace_diag_zero.con. + +(* UNEXPORTED +End MS_basics. +*) + +(* UNEXPORTED +Section prodandsub. +*) + +(*#* **Product-Metric-Spaces and Sub-Metric-Spaces +*) + +(*#* +The product of two metric spaces is again a metric space. +*) + +inline cic:/CoRN/metrics/CMetricSpaces/Prod0CMetricSpaces_apdiag_grzero.con. + +inline cic:/CoRN/metrics/CMetricSpaces/Prod0CMetricSpace.con. + +(*#* +A subspace of a metric space is again a metric space. +*) + +(* UNEXPORTED +Implicit Arguments SubPsMetricSpace [X]. +*) + +inline cic:/CoRN/metrics/CMetricSpaces/SubMetricSpace_apdiag_grzero.con. + +inline cic:/CoRN/metrics/CMetricSpaces/SubMetricSpace.con. + +(* UNEXPORTED +Implicit Arguments SubMetricSpace [X]. +*) + +(* UNEXPORTED +End prodandsub. +*) + +(* UNEXPORTED +Section Zeroff. +*) + +(*#* **Pseudo Metric Spaces vs Metric Spaces +*) + +(*#* +Not all pseudo metric spaces are a metric space: +*) + +inline cic:/CoRN/metrics/CMetricSpaces/zf_nis_CMetricSpace.con. + +(*#* +But a pseudo metric space induces a metric space: +*) + +inline cic:/CoRN/metrics/CMetricSpaces/metric_ap.con. + +inline cic:/CoRN/metrics/CMetricSpaces/metric_eq.con. + +inline cic:/CoRN/metrics/CMetricSpaces/metric_ap_irreflexive.con. + +inline cic:/CoRN/metrics/CMetricSpaces/metric_ap_symmetric.con. + +inline cic:/CoRN/metrics/CMetricSpaces/metric_ap_cotransitive.con. + +inline cic:/CoRN/metrics/CMetricSpaces/metric_ap_tight.con. + +inline cic:/CoRN/metrics/CMetricSpaces/Metric_CSet_is_CSetoid.con. + +inline cic:/CoRN/metrics/CMetricSpaces/Metric_CSetoid.con. + +inline cic:/CoRN/metrics/CMetricSpaces/metric_d.con. + +inline cic:/CoRN/metrics/CMetricSpaces/metric_d_strext.con. + +inline cic:/CoRN/metrics/CMetricSpaces/Metric_d.con. + +inline cic:/CoRN/metrics/CMetricSpaces/Metric_d_com.con. + +inline cic:/CoRN/metrics/CMetricSpaces/Metric_d_nneg.con. + +inline cic:/CoRN/metrics/CMetricSpaces/Metric_d_pos_imp_ap.con. + +inline cic:/CoRN/metrics/CMetricSpaces/Metric_d_tri_ineq.con. + +inline cic:/CoRN/metrics/CMetricSpaces/QuotientCSetoid_is_CPsMetricSpace.con. + +inline cic:/CoRN/metrics/CMetricSpaces/QuotientCPsMetricSpace.con. + +inline cic:/CoRN/metrics/CMetricSpaces/Metric_d_apdiag_grzero.con. + +inline cic:/CoRN/metrics/CMetricSpaces/QuotientCMetricSpace.con. + +(*#* +Some pseudo metric spaces already are a metric space: +*) + +inline cic:/CoRN/metrics/CMetricSpaces/dIR_apdiag_grzero.con. + +inline cic:/CoRN/metrics/CMetricSpaces/IR_as_CMetricSpace.con. + +(*#* +In that case the induced metric space is equivalent to the original one: +*) + +inline cic:/CoRN/metrics/CMetricSpaces/emb.con. + +inline cic:/CoRN/metrics/CMetricSpaces/emb_strext.con. + +inline cic:/CoRN/metrics/CMetricSpaces/Emb.con. + +inline cic:/CoRN/metrics/CMetricSpaces/Quotient_pres_CMetricSpace.con. + +(* UNEXPORTED +End Zeroff. +*) + +(* UNEXPORTED +Section Limitt. +*) + +(*#* **Limit +*) + +(*#* +A sequence in a metric space has at most one limit. +*) + +(* UNEXPORTED +Implicit Arguments MSseqLimit [X]. +*) + +(* begin hide *) + +inline cic:/CoRN/metrics/CMetricSpaces/nz.con. + +(* end hide *) + +(* begin hide *) + +inline cic:/CoRN/metrics/CMetricSpaces/d_wd.con. + +(* end hide *) + +inline cic:/CoRN/metrics/CMetricSpaces/unique_MSseqLim.con. + +(* UNEXPORTED +End Limitt. +*) + diff --git a/matita/contribs/CoRN-Decl/metrics/CPMSTheory.ma b/matita/contribs/CoRN-Decl/metrics/CPMSTheory.ma new file mode 100644 index 000000000..fe04f4fb1 --- /dev/null +++ b/matita/contribs/CoRN-Decl/metrics/CPMSTheory.ma @@ -0,0 +1,228 @@ +(**************************************************************************) +(* ___ *) +(* ||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/metrics/CPMSTheory". + +(* $Id: CPMSTheory.v,v 1.6 2004/04/23 10:01:02 lcf Exp $ *) + +(* INCLUDE +Prod_Sub +*) + +(* UNEXPORTED +Section lists. +*) + +(*#* **Lists +*) + +(*#* + List and membership of lists are used in the definition of +%''totally bounded''% #"totally bounded"#. Note that we use the Leibniz equality in the definition +of [MSmember], and not the setoid equality. So we are really talking about +finite sets of representants, instead of finite subsetoids. This seems to make + the proofs a bit easier. +*) + +inline cic:/CoRN/metrics/CPMSTheory/MSmember.con. + +(* UNEXPORTED +Implicit Arguments MSmember [X]. +*) + +inline cic:/CoRN/metrics/CPMSTheory/to_IR.con. + +inline cic:/CoRN/metrics/CPMSTheory/from_IR.con. + +inline cic:/CoRN/metrics/CPMSTheory/list_IR.con. + +inline cic:/CoRN/metrics/CPMSTheory/is_P.con. + +(*#* +If a real number is element of a list in the above defined sense, +it is an element of the list in the sense of [member], +that uses the setoid equality. +*) + +inline cic:/CoRN/metrics/CPMSTheory/member1.con. + +(*#* +The image under a certain mapping of an element of a list $l$ #l# is member +of the list of images of elements of $l$ #l#. +*) + +inline cic:/CoRN/metrics/CPMSTheory/map_member.con. + +(* UNEXPORTED +End lists. +*) + +(* UNEXPORTED +Section loc_and_bound. +*) + +(*#* **Pseudo Metric Space theory +*) + +inline cic:/CoRN/metrics/CPMSTheory/Re_co_do.con. + +inline cic:/CoRN/metrics/CPMSTheory/Re_co_do_strext.con. + +inline cic:/CoRN/metrics/CPMSTheory/re_co_do.con. + +inline cic:/CoRN/metrics/CPMSTheory/re_co_do_well_def.con. + +(* UNEXPORTED +Implicit Arguments MSmember [X]. +*) + +(*#* +Again we see that the image under a certain mapping of an element of a list $l$ +#l# is member of the list of images of elements of $l$ #l#. +*) + +inline cic:/CoRN/metrics/CPMSTheory/map_member'.con. + +inline cic:/CoRN/metrics/CPMSTheory/bounded.con. + +inline cic:/CoRN/metrics/CPMSTheory/MStotally_bounded.con. + +(*#* +Total boundedness is preserved under uniformly continuous mappings. +*) + +(* UNEXPORTED +Implicit Arguments SubPsMetricSpace [X]. +*) + +inline cic:/CoRN/metrics/CPMSTheory/unicon_resp_totallybounded.con. + +inline cic:/CoRN/metrics/CPMSTheory/MStotallybounded_totallybounded.con. + +(*#* +Every image under an uniformly continuous function of an totally bounded +pseudo metric space has an infimum and a supremum. +*) + +inline cic:/CoRN/metrics/CPMSTheory/infimum_exists.con. + +inline cic:/CoRN/metrics/CPMSTheory/supremum_exists.con. + +(*#* +A subspace $P$#P# of a pseudo metric space $X$#X# is said to be located if for all +elements $x$#x# of $X$#X# there exists an infimum for the distance +between $x$#x# and the elements of $P$#P#. +*) + +(* UNEXPORTED +Implicit Arguments dsub'_as_cs_fun [X]. +*) + +inline cic:/CoRN/metrics/CPMSTheory/located.con. + +(* UNEXPORTED +Implicit Arguments located [X]. +*) + +inline cic:/CoRN/metrics/CPMSTheory/located'.con. + +(* UNEXPORTED +Implicit Arguments located' [X]. +*) + +inline cic:/CoRN/metrics/CPMSTheory/located_imp_located'.con. + +(*#* +Every totally bounded pseudo metric space is located. +*) + +inline cic:/CoRN/metrics/CPMSTheory/MStotally_bounded_imp_located.con. + +(*#* +For all $x$#x# in a pseudo metric space $X$#X#, for all located subspaces $P$#P# of $X$#X#, +[Floc] chooses for a given natural number $n$#n# an $y$#y# in $P$#P# such that: +$d(x,y)\leq \mbox{inf}\{d(x,p)|p \in P\}+(n+1)^{-1}$ +#d(x,y) ≤ inf{d(x,p)| pϵP} + (n+1)-1#. +[Flocfun] does (almost) the same, but has a different type. This enables +one to use the latter as an argument of [map]. +*) + +inline cic:/CoRN/metrics/CPMSTheory/Floc.con. + +inline cic:/CoRN/metrics/CPMSTheory/Flocfun.con. + +(*#* +A located subset $P$#P# of a totally bounded pseudo metric space $X$ +#X# is totally +bounded. +*) + +inline cic:/CoRN/metrics/CPMSTheory/locatedsub_totallybounded_imp_totallyboundedsub.con. + +(*#* +Here are some definitions that could come in handy: +*) + +inline cic:/CoRN/metrics/CPMSTheory/MSCauchy_seq.con. + +(* UNEXPORTED +Implicit Arguments MSseqLimit' [X]. +*) + +inline cic:/CoRN/metrics/CPMSTheory/MSComplete.con. + +(*#* +A compact pseudo metric space is a pseudo metric space which is complete and +totally bounded. +*) + +inline cic:/CoRN/metrics/CPMSTheory/MSCompact.con. + +(*#* +A subset $P$#P# is %\emph{open}%#open# if for all $x$#x# in $P$#P# there exists an open sphere +with centre $x$#x# that is contained in $P$#P#. +*) + +inline cic:/CoRN/metrics/CPMSTheory/open.con. + +(* UNEXPORTED +Implicit Arguments open [X]. +*) + +(*#* +The operator [infima] gives the infimum for the distance between an +element $x$#x# of a located pseudo metric space $X$#X# and the elements of a +subspace $P$#P# of $X$#X#. +*) + +inline cic:/CoRN/metrics/CPMSTheory/infima.con. + +(* UNEXPORTED +Implicit Arguments infima [X]. +*) + +(*#* +A non-empty totally bounded sub-pseudo-metric-space $P$#P# is said to be +%\emph{well contained}% #well contained# in an open sub-pseudo-metric-space $Q$#Q# if $Q$#Q# contains +all points that are in some sense close to $P$#P#. +*) + +inline cic:/CoRN/metrics/CPMSTheory/well_contained.con. + +(* UNEXPORTED +End loc_and_bound. +*) + diff --git a/matita/contribs/CoRN-Decl/metrics/CPseudoMSpaces.ma b/matita/contribs/CoRN-Decl/metrics/CPseudoMSpaces.ma new file mode 100644 index 000000000..aacad5411 --- /dev/null +++ b/matita/contribs/CoRN-Decl/metrics/CPseudoMSpaces.ma @@ -0,0 +1,186 @@ +(**************************************************************************) +(* ___ *) +(* ||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/metrics/CPseudoMSpaces". + +(* $Id: CPseudoMSpaces.v,v 1.3 2004/04/23 10:01:02 lcf Exp $ *) + +(* INCLUDE +Intervals +*) + +(*#* *Metric Spaces +*) + +(* UNEXPORTED +Section Relations. +*) + +(*#* **Relations necessary for Pseudo Metric Spaces and Metric Spaces +%\begin{convention}% +Let [A : CSetoid], [d : (CSetoid_bin_fun A A IR)]. +%\end{convention}% +*) + +inline cic:/CoRN/metrics/CPseudoMSpaces/A.var. + +inline cic:/CoRN/metrics/CPseudoMSpaces/d.var. + +(* UNEXPORTED +Set Implicit Arguments. +*) + +(* UNEXPORTED +Unset Strict Implicit. +*) + +inline cic:/CoRN/metrics/CPseudoMSpaces/com.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/nneg.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/pos_imp_ap.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/tri_ineq.con. + +(* UNEXPORTED +Set Strict Implicit. +*) + +(* UNEXPORTED +Unset Implicit Arguments. +*) + +inline cic:/CoRN/metrics/CPseudoMSpaces/diag_zero.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/apdiag_imp_grzero.con. + +(* UNEXPORTED +End Relations. +*) + +(* UNEXPORTED +Section Definition_PsMS0. +*) + +(*#* **Definition of Pseudo Metric Space +*) + +(*#* +A pseudo metric space consists of a setoid and a %''pseudo metric''% #"pseudo metric"#, also called +%''distance''% #"distance"#, a binairy function that fulfils certain properties. +*) + +inline cic:/CoRN/metrics/CPseudoMSpaces/is_CPsMetricSpace.ind. + +inline cic:/CoRN/metrics/CPseudoMSpaces/CPsMetricSpace.ind. + +(* UNEXPORTED +End Definition_PsMS0. +*) + +(* UNEXPORTED +Implicit Arguments cms_d [c]. +*) + +(* UNEXPORTED +Section PsMS_axioms. +*) + +(*#* **Pseudo Metric Space axioms +%\begin{convention}% +Let [A] be a pseudo metric space. +%\end{convention}% +*) + +inline cic:/CoRN/metrics/CPseudoMSpaces/A.var. + +inline cic:/CoRN/metrics/CPseudoMSpaces/CPsMetricSpace_is_CPsMetricSpace.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/d_com.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/d_nneg.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/d_pos_imp_ap.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/d_tri_ineq.con. + +(* UNEXPORTED +End PsMS_axioms. +*) + +(* UNEXPORTED +Section PsMS_basics. +*) + +(*#* **Pseudo Metric Space basics +%\begin{convention}% +Let [Y] be a pseudo metric space. +%\end{convention}% +*) + +inline cic:/CoRN/metrics/CPseudoMSpaces/Y.var. + +inline cic:/CoRN/metrics/CPseudoMSpaces/rev_tri_ineq.con. + +(*#* +Instead of taking [pos_imp_ap] as axiom, +we could as well have taken [diag_zero]. +*) + +inline cic:/CoRN/metrics/CPseudoMSpaces/diag_zero_imp_pos_imp_ap.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/pos_imp_ap_imp_diag_zero.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/is_CPsMetricSpace_diag_zero.con. + +(* UNEXPORTED +End PsMS_basics. +*) + +(* UNEXPORTED +Section Zerof. +*) + +(*#* **Zero function +*) + +(*#* +Every setoid forms with the binary function that always returns zero, +a pseudo metric space. +*) + +inline cic:/CoRN/metrics/CPseudoMSpaces/zero_fun.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/zero_fun_strext.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/Zero_fun.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/zero_fun_com.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/zero_fun_nneg.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/zero_fun_pos_imp_ap.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/zero_fun_tri_ineq.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/zf_is_CPsMetricSpace.con. + +inline cic:/CoRN/metrics/CPseudoMSpaces/zf_as_CPsMetricSpace.con. + +(* UNEXPORTED +End Zerof. +*) + diff --git a/matita/contribs/CoRN-Decl/metrics/ContFunctions.ma b/matita/contribs/CoRN-Decl/metrics/ContFunctions.ma new file mode 100644 index 000000000..b4fa70689 --- /dev/null +++ b/matita/contribs/CoRN-Decl/metrics/ContFunctions.ma @@ -0,0 +1,248 @@ +(**************************************************************************) +(* ___ *) +(* ||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/metrics/ContFunctions". + +(* $Id: ContFunctions.v,v 1.3 2004/04/23 10:01:02 lcf Exp $ *) + +(* INCLUDE +CPseudoMSpaces +*) + +(* UNEXPORTED +Section Continuous_functions. +*) + +(*#* **Continuous functions, uniformly continuous functions and Lipschitz functions +%\begin{convention}% +Let [A] and [B] be pseudo metric spaces. +%\end{convention}% +*) + +inline cic:/CoRN/metrics/ContFunctions/A.var. + +inline cic:/CoRN/metrics/ContFunctions/B.var. + +(*#* +We will look at some notions of continuous functions. +*) + +inline cic:/CoRN/metrics/ContFunctions/continuous.con. + +inline cic:/CoRN/metrics/ContFunctions/continuous'.con. + +inline cic:/CoRN/metrics/ContFunctions/uni_continuous.con. + +inline cic:/CoRN/metrics/ContFunctions/uni_continuous'.con. + +inline cic:/CoRN/metrics/ContFunctions/uni_continuous''.con. + +inline cic:/CoRN/metrics/ContFunctions/lipschitz.con. + +inline cic:/CoRN/metrics/ContFunctions/lipschitz'.con. + +(* UNEXPORTED +End Continuous_functions. +*) + +(* UNEXPORTED +Implicit Arguments continuous [A B]. +*) + +(* UNEXPORTED +Implicit Arguments uni_continuous [A B]. +*) + +(* UNEXPORTED +Implicit Arguments lipschitz [A B]. +*) + +(* UNEXPORTED +Implicit Arguments continuous' [A B]. +*) + +(* UNEXPORTED +Implicit Arguments uni_continuous' [A B]. +*) + +(* UNEXPORTED +Implicit Arguments uni_continuous'' [A B]. +*) + +(* UNEXPORTED +Implicit Arguments lipschitz' [A B]. +*) + +(* UNEXPORTED +Section Lemmas. +*) + +(* begin hide *) + +inline cic:/CoRN/metrics/ContFunctions/nexp_power.con. + +(* end hide *) + +inline cic:/CoRN/metrics/ContFunctions/continuous_imp_continuous'.con. + +inline cic:/CoRN/metrics/ContFunctions/continuous'_imp_continuous.con. + +inline cic:/CoRN/metrics/ContFunctions/uni_continuous_imp_uni_continuous'.con. + +inline cic:/CoRN/metrics/ContFunctions/uni_continuous'_imp_uni_continuous.con. + +inline cic:/CoRN/metrics/ContFunctions/uni_continuous'_imp_uni_continuous''.con. + +inline cic:/CoRN/metrics/ContFunctions/lipschitz_imp_lipschitz'.con. + +inline cic:/CoRN/metrics/ContFunctions/lipschitz'_imp_lipschitz.con. + +(*#* +Every uniformly continuous function is continuous and +every Lipschitz function is uniformly continuous. +*) + +inline cic:/CoRN/metrics/ContFunctions/uni_continuous_imp_continuous.con. + +inline cic:/CoRN/metrics/ContFunctions/lipschitz_imp_uni_continuous.con. + +(* UNEXPORTED +End Lemmas. +*) + +(* UNEXPORTED +Section Identity. +*) + +(*#* **Identity +*) + +(*#* +The identity function is Lipschitz. +Hence it is uniformly continuous and continuous. +*) + +inline cic:/CoRN/metrics/ContFunctions/id_is_lipschitz.con. + +inline cic:/CoRN/metrics/ContFunctions/id_is_uni_continuous.con. + +inline cic:/CoRN/metrics/ContFunctions/id_is_continuous.con. + +(* UNEXPORTED +End Identity. +*) + +(* UNEXPORTED +Section Constant. +*) + +(*#* **Constant functions +%\begin{convention}% +Let [B] and [X] be pseudo metric spaces. +%\end{convention}% +*) + +(*#* +Any constant function is Lipschitz. +Hence it is uniformly continuous and continuous. +*) + +inline cic:/CoRN/metrics/ContFunctions/B.var. + +inline cic:/CoRN/metrics/ContFunctions/X.var. + +inline cic:/CoRN/metrics/ContFunctions/const_fun_is_lipschitz.con. + +inline cic:/CoRN/metrics/ContFunctions/const_fun_is_uni_continuous.con. + +inline cic:/CoRN/metrics/ContFunctions/const_fun_is_continuous.con. + +(* UNEXPORTED +End Constant. +*) + +(* UNEXPORTED +Section Composition. +*) + +(*#* **Composition +%\begin{convention}% +Let [B],[C] and [X] be pseudo metric spaces. +Let [f : (CSetoid_fun X B)] and +[g : (CSetoid_fun B C)]. +%\end{convention}% +*) + +(*#* +The composition of two Lipschitz/uniformly continous/continuous functions is +again Lipschitz/uniformly continuous/continuous. +*) + +inline cic:/CoRN/metrics/ContFunctions/X.var. + +inline cic:/CoRN/metrics/ContFunctions/B.var. + +inline cic:/CoRN/metrics/ContFunctions/f.var. + +inline cic:/CoRN/metrics/ContFunctions/C.var. + +inline cic:/CoRN/metrics/ContFunctions/g.var. + +inline cic:/CoRN/metrics/ContFunctions/comp_resp_lipschitz.con. + +inline cic:/CoRN/metrics/ContFunctions/comp_resp_uni_continuous.con. + +inline cic:/CoRN/metrics/ContFunctions/comp_resp_continuous.con. + +(* UNEXPORTED +End Composition. +*) + +(* UNEXPORTED +Section Limit. +*) + +(*#* **Limit +*) + +inline cic:/CoRN/metrics/ContFunctions/MSseqLimit.con. + +(* UNEXPORTED +Implicit Arguments MSseqLimit [X]. +*) + +inline cic:/CoRN/metrics/ContFunctions/MSseqLimit'.con. + +(* UNEXPORTED +Implicit Arguments MSseqLimit' [X]. +*) + +inline cic:/CoRN/metrics/ContFunctions/MSseqLimit_imp_MSseqLimit'.con. + +inline cic:/CoRN/metrics/ContFunctions/MSseqLimit'_imp_MSseqLimit.con. + +inline cic:/CoRN/metrics/ContFunctions/seqcontinuous'.con. + +(* UNEXPORTED +Implicit Arguments seqcontinuous' [A B]. +*) + +inline cic:/CoRN/metrics/ContFunctions/continuous'_imp_seqcontinuous'.con. + +(* UNEXPORTED +End Limit. +*) + diff --git a/matita/contribs/CoRN-Decl/metrics/Equiv.ma b/matita/contribs/CoRN-Decl/metrics/Equiv.ma new file mode 100644 index 000000000..7001e836c --- /dev/null +++ b/matita/contribs/CoRN-Decl/metrics/Equiv.ma @@ -0,0 +1,66 @@ +(**************************************************************************) +(* ___ *) +(* ||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/metrics/Equiv". + +(* $Id: Equiv.v,v 1.4 2004/04/23 10:01:02 lcf Exp $ *) + +(* INCLUDE +IR_CPMSpace +*) + +(* UNEXPORTED +Section equivalent. +*) + +(*#* **Equivalent Pseudo Metric Spaces +*) + +(*#* +We say that two pseudo metric spaces are equivalent, when there exists a +bijective, structure-preserving function between them. +*) + +inline cic:/CoRN/metrics/Equiv/equivalent_psmetric.con. + +inline cic:/CoRN/metrics/Equiv/isopsmetry.con. + +(* UNEXPORTED +Implicit Arguments isopsmetry [X Y]. +*) + +inline cic:/CoRN/metrics/Equiv/isopsmetry_imp_bij.con. + +inline cic:/CoRN/metrics/Equiv/isopsmetry_imp_lipschitz.con. + +inline cic:/CoRN/metrics/Equiv/id_is_isopsmetry.con. + +inline cic:/CoRN/metrics/Equiv/comp_resp_isopsmetry.con. + +inline cic:/CoRN/metrics/Equiv/inv_isopsmetry.con. + +inline cic:/CoRN/metrics/Equiv/MSequivalent.con. + +(*#* +Not all pseudo metric spaces are equivalent: +*) + +inline cic:/CoRN/metrics/Equiv/MSequivalent_discr.con. + +(* UNEXPORTED +End equivalent. +*) + diff --git a/matita/contribs/CoRN-Decl/metrics/IR_CPMSpace.ma b/matita/contribs/CoRN-Decl/metrics/IR_CPMSpace.ma new file mode 100644 index 000000000..1df53a8ea --- /dev/null +++ b/matita/contribs/CoRN-Decl/metrics/IR_CPMSpace.ma @@ -0,0 +1,105 @@ +(**************************************************************************) +(* ___ *) +(* ||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/metrics/IR_CPMSpace". + +(* $Id: IR_CPMSpace.v,v 1.4 2004/04/23 10:01:02 lcf Exp $ *) + +(* INCLUDE +ContFunctions +*) + +(* UNEXPORTED +Section Reals. +*) + +(*#* **Real numbers +*) + +(*#* +%\begin{convention}% +Let [X] be a pseudo metric space. +%\end{convention}% +*) + +(*#* +The real numbers with the usual distance form a pseudo metric space. +*) + +inline cic:/CoRN/metrics/IR_CPMSpace/dIR.con. + +inline cic:/CoRN/metrics/IR_CPMSpace/bin_fun_strext_dIR.con. + +inline cic:/CoRN/metrics/IR_CPMSpace/dIR_as_CSetoid_fun.con. + +inline cic:/CoRN/metrics/IR_CPMSpace/dIR_nneg.con. + +inline cic:/CoRN/metrics/IR_CPMSpace/dIR_com.con. + +inline cic:/CoRN/metrics/IR_CPMSpace/dIR_pos_imp_ap.con. + +(* begin hide *) + +inline cic:/CoRN/metrics/IR_CPMSpace/IR_tri_ineq.con. + +(* end hide *) + +inline cic:/CoRN/metrics/IR_CPMSpace/dIR_tri_ineq.con. + +inline cic:/CoRN/metrics/IR_CPMSpace/IR_dIR_is_CPsMetricSpace.con. + +inline cic:/CoRN/metrics/IR_CPMSpace/IR_as_CPsMetricSpace.con. + +inline cic:/CoRN/metrics/IR_CPMSpace/X.var. + +inline cic:/CoRN/metrics/IR_CPMSpace/rev_tri_ineq'.con. + +(*#* +A pseudo metric is Lipschitz. Hence it is uniformly continuous and continuous. +*) + +inline cic:/CoRN/metrics/IR_CPMSpace/d_is_lipschitz.con. + +inline cic:/CoRN/metrics/IR_CPMSpace/d_is_uni_continuous.con. + +inline cic:/CoRN/metrics/IR_CPMSpace/d_is_continuous.con. + +(* UNEXPORTED +End Reals. +*) + +(* UNEXPORTED +Section Addition. +*) + +(*#* **Addition of continuous functions +*) + +(*#* +The sum of two Lipschitz/uniformly continous/continuous functions is again +Lipschitz/uniformly continuous/continuous. +*) + +inline cic:/CoRN/metrics/IR_CPMSpace/plus_resp_lipschitz.con. + +inline cic:/CoRN/metrics/IR_CPMSpace/plus_resp_uni_continuous.con. + +inline cic:/CoRN/metrics/IR_CPMSpace/plus_resp_continuous.con. + +(* UNEXPORTED +End Addition. +*) + diff --git a/matita/contribs/CoRN-Decl/metrics/Prod_Sub.ma b/matita/contribs/CoRN-Decl/metrics/Prod_Sub.ma new file mode 100644 index 000000000..c1a6e78ed --- /dev/null +++ b/matita/contribs/CoRN-Decl/metrics/Prod_Sub.ma @@ -0,0 +1,131 @@ +(**************************************************************************) +(* ___ *) +(* ||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/metrics/Prod_Sub". + +(* $Id: Prod_Sub.v,v 1.4 2004/04/23 10:01:02 lcf Exp $ *) + +(* INCLUDE +IR_CPMSpace +*) + +(* UNEXPORTED +Section prodpsmetrics. +*) + +(*#* **Product-Pseudo-Metric-Spaces +*) + +(*#* +The product metric here defined is: +$ d_{prod}((a_1,b_1),(a_2,b_2)):= d_A(a_1,a_2)+d_B(b_1,b_2)$ +# dprod((a1,b1),(a2,b2)):= dA(a1,b1)+dB(b1,b2)#. +This is %\emph{not}% #not# the one used to make the metric of +$\RR^{2}$ #IR2# out of the metric of $\RR$ #IR#. +*) + +inline cic:/CoRN/metrics/Prod_Sub/dprod0.con. + +inline cic:/CoRN/metrics/Prod_Sub/dprod0_strext.con. + +inline cic:/CoRN/metrics/Prod_Sub/d_prod0.con. + +inline cic:/CoRN/metrics/Prod_Sub/prod0cpsmetricspace_is_CPsMetricSpace.con. + +inline cic:/CoRN/metrics/Prod_Sub/Prod0CPsMetricSpace.con. + +(* UNEXPORTED +End prodpsmetrics. +*) + +(* UNEXPORTED +Section subpsmetrics. +*) + +(*#* **Sub-Pseudo-Metric-Spaces +*) + +(*#* +The pseudo metric on a subspace $Y$ #Y# of a pseudo metric space $X$ #X# is +the pseudo metric on $X$ #X# restricted to $Y$ #Y#. +*) + +inline cic:/CoRN/metrics/Prod_Sub/restr_bin_fun.con. + +(* UNEXPORTED +Implicit Arguments restr_bin_fun [X]. +*) + +inline cic:/CoRN/metrics/Prod_Sub/restr_bin_fun'.con. + +(* UNEXPORTED +Implicit Arguments restr_bin_fun' [X]. +*) + +inline cic:/CoRN/metrics/Prod_Sub/restr_bin_fun_strext.con. + +inline cic:/CoRN/metrics/Prod_Sub/Build_SubCSetoid_bin_fun.con. + +inline cic:/CoRN/metrics/Prod_Sub/dsub.con. + +(* UNEXPORTED +Implicit Arguments dsub [X]. +*) + +inline cic:/CoRN/metrics/Prod_Sub/dsub_com.con. + +inline cic:/CoRN/metrics/Prod_Sub/dsub_nneg.con. + +inline cic:/CoRN/metrics/Prod_Sub/dsub_pos_imp_ap.con. + +inline cic:/CoRN/metrics/Prod_Sub/dsub_tri_ineq.con. + +inline cic:/CoRN/metrics/Prod_Sub/is_SubPsMetricSpace.con. + +inline cic:/CoRN/metrics/Prod_Sub/SubPsMetricSpace.con. + +(* UNEXPORTED +Implicit Arguments SubPsMetricSpace [X]. +*) + +inline cic:/CoRN/metrics/Prod_Sub/from_SubPsMetricSpace.con. + +(*#* +The function [dsub'] is used in the definition of %''located''% #"located"#. +It enables one to speak about a distance between an element of a +pseudo metric space and a certain subspace. +*) + +inline cic:/CoRN/metrics/Prod_Sub/dsub'.con. + +(* UNEXPORTED +Implicit Arguments dsub' [X]. +*) + +inline cic:/CoRN/metrics/Prod_Sub/dsub'_strext.con. + +inline cic:/CoRN/metrics/Prod_Sub/dsub'_as_cs_fun.con. + +(* UNEXPORTED +Implicit Arguments dsub'_as_cs_fun [X]. +*) + +inline cic:/CoRN/metrics/Prod_Sub/dsub'_uni_continuous''.con. + +(* UNEXPORTED +End subpsmetrics. +*) + diff --git a/matita/contribs/CoRN-Decl/model/abgroups/QSposabgroup.ma b/matita/contribs/CoRN-Decl/model/abgroups/QSposabgroup.ma new file mode 100644 index 000000000..7c06302c1 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/abgroups/QSposabgroup.ma @@ -0,0 +1,36 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/abgroups/QSposabgroup". + +(* $Id: QSposabgroup.v,v 1.5 2004/04/08 08:20:31 lcf Exp $ *) + +(* INCLUDE +QSposgroup +*) + +(* INCLUDE +CAbGroups +*) + +(*#* **Example of an abelian group: $\langle$#⟨#[Qpos],$(x,y) \mapsto xy/2$ #(x,y) ↦ xy/2#$\rangle$#⟩# +The positive rational numbers form with the operation $(x,y) \mapsto xy/2$ #(x,y) ↦ xy/2# an abelian group. +*) + +inline cic:/CoRN/model/abgroups/QSposabgroup/Qpos_multdiv2_is_CAbGroup.con. + +inline cic:/CoRN/model/abgroups/QSposabgroup/Qpos_multdiv2_as_CAbGroup.con. + diff --git a/matita/contribs/CoRN-Decl/model/abgroups/Qabgroup.ma b/matita/contribs/CoRN-Decl/model/abgroups/Qabgroup.ma new file mode 100644 index 000000000..1998b5209 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/abgroups/Qabgroup.ma @@ -0,0 +1,39 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/abgroups/Qabgroup". + +(* $Id: Qabgroup.v,v 1.5 2004/04/08 08:20:31 lcf Exp $ *) + +(* INCLUDE +Qgroup +*) + +(* INCLUDE +CAbGroups +*) + +(*#* **Example of an abelian group: $\langle$#⟨#[Q],[[+]]$\rangle$#⟩# +*) + +(*#* Addition is commutative, so the rationals form with the addition a +CAbGroup. +*) + +inline cic:/CoRN/model/abgroups/Qabgroup/Q_is_CAbGroup.con. + +inline cic:/CoRN/model/abgroups/Qabgroup/Q_as_CAbGroup.con. + diff --git a/matita/contribs/CoRN-Decl/model/abgroups/Qposabgroup.ma b/matita/contribs/CoRN-Decl/model/abgroups/Qposabgroup.ma new file mode 100644 index 000000000..49d70cf79 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/abgroups/Qposabgroup.ma @@ -0,0 +1,36 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/abgroups/Qposabgroup". + +(* $Id: Qposabgroup.v,v 1.6 2004/04/08 08:20:31 lcf Exp $ *) + +(* INCLUDE +Qposgroup +*) + +(* INCLUDE +CAbGroups +*) + +(*#* **Example of an abelian group: $\langle$#⟨#[Qpos],[[*]]$\rangle$#⟩# +The positive rationals form with the multiplication a CAbgroup. +*) + +inline cic:/CoRN/model/abgroups/Qposabgroup/Qpos_mult_is_CAbGroup.con. + +inline cic:/CoRN/model/abgroups/Qposabgroup/Qpos_mult_as_CAbGroup.con. + diff --git a/matita/contribs/CoRN-Decl/model/abgroups/Zabgroup.ma b/matita/contribs/CoRN-Decl/model/abgroups/Zabgroup.ma new file mode 100644 index 000000000..42e2f9ca8 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/abgroups/Zabgroup.ma @@ -0,0 +1,37 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/abgroups/Zabgroup". + +(* $Id: Zabgroup.v,v 1.5 2004/04/08 08:20:32 lcf Exp $ *) + +(* INCLUDE +Zgroup +*) + +(* INCLUDE +CAbGroups +*) + +(*#* **Example of an abelian group: $\langle$#⟨#[Z],[[+]]$\rangle$#⟩# +*) + +inline cic:/CoRN/model/abgroups/Zabgroup/Z_is_CAbGroup.con. + +inline cic:/CoRN/model/abgroups/Zabgroup/Z_as_CAbGroup.con. + +(*#* The term [Z_as_CAbGroup] is of type [CAbGroup]. Hence we have proven that [Z] is a constructive Abelian group. *) + diff --git a/matita/contribs/CoRN-Decl/model/fields/Qfield.ma b/matita/contribs/CoRN-Decl/model/fields/Qfield.ma new file mode 100644 index 000000000..fd1dc5896 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/fields/Qfield.ma @@ -0,0 +1,37 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/fields/Qfield". + +(* $Id: Qfield.v,v 1.8 2004/04/08 08:20:32 lcf Exp $ *) + +(* INCLUDE +Qring +*) + +(* INCLUDE +CFields +*) + +(*#* **Example of a field: $\langle$#⟨#[Q],[[+]],[[*]]$\rangle$#⟩# +As we have seen, there is a inverse for the multiplication for non-zeroes. +So, [Q] not only forms a ring, but even a field. +*) + +inline cic:/CoRN/model/fields/Qfield/Q_is_CField.con. + +inline cic:/CoRN/model/fields/Qfield/Q_as_CField.con. + diff --git a/matita/contribs/CoRN-Decl/model/groups/QSposgroup.ma b/matita/contribs/CoRN-Decl/model/groups/QSposgroup.ma new file mode 100644 index 000000000..ef659adb0 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/groups/QSposgroup.ma @@ -0,0 +1,37 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/groups/QSposgroup". + +(* $Id: QSposgroup.v,v 1.6 2004/04/08 08:20:32 lcf Exp $ *) + +(* INCLUDE +QSposmonoid +*) + +(* INCLUDE +CGroups +*) + +(*#* **Example of a group: $\langle$#⟨#[Qpos],$(x,y) \mapsto xy/2$ #(x,y) ↦ xy/2#$\rangle$#⟩# +The positive rationals form with the operation $(x,y) \mapsto xy/2$ +#(x,y) ↦ xy/2# a CGroup. +*) + +inline cic:/CoRN/model/groups/QSposgroup/Qpos_multdiv2_is_CGroup.con. + +inline cic:/CoRN/model/groups/QSposgroup/Qpos_multdiv2_as_CGroup.con. + diff --git a/matita/contribs/CoRN-Decl/model/groups/Qgroup.ma b/matita/contribs/CoRN-Decl/model/groups/Qgroup.ma new file mode 100644 index 000000000..36c474ba8 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/groups/Qgroup.ma @@ -0,0 +1,36 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/groups/Qgroup". + +(* $Id: Qgroup.v,v 1.5 2004/04/08 08:20:32 lcf Exp $ *) + +(* INCLUDE +Qmonoid +*) + +(* INCLUDE +CGroups +*) + +(*#* **Example of a group: $\langle$#⟨#[Q],[[+]]$\rangle$#⟩# +The rational numbers with addition form a group. The inverse function is taking the opposite. +*) + +inline cic:/CoRN/model/groups/Qgroup/Q_is_CGroup.con. + +inline cic:/CoRN/model/groups/Qgroup/Q_as_CGroup.con. + diff --git a/matita/contribs/CoRN-Decl/model/groups/Qposgroup.ma b/matita/contribs/CoRN-Decl/model/groups/Qposgroup.ma new file mode 100644 index 000000000..e798d7067 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/groups/Qposgroup.ma @@ -0,0 +1,36 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/groups/Qposgroup". + +(* $Id: Qposgroup.v,v 1.6 2004/04/08 08:20:32 lcf Exp $ *) + +(* INCLUDE +Qposmonoid +*) + +(* INCLUDE +CGroups +*) + +(*#* **Example of a group: $\langle$#⟨#[Qpos],[[*]]$\rangle$#⟩# +The positive rational numbers form a multiplicative group. +*) + +inline cic:/CoRN/model/groups/Qposgroup/Qpos_is_CGroup.con. + +inline cic:/CoRN/model/groups/Qposgroup/Qpos_as_CGroup.con. + diff --git a/matita/contribs/CoRN-Decl/model/groups/Zgroup.ma b/matita/contribs/CoRN-Decl/model/groups/Zgroup.ma new file mode 100644 index 000000000..dcde2c59f --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/groups/Zgroup.ma @@ -0,0 +1,37 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/groups/Zgroup". + +(* $Id: Zgroup.v,v 1.5 2004/04/08 08:20:32 lcf Exp $ *) + +(* INCLUDE +Zmonoid +*) + +(* INCLUDE +CGroups +*) + +(*#* **Example of a group: $\langle$#⟨#[Z],[[+]]$\rangle$#⟩# +*) + +inline cic:/CoRN/model/groups/Zgroup/Z_is_CGroup.con. + +inline cic:/CoRN/model/groups/Zgroup/Z_as_CGroup.con. + +(*#* The term [Z_as_CGroup] is of type [CGroup]. Hence we have proven that [Z] is a constructive group. *) + diff --git a/matita/contribs/CoRN-Decl/model/monoids/Nmonoid.ma b/matita/contribs/CoRN-Decl/model/monoids/Nmonoid.ma new file mode 100644 index 000000000..80ea8fdc0 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/monoids/Nmonoid.ma @@ -0,0 +1,44 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/monoids/Nmonoid". + +(* $Id: Nmonoid.v,v 1.5 2004/04/08 08:20:32 lcf Exp $ *) + +(* INCLUDE +Nsemigroup +*) + +(* INCLUDE +CMonoids +*) + +(*#* **Example of a monoid: $\langle$#⟨#[nat],[[+]]$\rangle$#⟩# +Zero is an unit for the addition. +*) + +inline cic:/CoRN/model/monoids/Nmonoid/O_as_rht_unit.con. + +inline cic:/CoRN/model/monoids/Nmonoid/O_as_lft_unit.con. + +inline cic:/CoRN/model/monoids/Nmonoid/nat_is_CMonoid.con. + +(*#* + Whence we can define ##%\emph{%the monoid of natural numbers%}%##: +*) + +inline cic:/CoRN/model/monoids/Nmonoid/nat_as_CMonoid.con. + diff --git a/matita/contribs/CoRN-Decl/model/monoids/Nposmonoid.ma b/matita/contribs/CoRN-Decl/model/monoids/Nposmonoid.ma new file mode 100644 index 000000000..ab289b85b --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/monoids/Nposmonoid.ma @@ -0,0 +1,44 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/monoids/Nposmonoid". + +(* $Id: Nposmonoid.v,v 1.6 2004/04/08 08:20:33 lcf Exp $ *) + +(* INCLUDE +Npossemigroup +*) + +(* INCLUDE +CMonoids +*) + +(*#* **Example of a monoid: $\langle$#⟨#[Npos],[[*]]$\rangle$#⟩# +One is the right unit as well as the left unit of the multiplication on the +positive natural numbers. +*) + +inline cic:/CoRN/model/monoids/Nposmonoid/rhtunitNpos.con. + +inline cic:/CoRN/model/monoids/Nposmonoid/lftunitNpos.con. + +(*#* So, the positive natural numbers with multiplication form a CMonoid. +*) + +inline cic:/CoRN/model/monoids/Nposmonoid/Nposmult_is_CMonoid.con. + +inline cic:/CoRN/model/monoids/Nposmonoid/Nposmult_as_CMonoid.con. + diff --git a/matita/contribs/CoRN-Decl/model/monoids/QSposmonoid.ma b/matita/contribs/CoRN-Decl/model/monoids/QSposmonoid.ma new file mode 100644 index 000000000..53c3e0472 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/monoids/QSposmonoid.ma @@ -0,0 +1,41 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/monoids/QSposmonoid". + +(* $Id: QSposmonoid.v,v 1.5 2004/04/08 08:20:33 lcf Exp $ *) + +(* INCLUDE +QSpossemigroup +*) + +(* INCLUDE +CMonoids +*) + +(*#* **Example of a monoid: $\langle$#⟨#[Qpos],$(x,y) \mapsto xy/2$ #(x,y) ↦ xy/2#$\rangle$#⟩# +Two is the unit of the operation $(x,y) \mapsto xy/2$ #(x,y) + ↦ xy/2# on the positive rationals. So we have another monoid structure on the positive rational numbers. +*) + +inline cic:/CoRN/model/monoids/QSposmonoid/QTWOpos_is_rht_unit.con. + +inline cic:/CoRN/model/monoids/QSposmonoid/QTWOpos_is_lft_unit.con. + +inline cic:/CoRN/model/monoids/QSposmonoid/Qpos_multdiv2_is_CMonoid.con. + +inline cic:/CoRN/model/monoids/QSposmonoid/Qpos_multdiv2_as_CMonoid.con. + diff --git a/matita/contribs/CoRN-Decl/model/monoids/Qmonoid.ma b/matita/contribs/CoRN-Decl/model/monoids/Qmonoid.ma new file mode 100644 index 000000000..ce930fdff --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/monoids/Qmonoid.ma @@ -0,0 +1,53 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/monoids/Qmonoid". + +(* $Id: Qmonoid.v,v 1.7 2004/04/08 08:20:33 lcf Exp $ *) + +(* INCLUDE +Qsemigroup +*) + +(* INCLUDE +CMonoids +*) + +(*#* **Examples of a monoid: $\langle$#⟨#[Q],[[+]]$\rangle$#⟩# and $\langle$#⟨#[Q],[[*]]$\rangle$#⟩# +***$\langle$#⟨#[Q],[[+]]$\rangle$#⟩# +The rational numbers form with addition a CMonoid. [QZERO] is the unit. +*) + +inline cic:/CoRN/model/monoids/Qmonoid/ZEROQ_as_rht_unit3.con. + +inline cic:/CoRN/model/monoids/Qmonoid/ZEROQ_as_lft_unit3.con. + +inline cic:/CoRN/model/monoids/Qmonoid/Q_is_CMonoid.con. + +inline cic:/CoRN/model/monoids/Qmonoid/Q_as_CMonoid.con. + +(*#* ***$\langle$#⟨#[Q],[[*]]$\rangle$#⟩# +Also with multiplication Q forms a CMonoid. Here, the unit is [QONE]. +*) + +inline cic:/CoRN/model/monoids/Qmonoid/ONEQ_as_rht_unit.con. + +inline cic:/CoRN/model/monoids/Qmonoid/ONEQ_as_lft_unit.con. + +inline cic:/CoRN/model/monoids/Qmonoid/Q_mul_is_CMonoid.con. + +inline cic:/CoRN/model/monoids/Qmonoid/Q_mul_as_CMonoid.con. + diff --git a/matita/contribs/CoRN-Decl/model/monoids/Qposmonoid.ma b/matita/contribs/CoRN-Decl/model/monoids/Qposmonoid.ma new file mode 100644 index 000000000..30150d664 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/monoids/Qposmonoid.ma @@ -0,0 +1,40 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/monoids/Qposmonoid". + +(* $Id: Qposmonoid.v,v 1.7 2004/04/08 08:20:33 lcf Exp $ *) + +(* INCLUDE +Qpossemigroup +*) + +(* INCLUDE +CMonoids +*) + +(*#* **Example of a monoid: $\langle$#⟨#[Qpos],[[*]]$\rangle$#⟩# +One is the unit for multiplication on positive integers. Therefore the positive rational numbers together with the multiplication are a CMonoid. +*) + +inline cic:/CoRN/model/monoids/Qposmonoid/QONEpos_is_rht_unit.con. + +inline cic:/CoRN/model/monoids/Qposmonoid/QONEpos_is_lft_unit.con. + +inline cic:/CoRN/model/monoids/Qposmonoid/Qpos_mult_is_CMonoid.con. + +inline cic:/CoRN/model/monoids/Qposmonoid/Qpos_mult_as_CMonoid.con. + diff --git a/matita/contribs/CoRN-Decl/model/monoids/Zmonoid.ma b/matita/contribs/CoRN-Decl/model/monoids/Zmonoid.ma new file mode 100644 index 000000000..f0b1558e1 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/monoids/Zmonoid.ma @@ -0,0 +1,59 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/monoids/Zmonoid". + +(* $Id: Zmonoid.v,v 1.6 2004/04/08 08:20:33 lcf Exp $ *) + +(* INCLUDE +Zsemigroup +*) + +(* INCLUDE +CMonoids +*) + +(*#* **Examples of monoids: $\langle$#⟨#[Z],[[+]]$\rangle$#⟩# and $\langle$#⟨#[Z],[[*]]$\rangle$#⟩# +***$\langle$#⟨#[Z],[[+]]$\rangle$#⟩# +We use the addition [ZERO] (defined in the standard library) as the +unit of monoid: +*) + +inline cic:/CoRN/model/monoids/Zmonoid/ZERO_as_rht_unit.con. + +inline cic:/CoRN/model/monoids/Zmonoid/ZERO_as_lft_unit.con. + +inline cic:/CoRN/model/monoids/Zmonoid/Z_is_CMonoid.con. + +inline cic:/CoRN/model/monoids/Zmonoid/Z_as_CMonoid.con. + +(*#* The term [Z_as_CMonoid] is of type [CMonoid]. Hence we have proven that [Z] is a constructive monoid. + +***$\langle$#⟨#[Z],[[*]]$\rangle$#⟩# +As the multiplicative unit we should use [`1`], which is [(POS xH)] in +the representation we have for integers. +*) + +inline cic:/CoRN/model/monoids/Zmonoid/ONE_as_rht_unit.con. + +inline cic:/CoRN/model/monoids/Zmonoid/ONE_as_lft_unit.con. + +inline cic:/CoRN/model/monoids/Zmonoid/Z_mul_is_CMonoid.con. + +inline cic:/CoRN/model/monoids/Zmonoid/Z_mul_as_CMonoid.con. + +(*#* The term [Z_mul_as_CMonoid] is another term of type [CMonoid]. *) + diff --git a/matita/contribs/CoRN-Decl/model/non_examples/N_no_group.ma b/matita/contribs/CoRN-Decl/model/non_examples/N_no_group.ma new file mode 100644 index 000000000..7e36247dc --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/non_examples/N_no_group.ma @@ -0,0 +1,39 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/non_examples/N_no_group". + +(* $Id: N_no_group.v,v 1.5 2004/04/08 08:20:33 lcf Exp $ *) + +(* INCLUDE +Nmonoid +*) + +(* INCLUDE +CGroups +*) + +(*#* **Non-example of a group: $\langle$#⟨#[nat],[[+]]$\rangle$#⟩# +There is no inverse function for the natural numbers with addition. +*) + +inline cic:/CoRN/model/non_examples/N_no_group/no_inverse_nat_plus.con. + +(*#* Hence they do not form a CGroup. +*) + +inline cic:/CoRN/model/non_examples/N_no_group/no_group_nat_plus.con. + diff --git a/matita/contribs/CoRN-Decl/model/non_examples/Npos_no_group.ma b/matita/contribs/CoRN-Decl/model/non_examples/Npos_no_group.ma new file mode 100644 index 000000000..adb7edac1 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/non_examples/Npos_no_group.ma @@ -0,0 +1,39 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/non_examples/Npos_no_group". + +(* $Id: Npos_no_group.v,v 1.6 2004/04/08 08:20:33 lcf Exp $ *) + +(* INCLUDE +CGroups +*) + +(* INCLUDE +Nposmonoid +*) + +(*#* **Non-example of a group: $\langle$#⟨#[Npos],[[+]]$\rangle$#⟩# +There is no inverse for multiplication on the positive natural numbers. +*) + +inline cic:/CoRN/model/non_examples/Npos_no_group/no_inverse_Nposmult.con. + +(*#* Hence the natural numbers with multiplication do not form a group. +*) + +inline cic:/CoRN/model/non_examples/Npos_no_group/no_group_Nposmult.con. + diff --git a/matita/contribs/CoRN-Decl/model/non_examples/Npos_no_monoid.ma b/matita/contribs/CoRN-Decl/model/non_examples/Npos_no_monoid.ma new file mode 100644 index 000000000..a17dec061 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/non_examples/Npos_no_monoid.ma @@ -0,0 +1,40 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/non_examples/Npos_no_monoid". + +(* $Id: Npos_no_monoid.v,v 1.5 2004/04/08 08:20:34 lcf Exp $ *) + +(* INCLUDE +Npossemigroup +*) + +(* INCLUDE +CMonoids +*) + +(*#* **Non-example of a monoid: $\langle$#⟨#[Npos],[[+]]$\rangle$#⟩# +There is no right unit for the addition on the positive natural numbers. +*) + +inline cic:/CoRN/model/non_examples/Npos_no_monoid/no_rht_unit_Npos.con. + +(*#* Therefore the set of positive natural numbers doesn't form a group with +addition. +*) + +inline cic:/CoRN/model/non_examples/Npos_no_monoid/no_monoid_Npos.con. + diff --git a/matita/contribs/CoRN-Decl/model/ordfields/Qordfield.ma b/matita/contribs/CoRN-Decl/model/ordfields/Qordfield.ma new file mode 100644 index 000000000..415153a2f --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/ordfields/Qordfield.ma @@ -0,0 +1,40 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/ordfields/Qordfield". + +(* $Id: Qordfield.v,v 1.9 2004/04/23 10:01:03 lcf Exp $ *) + +(* INCLUDE +Qfield +*) + +(* INCLUDE +COrdFields +*) + +(*#* **Example of an ordered field: $\langle$#⟨#[Q],[[+]],[[*]],[[<]]$\rangle$#⟩# + [Q] is an archemaedian ordered field. +*) + +inline cic:/CoRN/model/ordfields/Qordfield/Qlt_is_strict_order.con. + +inline cic:/CoRN/model/ordfields/Qordfield/Q_is_COrdField.con. + +inline cic:/CoRN/model/ordfields/Qordfield/Q_as_COrdField.con. + +inline cic:/CoRN/model/ordfields/Qordfield/Q_is_archemaedian.con. + diff --git a/matita/contribs/CoRN-Decl/model/reals/Cauchy_IR.ma b/matita/contribs/CoRN-Decl/model/reals/Cauchy_IR.ma new file mode 100644 index 000000000..0fcc213db --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/reals/Cauchy_IR.ma @@ -0,0 +1,38 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/reals/Cauchy_IR". + +(* $Id: Cauchy_IR.v,v 1.2 2004/04/06 15:46:03 lcf Exp $ *) + +(* INCLUDE +Qordfield +*) + +(* INCLUDE +Cauchy_CReals +*) + +(*#* * Cauchy Real Numbers +Earlier we defined a construction of a real number structure from an +arbitrary archimedian ordered field. Plugging in [Q] we get the model +of the real numbers as Cauchy sequences of rationals. +*) + +inline cic:/CoRN/model/reals/Cauchy_IR/Cauchy_IR.con. + +(*#* The term [Cauchy_IR] is of type [CReals]. *) + diff --git a/matita/contribs/CoRN-Decl/model/rings/Qring.ma b/matita/contribs/CoRN-Decl/model/rings/Qring.ma new file mode 100644 index 000000000..aaac446c5 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/rings/Qring.ma @@ -0,0 +1,56 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/rings/Qring". + +(* $Id: Qring.v,v 1.8 2004/04/23 10:01:03 lcf Exp $ *) + +(* INCLUDE +Qabgroup +*) + +(* INCLUDE +CRings +*) + +(* INCLUDE +Zring +*) + +(*#* **Example of a ring: $\langle$#⟨#[Q],[[+]],[[*]]$\rangle$#⟩# +Because [Q] forms an abelian group with addition, a monoid with +multiplication and it satisfies the distributive law, it is a ring. +*) + +inline cic:/CoRN/model/rings/Qring/Q_mult_plus_is_dist.con. + +inline cic:/CoRN/model/rings/Qring/Q_is_CRing.con. + +inline cic:/CoRN/model/rings/Qring/Q_as_CRing.con. + +(*#* The following lemmas are used in the proof that [Q] is Archimeadian. +*) + +inline cic:/CoRN/model/rings/Qring/injz_Nring.con. + +inline cic:/CoRN/model/rings/Qring/injZ_eq.con. + +(* INCLUDE +ZArith +*) + +inline cic:/CoRN/model/rings/Qring/nring_Q.con. + diff --git a/matita/contribs/CoRN-Decl/model/rings/Zring.ma b/matita/contribs/CoRN-Decl/model/rings/Zring.ma new file mode 100644 index 000000000..87005b766 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/rings/Zring.ma @@ -0,0 +1,41 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/rings/Zring". + +(* $Id: Zring.v,v 1.6 2004/04/08 08:20:34 lcf Exp $ *) + +(* INCLUDE +Zabgroup +*) + +(* INCLUDE +CRings +*) + +(*#* **Example of a ring: $\langle$#⟨#[Z],[[+]],[[*]]$\rangle$#⟩# + +The multiplication and the addition are distributive. +*) + +inline cic:/CoRN/model/rings/Zring/Z_mult_plus_is_dist.con. + +inline cic:/CoRN/model/rings/Zring/Z_is_CRing.con. + +inline cic:/CoRN/model/rings/Zring/Z_as_CRing.con. + +(*#* The term [Z_as_CRing] is of type [CRing]. Hence we have proven that [Z] is a constructive ring. *) + diff --git a/matita/contribs/CoRN-Decl/model/semigroups/Npossemigroup.ma b/matita/contribs/CoRN-Decl/model/semigroups/Npossemigroup.ma new file mode 100644 index 000000000..c68610e53 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/semigroups/Npossemigroup.ma @@ -0,0 +1,48 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/semigroups/Npossemigroup". + +(* $Id: Npossemigroup.v,v 1.6 2004/04/08 08:20:34 lcf Exp $ *) + +(* INCLUDE +CSemiGroups +*) + +(* INCLUDE +Nsemigroup +*) + +(* INCLUDE +Npossetoid +*) + +(*#* **Examples of semi-groups: $\langle$#⟨#[Npos],[[+]]$\rangle$#⟩# and $\langle$#⟨#[Npos],[[*]]$\rangle$#⟩# +***$\langle$#⟨#[Npos],[[+]]$\rangle$#⟩# +The positive natural numbers form together with addition a subsemigroup + of the semigroup of the natural numbers with addition. +*) + +inline cic:/CoRN/model/semigroups/Npossemigroup/Npos_as_CSemiGroup.con. + +(*#* ***$\langle$#⟨#[Npos],[[*]]$\rangle$#⟩# +Also together with multiplication, the positive numbers form a semigroup. +*) + +inline cic:/CoRN/model/semigroups/Npossemigroup/Nposmult_is_CSemiGroup.con. + +inline cic:/CoRN/model/semigroups/Npossemigroup/Nposmult_as_CSemiGroup.con. + diff --git a/matita/contribs/CoRN-Decl/model/semigroups/Nsemigroup.ma b/matita/contribs/CoRN-Decl/model/semigroups/Nsemigroup.ma new file mode 100644 index 000000000..676845781 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/semigroups/Nsemigroup.ma @@ -0,0 +1,36 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/semigroups/Nsemigroup". + +(* $Id: Nsemigroup.v,v 1.6 2004/04/08 08:20:34 lcf Exp $ *) + +(* INCLUDE +Nsetoid +*) + +(* INCLUDE +CSemiGroups +*) + +(*#* **Example of a semi-group: $\langle$#⟨#[nat],[[+]]$\rangle$#⟩# +*) + +(*#* Because addition is associative, the natural numbers form a CSemiGroup. +*) + +inline cic:/CoRN/model/semigroups/Nsemigroup/nat_as_CSemiGroup.con. + diff --git a/matita/contribs/CoRN-Decl/model/semigroups/QSpossemigroup.ma b/matita/contribs/CoRN-Decl/model/semigroups/QSpossemigroup.ma new file mode 100644 index 000000000..a101b2388 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/semigroups/QSpossemigroup.ma @@ -0,0 +1,35 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/semigroups/QSpossemigroup". + +(* $Id: QSpossemigroup.v,v 1.5 2004/04/08 08:20:35 lcf Exp $ *) + +(* INCLUDE +Qpossetoid +*) + +(* INCLUDE +CSemiGroups +*) + +(*#* **Example of a semi-group: $\langle$#⟨#[Qpos],$(x,y) \mapsto xy/2$#(x,y) ↦ xy/2#$\rangle$#⟩# +The positive rationals form with the operation +$(x,y) \mapsto xy/2$#(x,y) ↦ xy/2# a CSemiGroup. +*) + +inline cic:/CoRN/model/semigroups/QSpossemigroup/Qpos_multdiv2_as_CSemiGroup.con. + diff --git a/matita/contribs/CoRN-Decl/model/semigroups/Qpossemigroup.ma b/matita/contribs/CoRN-Decl/model/semigroups/Qpossemigroup.ma new file mode 100644 index 000000000..42e9e6aa3 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/semigroups/Qpossemigroup.ma @@ -0,0 +1,34 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/semigroups/Qpossemigroup". + +(* $Id: Qpossemigroup.v,v 1.6 2004/04/08 08:20:35 lcf Exp $ *) + +(* INCLUDE +Qpossetoid +*) + +(* INCLUDE +CSemiGroups +*) + +(*#* **Example of a semi-group: $\langle$#⟨#[Qpos],[[*]]$\rangle$#⟩# +The positive rationals form with the multiplication a CSemiGroup. +*) + +inline cic:/CoRN/model/semigroups/Qpossemigroup/Qpos_mult_as_CSemiGroup.con. + diff --git a/matita/contribs/CoRN-Decl/model/semigroups/Qsemigroup.ma b/matita/contribs/CoRN-Decl/model/semigroups/Qsemigroup.ma new file mode 100644 index 000000000..4437e0240 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/semigroups/Qsemigroup.ma @@ -0,0 +1,39 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/semigroups/Qsemigroup". + +(* $Id: Qsemigroup.v,v 1.6 2004/04/08 08:20:35 lcf Exp $ *) + +(* INCLUDE +Qsetoid +*) + +(* INCLUDE +CSemiGroups +*) + +(*#* **Examples of semi-groups: $\langle$#⟨#[Q],[[+]]$\rangle$#⟩# and $\langle$#⟨#[Q],[[*]]$\rangle$#⟩# +***$\langle$#⟨#[Q],[[+]]$\rangle$#⟩# +*) + +inline cic:/CoRN/model/semigroups/Qsemigroup/Q_as_CSemiGroup.con. + +(*#* ***$\langle$#⟨#[Q],[[*]]$\rangle$#⟩# +*) + +inline cic:/CoRN/model/semigroups/Qsemigroup/Q_mul_as_CSemiGroup.con. + diff --git a/matita/contribs/CoRN-Decl/model/semigroups/Zsemigroup.ma b/matita/contribs/CoRN-Decl/model/semigroups/Zsemigroup.ma new file mode 100644 index 000000000..70bead366 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/semigroups/Zsemigroup.ma @@ -0,0 +1,41 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/semigroups/Zsemigroup". + +(* $Id: Zsemigroup.v,v 1.6 2004/04/08 08:20:35 lcf Exp $ *) + +(* INCLUDE +Zsetoid +*) + +(* INCLUDE +CSemiGroups +*) + +(*#* **Examples of semi-groups: $\langle$#⟨#[Z],[[+]]$\rangle$#⟩# and $\langle$#⟨#[Z],[[*]]$\rangle$#⟩# +***$\langle$#⟨#[Z],[[+]]$\rangle$#⟩# +*) + +inline cic:/CoRN/model/semigroups/Zsemigroup/Z_as_CSemiGroup.con. + +(*#* The term [Z_as_CSemiGroup] is of type [CSemiGroup]. Hence we have proven that [Z] is a constructive semi-group. *) + +(*#* ***$\langle$#⟨#[Z],[[*]]$\rangle$#⟩# +*) + +inline cic:/CoRN/model/semigroups/Zsemigroup/Z_mul_as_CSemiGroup.con. + diff --git a/matita/contribs/CoRN-Decl/model/setoids/Npossetoid.ma b/matita/contribs/CoRN-Decl/model/setoids/Npossetoid.ma new file mode 100644 index 000000000..0d883959c --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/setoids/Npossetoid.ma @@ -0,0 +1,74 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/setoids/Npossetoid". + +(* $Id: Npossetoid.v,v 1.3 2004/04/06 15:46:04 lcf Exp $ *) + +(* INCLUDE +Nsetoid +*) + +(* INCLUDE +Npossec +*) + +(* INCLUDE +CSetoidFun +*) + +(*#* **Example of a setoid: [Npos] + +*** Setoid +The positive natural numbers [Npos] will be defined as a subsetoid of the +natural numbers. +*) + +inline cic:/CoRN/model/setoids/Npossetoid/Npos.con. + +inline cic:/CoRN/model/setoids/Npossetoid/NposP.con. + +(*#* One and two are elements of it. +*) + +inline cic:/CoRN/model/setoids/Npossetoid/ONEpos.con. + +inline cic:/CoRN/model/setoids/Npossetoid/TWOpos.con. + +(*#* ***Addition and multiplication +Because addition and multiplication preserve positivity, we can define +them on this subsetoid. +*) + +inline cic:/CoRN/model/setoids/Npossetoid/plus_resp_Npos.con. + +inline cic:/CoRN/model/setoids/Npossetoid/Npos_plus.con. + +inline cic:/CoRN/model/setoids/Npossetoid/mult_resp_Npos.con. + +inline cic:/CoRN/model/setoids/Npossetoid/Npos_mult.con. + +(*#* The addition has no right unit on this set. +*) + +inline cic:/CoRN/model/setoids/Npossetoid/no_rht_unit_Npos1.con. + +(*#* And the multiplication doesn't have an inverse, because there can't be an +inverse for 2. +*) + +inline cic:/CoRN/model/setoids/Npossetoid/no_inverse_Nposmult1.con. + diff --git a/matita/contribs/CoRN-Decl/model/setoids/Nsetoid.ma b/matita/contribs/CoRN-Decl/model/setoids/Nsetoid.ma new file mode 100644 index 000000000..b7045b8e2 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/setoids/Nsetoid.ma @@ -0,0 +1,68 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/setoids/Nsetoid". + +(* $Id: Nsetoid.v,v 1.4 2004/04/06 15:46:04 lcf Exp $ *) + +(* INCLUDE +Nsec +*) + +(* INCLUDE +CSetoidFun +*) + +(*#* **Example of a setoid: [nat] + +We will show that the natural numbers form a CSetoid. +*) + +inline cic:/CoRN/model/setoids/Nsetoid/ap_nat_irreflexive.con. + +inline cic:/CoRN/model/setoids/Nsetoid/ap_nat_symmetric.con. + +inline cic:/CoRN/model/setoids/Nsetoid/ap_nat_cotransitive.con. + +inline cic:/CoRN/model/setoids/Nsetoid/ap_nat_tight.con. + +inline cic:/CoRN/model/setoids/Nsetoid/ap_nat_is_apartness.con. + +inline cic:/CoRN/model/setoids/Nsetoid/nat_as_CSetoid.con. + +(*#* ***Addition +*) + +inline cic:/CoRN/model/setoids/Nsetoid/plus_wd.con. + +inline cic:/CoRN/model/setoids/Nsetoid/plus_strext.con. + +inline cic:/CoRN/model/setoids/Nsetoid/plus_is_bin_fun.con. + +(*#* It is associative and commutative. +*) + +inline cic:/CoRN/model/setoids/Nsetoid/plus_is_assoc.con. + +inline cic:/CoRN/model/setoids/Nsetoid/plus_is_commut.con. + +(*#* ***Multiplication +*) + +inline cic:/CoRN/model/setoids/Nsetoid/mult_strext.con. + +inline cic:/CoRN/model/setoids/Nsetoid/mult_as_bin_fun.con. + diff --git a/matita/contribs/CoRN-Decl/model/setoids/Qpossetoid.ma b/matita/contribs/CoRN-Decl/model/setoids/Qpossetoid.ma new file mode 100644 index 000000000..3dc6087f4 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/setoids/Qpossetoid.ma @@ -0,0 +1,103 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/setoids/Qpossetoid". + +(* $Id: Qpossetoid.v,v 1.4 2004/04/06 15:46:05 lcf Exp $ *) + +(* INCLUDE +Qsetoid +*) + +(* INCLUDE +CSetoidFun +*) + +(* INCLUDE +Qpossec +*) + +(*#* **Example of a setoid: [Qpos] +***Setoid +We will examine the subsetoid of positive rationals of the setoid of +rational numbers. +*) + +inline cic:/CoRN/model/setoids/Qpossetoid/Qpos.con. + +inline cic:/CoRN/model/setoids/Qpossetoid/QposP.con. + +(*#* One, two and four are elements of it. +*) + +inline cic:/CoRN/model/setoids/Qpossetoid/QONEpos.con. + +inline cic:/CoRN/model/setoids/Qpossetoid/QTWOpos.con. + +inline cic:/CoRN/model/setoids/Qpossetoid/QFOURpos.con. + +(*#* ***Multiplication +As we have seen, multiplication preserves positivity, so we can restrict it + to the positive rationals. We see that this restricted multiplication has some + nice properties. +*) + +inline cic:/CoRN/model/setoids/Qpossetoid/Qmult_pres_pos1.con. + +inline cic:/CoRN/model/setoids/Qpossetoid/Qpos_mult.con. + +inline cic:/CoRN/model/setoids/Qpossetoid/associative_Qpos_mult.con. + +(*#* ***Inverse +We restrict the domain of the inverse to the set of positive rationals. +*) + +inline cic:/CoRN/model/setoids/Qpossetoid/Qpos_inv.con. + +(*#* The restricted inverse preserves positivity. +*) + +inline cic:/CoRN/model/setoids/Qpossetoid/inv_pres_pos1.con. + +(*#* Now, we can also restrict the co-domain. +*) + +inline cic:/CoRN/model/setoids/Qpossetoid/Qpos_Qpos_inv.con. + +(*#* This restricted inverse map appears a setoid function. +*) + +inline cic:/CoRN/model/setoids/Qpossetoid/Qpos_Qpos_inv_strong_ext.con. + +inline cic:/CoRN/model/setoids/Qpossetoid/Qpos_Qpos_inv_op.con. + +(*#* ***Special multiplication and inverse +We define [multdiv2]: $(x,y) \mapsto xy/2$ #(x,y) ↦ xy/2#. +*) + +inline cic:/CoRN/model/setoids/Qpossetoid/Qpos_div2.con. + +inline cic:/CoRN/model/setoids/Qpossetoid/multdiv2.con. + +inline cic:/CoRN/model/setoids/Qpossetoid/associative_multdiv2.con. + +(*#* And its inverse [multdiv4]: $x \mapsto 4/x$ #x ↦ 4/x#. +*) + +inline cic:/CoRN/model/setoids/Qpossetoid/mult4.con. + +inline cic:/CoRN/model/setoids/Qpossetoid/divmult4.con. + diff --git a/matita/contribs/CoRN-Decl/model/setoids/Qsetoid.ma b/matita/contribs/CoRN-Decl/model/setoids/Qsetoid.ma new file mode 100644 index 000000000..8938e482f --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/setoids/Qsetoid.ma @@ -0,0 +1,92 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/setoids/Qsetoid". + +(* $Id: Qsetoid.v,v 1.6 2004/04/06 15:46:05 lcf Exp $ *) + +(* INCLUDE +Qsec +*) + +(* INCLUDE +CSetoidFun +*) + +(*#* **Example of a setoid: [Q] +***Setoid +*) + +inline cic:/CoRN/model/setoids/Qsetoid/ap_Q_irreflexive1.con. + +inline cic:/CoRN/model/setoids/Qsetoid/ap_Q_symmetric1.con. + +inline cic:/CoRN/model/setoids/Qsetoid/ap_Q_cotransitive1.con. + +inline cic:/CoRN/model/setoids/Qsetoid/ap_Q_tight1.con. + +inline cic:/CoRN/model/setoids/Qsetoid/ap_Q_is_apartness.con. + +inline cic:/CoRN/model/setoids/Qsetoid/Q_as_CSetoid.con. + +(*#* ***Addition +*) + +inline cic:/CoRN/model/setoids/Qsetoid/Qplus_wd.con. + +inline cic:/CoRN/model/setoids/Qsetoid/Qplus_strext1.con. + +inline cic:/CoRN/model/setoids/Qsetoid/Qplus_is_bin_fun.con. + +(*#* It is associative and commutative. +*) + +inline cic:/CoRN/model/setoids/Qsetoid/Qplus_is_assoc.con. + +inline cic:/CoRN/model/setoids/Qsetoid/Qplus_is_commut1.con. + +(*#* ***Opposite +*) + +inline cic:/CoRN/model/setoids/Qsetoid/Qopp_wd.con. + +inline cic:/CoRN/model/setoids/Qsetoid/Qopp_strext.con. + +inline cic:/CoRN/model/setoids/Qsetoid/Qopp_is_fun.con. + +(*#* ***Multiplication +*) + +inline cic:/CoRN/model/setoids/Qsetoid/Qmult_wd.con. + +inline cic:/CoRN/model/setoids/Qsetoid/Qmult_strext1.con. + +inline cic:/CoRN/model/setoids/Qsetoid/Qmult_is_bin_fun.con. + +(*#* It is associative and commutative. +*) + +inline cic:/CoRN/model/setoids/Qsetoid/Qmult_is_assoc.con. + +inline cic:/CoRN/model/setoids/Qsetoid/Qmult_is_commut.con. + +(*#* ***Less-than +*) + +inline cic:/CoRN/model/setoids/Qsetoid/Qlt_strext.con. + +inline cic:/CoRN/model/setoids/Qsetoid/Qlt_is_CSetoid_relation.con. + diff --git a/matita/contribs/CoRN-Decl/model/setoids/Zsetoid.ma b/matita/contribs/CoRN-Decl/model/setoids/Zsetoid.ma new file mode 100644 index 000000000..36b8ce6c9 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/setoids/Zsetoid.ma @@ -0,0 +1,86 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/setoids/Zsetoid". + +(* $Id: Zsetoid.v,v 1.5 2004/04/07 15:08:08 lcf Exp $ *) + +(* INCLUDE +Zsec +*) + +(* INCLUDE +CSetoidFun +*) + +(*#* **Example of a setoid: [Z] +*** [Z] +*) + +inline cic:/CoRN/model/setoids/Zsetoid/ap_Z_irreflexive.con. + +inline cic:/CoRN/model/setoids/Zsetoid/ap_Z_symmetric.con. + +inline cic:/CoRN/model/setoids/Zsetoid/ap_Z_cotransitive.con. + +inline cic:/CoRN/model/setoids/Zsetoid/ap_Z_tight.con. + +inline cic:/CoRN/model/setoids/Zsetoid/ap_Z_is_apartness.con. + +inline cic:/CoRN/model/setoids/Zsetoid/Z_as_CSetoid.con. + +(*#* The term [Z_as_CSetoid] is of type [CSetoid]. Hence we have proven that [Z] is a constructive setoid. +***Addition +We will prove now that the addition on the integers is a setoid function. +*) + +inline cic:/CoRN/model/setoids/Zsetoid/Zplus_wd.con. + +inline cic:/CoRN/model/setoids/Zsetoid/Zplus_strext.con. + +inline cic:/CoRN/model/setoids/Zsetoid/Zplus_is_bin_fun.con. + +(*#* What's more: the addition is also associative and commutative. +*) + +inline cic:/CoRN/model/setoids/Zsetoid/Zplus_is_assoc.con. + +inline cic:/CoRN/model/setoids/Zsetoid/Zplus_is_commut.con. + +(*#* ***Opposite +Taking the opposite of an integer is a setoid function. +*) + +inline cic:/CoRN/model/setoids/Zsetoid/Zopp_wd.con. + +inline cic:/CoRN/model/setoids/Zsetoid/Zopp_strext.con. + +inline cic:/CoRN/model/setoids/Zsetoid/Zopp_is_fun.con. + +(*#* ***Multiplication +Finally the multiplication is a setoid function and is associative and commutative. +*) + +inline cic:/CoRN/model/setoids/Zsetoid/Zmult_wd.con. + +inline cic:/CoRN/model/setoids/Zsetoid/Zmult_strext.con. + +inline cic:/CoRN/model/setoids/Zsetoid/Zmult_is_bin_fun.con. + +inline cic:/CoRN/model/setoids/Zsetoid/Zmult_is_assoc.con. + +inline cic:/CoRN/model/setoids/Zsetoid/Zmult_is_commut.con. + diff --git a/matita/contribs/CoRN-Decl/model/structures/Npossec.ma b/matita/contribs/CoRN-Decl/model/structures/Npossec.ma new file mode 100644 index 000000000..3f36a84bb --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/structures/Npossec.ma @@ -0,0 +1,41 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/structures/Npossec". + +(* $Id: Npossec.v,v 1.3 2004/04/06 15:46:05 lcf Exp $ *) + +(*#* printing Npos $\mathbb{N}^{+}$ #N+# *) + +(* INCLUDE +Nsec +*) + +(* INCLUDE +Arith +*) + +(*#* **[Npos] +The positive natural numbers have some nice properties. Addition as well +as multiplication preserve the feature of being positive. +*) + +inline cic:/CoRN/model/structures/Npossec/plus_resp_Npos0.con. + +inline cic:/CoRN/model/structures/Npossec/Npos_is_suc.con. + +inline cic:/CoRN/model/structures/Npossec/mult_resp_Npos0.con. + diff --git a/matita/contribs/CoRN-Decl/model/structures/Nsec.ma b/matita/contribs/CoRN-Decl/model/structures/Nsec.ma new file mode 100644 index 000000000..00d090efa --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/structures/Nsec.ma @@ -0,0 +1,72 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/structures/Nsec". + +(* $Id: Nsec.v,v 1.6 2004/04/06 15:46:05 lcf Exp $ *) + +(*#* printing {#N} $\ensuremath{\mathrel\#_{\mathbb N}}$ *) + +(* INCLUDE +Peano_dec +*) + +(* INCLUDE +Relations +*) + +(* INCLUDE +CLogic +*) + +(*#* *[nat] +**About [nat] + +We prove some basic lemmas of the natural numbers. + +A variant of [0_S] from the standard library +*) + +inline cic:/CoRN/model/structures/Nsec/S_O.con. + +(*#* ***Apartness +*) + +inline cic:/CoRN/model/structures/Nsec/ap_nat.con. + +inline cic:/CoRN/model/structures/Nsec/ap_nat_irreflexive0.con. + +inline cic:/CoRN/model/structures/Nsec/ap_nat_symmetric0.con. + +inline cic:/CoRN/model/structures/Nsec/ap_nat_cotransitive0.con. + +inline cic:/CoRN/model/structures/Nsec/ap_nat_tight0.con. + +(*#* ***Addition +*) + +inline cic:/CoRN/model/structures/Nsec/plus_strext0.con. + +(*#* There is no inverse for addition, because every candidate will fail for 2 +*) + +inline cic:/CoRN/model/structures/Nsec/no_inverse0.con. + +(*#* ***Multiplication +*) + +inline cic:/CoRN/model/structures/Nsec/mult_strext0.con. + diff --git a/matita/contribs/CoRN-Decl/model/structures/Qpossec.ma b/matita/contribs/CoRN-Decl/model/structures/Qpossec.ma new file mode 100644 index 000000000..5ea8081aa --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/structures/Qpossec.ma @@ -0,0 +1,72 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/structures/Qpossec". + +(* $Id: Qpossec.v,v 1.5 2004/04/06 15:46:05 lcf Exp $ *) + +(*#* printing Qpos $\mathbb{Q}^{+}$ #Q+# *) + +(* INCLUDE +Qsec +*) + +(* INCLUDE +CLogic +*) + +(*#* **About [Qpos] +We will prove some lemmas concerning rationals bigger than 0. + +***Constants +One, two and four are all bigger than zero. +*) + +inline cic:/CoRN/model/structures/Qpossec/pos_QONE.con. + +inline cic:/CoRN/model/structures/Qpossec/pos_QTWO.con. + +inline cic:/CoRN/model/structures/Qpossec/pos_QFOUR.con. + +(*#* A positive rational is not zero. +*) + +inline cic:/CoRN/model/structures/Qpossec/pos_imp_nonzero.con. + +(*#* ***Multiplication +The product of two positive rationals is again positive. +*) + +inline cic:/CoRN/model/structures/Qpossec/Qmult_pres_pos0.con. + +(*#* ***Inverse +The inverse of a positive rational is again positive. +*) + +inline cic:/CoRN/model/structures/Qpossec/inv_pres_pos0.con. + +(*#* ***Special multiplication +Now we will investigate the function $(x,y) \mapsto xy/2$#(x,y) +↦ xy/2#. We will see that its unit is 2. Its inverse map is $x +\mapsto 4/x$ #x ↦ 4/x#. +*) + +inline cic:/CoRN/model/structures/Qpossec/QTWOpos_is_rht_unit0.con. + +inline cic:/CoRN/model/structures/Qpossec/QTWOpos_is_left_unit0.con. + +inline cic:/CoRN/model/structures/Qpossec/multdiv2_is_inv.con. + diff --git a/matita/contribs/CoRN-Decl/model/structures/Qsec.ma b/matita/contribs/CoRN-Decl/model/structures/Qsec.ma new file mode 100644 index 000000000..7692c62e5 --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/structures/Qsec.ma @@ -0,0 +1,250 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/structures/Qsec". + +(* $Id: Qsec.v,v 1.7 2004/04/08 08:20:35 lcf Exp $ *) + +(*#* printing Q %\ensuremath{\mathbb{Q}}% *) + +(*#* printing QZERO %\ensuremath{0_\mathbb{Q}}% #0Q# *) + +(*#* printing QONE %\ensuremath{1_\mathbb{Q}}% #1Q# *) + +(*#* printing QTWO %\ensuremath{2_\mathbb{Q}}% #2Q# *) + +(*#* printing QFOUR %\ensuremath{4_\mathbb{Q}}% #4Q# *) + +(* INCLUDE +CLogic +*) + +(* INCLUDE +Arith +*) + +(* INCLUDE +Peano_dec +*) + +(* INCLUDE +Zsec +*) + +(*#* *[Q] +**About [Q] +We define the structure of rational numbers as follows. First of all, +it consists of the set of rational numbers, defined as the set of +pairs $\langle a,n\rangle$#⟨a,n⟩# with [a:Z] and +[n:positive]. Intuitively, $\langle a,n\rangle$#⟨a,n⟩# +represents the rational number [a[/]n]. Then there is the equality on +[Q]: $\langle a,m\rangle=\langle +b,n\rangle$#⟨a,m⟩=⟨b,n⟩# iff [an [=] bm]. We +also define apartness, order, addition, multiplication, opposite, +inverse an de constants 0 and 1. *) + +(* UNEXPORTED +Section Q. +*) + +inline cic:/CoRN/model/structures/Qsec/Q.ind. + +inline cic:/CoRN/model/structures/Qsec/Qeq.con. + +inline cic:/CoRN/model/structures/Qsec/Qap.con. + +inline cic:/CoRN/model/structures/Qsec/Qlt.con. + +inline cic:/CoRN/model/structures/Qsec/Qplus.con. + +inline cic:/CoRN/model/structures/Qsec/Qmult.con. + +inline cic:/CoRN/model/structures/Qsec/Qopp.con. + +inline cic:/CoRN/model/structures/Qsec/QZERO.con. + +inline cic:/CoRN/model/structures/Qsec/QONE.con. + +inline cic:/CoRN/model/structures/Qsec/Qinv.con. + +(* UNEXPORTED +End Q. +*) + +(*#* ***Constants +*) + +inline cic:/CoRN/model/structures/Qsec/QTWO.con. + +inline cic:/CoRN/model/structures/Qsec/QFOUR.con. + +(*#* ***Equality +Here we prove that [QONE] is ##%\emph{%not equal%}%## to [QZERO]: +*) + +inline cic:/CoRN/model/structures/Qsec/ONEQ_neq_ZEROQ.con. + +inline cic:/CoRN/model/structures/Qsec/refl_Qeq.con. + +inline cic:/CoRN/model/structures/Qsec/sym_Qeq.con. + +inline cic:/CoRN/model/structures/Qsec/trans_Qeq.con. + +(*#* + The equality is decidable: +*) + +inline cic:/CoRN/model/structures/Qsec/dec_Qeq.con. + +(*#* ***Apartness +*) + +inline cic:/CoRN/model/structures/Qsec/Q_non_zero.con. + +inline cic:/CoRN/model/structures/Qsec/ap_Q_irreflexive0.con. + +inline cic:/CoRN/model/structures/Qsec/ap_Q_symmetric0.con. + +inline cic:/CoRN/model/structures/Qsec/ap_Q_cotransitive0.con. + +inline cic:/CoRN/model/structures/Qsec/ap_Q_tight0.con. + +(*#* ***Addition +*) + +inline cic:/CoRN/model/structures/Qsec/Qplus_simpl.con. + +(*#* + Addition is associative: +*) + +inline cic:/CoRN/model/structures/Qsec/Qplus_assoc.con. + +(*#* + [QZERO] as the neutral element for addition: +*) + +inline cic:/CoRN/model/structures/Qsec/QZERO_right.con. + +(*#* + Commutativity of addition: +*) + +inline cic:/CoRN/model/structures/Qsec/Qplus_sym.con. + +inline cic:/CoRN/model/structures/Qsec/Qplus_strext0.con. + +inline cic:/CoRN/model/structures/Qsec/ZEROQ_as_rht_unit0.con. + +inline cic:/CoRN/model/structures/Qsec/ZEROQ_as_lft_unit0.con. + +inline cic:/CoRN/model/structures/Qsec/Qplus_is_commut0.con. + +(*#* ***Opposite + [{-Q}] is a well defined unary operation: +*) + +inline cic:/CoRN/model/structures/Qsec/Qopp_simpl.con. + +(*#* + The group equation for [{-Q}] +*) + +inline cic:/CoRN/model/structures/Qsec/Qplus_inverse_r.con. + +(*#* ***Multiplication +Next we shall prove the properties of multiplication. First we prove +that [{*Q}] is well-defined +*) + +inline cic:/CoRN/model/structures/Qsec/Qmult_simpl.con. + +(*#* + and it is associative: +*) + +inline cic:/CoRN/model/structures/Qsec/Qmult_assoc.con. + +(*#* + [QONE] is the neutral element for multiplication: +*) + +inline cic:/CoRN/model/structures/Qsec/Qmult_n_1.con. + +(*#* + The commutativity for [{*Q}]: +*) + +inline cic:/CoRN/model/structures/Qsec/Qmult_sym.con. + +inline cic:/CoRN/model/structures/Qsec/Qmult_plus_distr_r.con. + +(*#* + And a property of multiplication which says if [x [~=] Zero] and [xy [=] Zero] then [y [=] Zero]: +*) + +inline cic:/CoRN/model/structures/Qsec/Qmult_eq.con. + +inline cic:/CoRN/model/structures/Qsec/Qmult_strext0.con. + +inline cic:/CoRN/model/structures/Qsec/nonZero.con. + +(*#* ***Inverse +*) + +inline cic:/CoRN/model/structures/Qsec/Qinv_strext.con. + +inline cic:/CoRN/model/structures/Qsec/Qinv_is_inv.con. + +(*#* ***Less-than +*) + +inline cic:/CoRN/model/structures/Qsec/Qlt_wd_right.con. + +inline cic:/CoRN/model/structures/Qsec/Qlt_wd_left.con. + +inline cic:/CoRN/model/structures/Qsec/Qlt_eq_gt_dec.con. + +inline cic:/CoRN/model/structures/Qsec/Qlt_is_transitive_unfolded.con. + +inline cic:/CoRN/model/structures/Qsec/Qlt_strext_unfolded.con. + +inline cic:/CoRN/model/structures/Qsec/Qlt_is_irreflexive_unfolded.con. + +inline cic:/CoRN/model/structures/Qsec/Qlt_is_antisymmetric_unfolded.con. + +inline cic:/CoRN/model/structures/Qsec/Qplus_resp_Qlt.con. + +inline cic:/CoRN/model/structures/Qsec/Qmult_resp_pos_Qlt.con. + +inline cic:/CoRN/model/structures/Qsec/Qlt_gives_apartness.con. + +(*#* ***Miscellaneous +We consider the injection [inject_Z] from [Z] to [Q] as a coercion. +*) + +inline cic:/CoRN/model/structures/Qsec/inject_Z.con. + +inline cic:/CoRN/model/structures/Qsec/injz_plus.con. + +inline cic:/CoRN/model/structures/Qsec/injZ_One.con. + +(*#* We can always find a natural number that is bigger than a given rational +number. +*) + +inline cic:/CoRN/model/structures/Qsec/Q_is_archemaedian0.con. + diff --git a/matita/contribs/CoRN-Decl/model/structures/Zsec.ma b/matita/contribs/CoRN-Decl/model/structures/Zsec.ma new file mode 100644 index 000000000..26164cfeb --- /dev/null +++ b/matita/contribs/CoRN-Decl/model/structures/Zsec.ma @@ -0,0 +1,98 @@ +(**************************************************************************) +(* ___ *) +(* ||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/model/structures/Zsec". + +(* $Id: Zsec.v,v 1.5 2004/04/06 15:46:05 lcf Exp $ *) + +(*#* printing {#Z} %\ensuremath{\mathrel\#_{\mathbb Z}}% *) + +(* INCLUDE +ZArith +*) + +(* INCLUDE +CLogic +*) + +(*#* *[Z] +** About [Z] +We consider the implementation of integers as signed binary sequences (the +datatype [Z] as defined in [ZArith], in the standard library). + +***Apartness +We define the apartness as the negation of the Leibniz equality: +*) + +inline cic:/CoRN/model/structures/Zsec/ap_Z.con. + +(*#* Some properties of apartness: +*) + +inline cic:/CoRN/model/structures/Zsec/ap_Z_irreflexive0.con. + +inline cic:/CoRN/model/structures/Zsec/ap_Z_symmetric0.con. + +inline cic:/CoRN/model/structures/Zsec/ap_Z_cotransitive0.con. + +inline cic:/CoRN/model/structures/Zsec/ap_Z_tight0.con. + +inline cic:/CoRN/model/structures/Zsec/ONE_neq_O.con. + +(*#* ***Addition +Some properties of the addition. [Zplus] is also defined in the standard +library. +*) + +inline cic:/CoRN/model/structures/Zsec/Zplus_wd0.con. + +inline cic:/CoRN/model/structures/Zsec/Zplus_strext0.con. + +(*#* ***Multiplication +The multiplication is extensional: +*) + +inline cic:/CoRN/model/structures/Zsec/Zmult_strext0.con. + +(*#* ***Miscellaneous +*) + +inline cic:/CoRN/model/structures/Zsec/Zpos.con. + +(* begin hide *) + +(* end hide *) + +inline cic:/CoRN/model/structures/Zsec/a_very_specific_lemma1.con. + +inline cic:/CoRN/model/structures/Zsec/a_very_specific_lemma2.con. + +inline cic:/CoRN/model/structures/Zsec/a_very_specific_lemma3.con. + +inline cic:/CoRN/model/structures/Zsec/a_very_specific_lemma4.con. + +inline cic:/CoRN/model/structures/Zsec/a_very_specific_lemma5.con. + +inline cic:/CoRN/model/structures/Zsec/Zpos_pos.con. + +inline cic:/CoRN/model/structures/Zsec/Zpos_neg.con. + +inline cic:/CoRN/model/structures/Zsec/Zpos_Zsgn.con. + +inline cic:/CoRN/model/structures/Zsec/Zpos_Zsgn2.con. + +inline cic:/CoRN/model/structures/Zsec/a_very_specific_lemma5'.con. + diff --git a/matita/contribs/CoRN-Decl/reals/Bridges_LUB.ma b/matita/contribs/CoRN-Decl/reals/Bridges_LUB.ma new file mode 100644 index 000000000..1ec3771ae --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/Bridges_LUB.ma @@ -0,0 +1,218 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/Bridges_LUB". + +(* begin hide *) + +(* file : least_upper_bound_principle.v *) + +(* version : 1.50 - 03/05/2001 *) + +(* version : 1.00 - 27/02/2001 *) + +(* author : Milad Niqui *) + +(* language : coq 7.0beta26feb *) + +(* dependency : iso_CReals.v , Expon.v *) + +(* description : proof of the Bridges' least upper bound principle *) + +(* INCLUDE +iso_CReals +*) + +(* INCLUDE +Expon +*) + +(* UNEXPORTED +Section LUBP. +*) + +inline cic:/CoRN/reals/Bridges_LUB/R1.var. + +(* SUBSECTION ON GENRAL DEFINITIONS *) + +(* UNEXPORTED +Section lub_definitions. +*) + +inline cic:/CoRN/reals/Bridges_LUB/OF.var. + +inline cic:/CoRN/reals/Bridges_LUB/SS.var. + +inline cic:/CoRN/reals/Bridges_LUB/member.con. + +inline cic:/CoRN/reals/Bridges_LUB/Pmember.con. + +inline cic:/CoRN/reals/Bridges_LUB/is_upper_bound.con. + +inline cic:/CoRN/reals/Bridges_LUB/l_u_b.con. + +inline cic:/CoRN/reals/Bridges_LUB/supremum.con. + +inline cic:/CoRN/reals/Bridges_LUB/Psupremum.con. + +(* the following definitions are not used in *) + +(* this file but later we will need them *) + +inline cic:/CoRN/reals/Bridges_LUB/is_lower_bound.con. + +inline cic:/CoRN/reals/Bridges_LUB/g_l_b.con. + +inline cic:/CoRN/reals/Bridges_LUB/infimum.con. + +inline cic:/CoRN/reals/Bridges_LUB/Pinfimum.con. + +(* UNEXPORTED +End lub_definitions. +*) + +(* MAIN SECTION *) + +(* UNEXPORTED +Section upper_bound_sequence. +*) + +inline cic:/CoRN/reals/Bridges_LUB/A.var. + +inline cic:/CoRN/reals/Bridges_LUB/is_inhabitted.var. + +inline cic:/CoRN/reals/Bridges_LUB/bounded_above.var. + +inline cic:/CoRN/reals/Bridges_LUB/located.var. + +inline cic:/CoRN/reals/Bridges_LUB/s.con. + +inline cic:/CoRN/reals/Bridges_LUB/Ps.con. + +inline cic:/CoRN/reals/Bridges_LUB/b0.con. + +inline cic:/CoRN/reals/Bridges_LUB/Pb0.con. + +inline cic:/CoRN/reals/Bridges_LUB/b0_is_upper_bound.con. + +inline cic:/CoRN/reals/Bridges_LUB/s_inhabits_A.con. + +inline cic:/CoRN/reals/Bridges_LUB/dstart_l.con. + +inline cic:/CoRN/reals/Bridges_LUB/dstart_r.con. + +inline cic:/CoRN/reals/Bridges_LUB/dl_less_dr.con. + +inline cic:/CoRN/reals/Bridges_LUB/shrink23d.con. + +inline cic:/CoRN/reals/Bridges_LUB/shrink13d.con. + +inline cic:/CoRN/reals/Bridges_LUB/shrink24d.con. + +inline cic:/CoRN/reals/Bridges_LUB/Real_Interval.con. + +inline cic:/CoRN/reals/Bridges_LUB/dcotrans_analyze.con. + +inline cic:/CoRN/reals/Bridges_LUB/dcotrans_analyze_strong.con. + +inline cic:/CoRN/reals/Bridges_LUB/dif_cotrans.con. + +inline cic:/CoRN/reals/Bridges_LUB/dif_cotrans_strong.con. + +inline cic:/CoRN/reals/Bridges_LUB/dIntrvl.con. + +inline cic:/CoRN/reals/Bridges_LUB/U.con. + +inline cic:/CoRN/reals/Bridges_LUB/V.con. + +inline cic:/CoRN/reals/Bridges_LUB/W.con. + +inline cic:/CoRN/reals/Bridges_LUB/delta_dIntrvl.con. + +inline cic:/CoRN/reals/Bridges_LUB/Length_dIntrvl.con. + +inline cic:/CoRN/reals/Bridges_LUB/dIntrvl_inside_l_n.con. + +inline cic:/CoRN/reals/Bridges_LUB/dIntrvl_inside_r_n.con. + +inline cic:/CoRN/reals/Bridges_LUB/V_increase.con. + +inline cic:/CoRN/reals/Bridges_LUB/W_decrease.con. + +inline cic:/CoRN/reals/Bridges_LUB/U_m_n_V.con. + +inline cic:/CoRN/reals/Bridges_LUB/U_m_n_W.con. + +(* These lemma are *very* similar to those in *) + +(* Cauchy_rationals_approach_reals.v *) + +inline cic:/CoRN/reals/Bridges_LUB/a_familiar_simple_inequality.con. + +inline cic:/CoRN/reals/Bridges_LUB/U_conversion_rate2.con. + +inline cic:/CoRN/reals/Bridges_LUB/CS_seq_U.con. + +inline cic:/CoRN/reals/Bridges_LUB/U_as_CauchySeq.con. + +inline cic:/CoRN/reals/Bridges_LUB/B.con. + +inline cic:/CoRN/reals/Bridges_LUB/U_minus_V.con. + +inline cic:/CoRN/reals/Bridges_LUB/U_minus_W.con. + +inline cic:/CoRN/reals/Bridges_LUB/U_V_upper.con. + +inline cic:/CoRN/reals/Bridges_LUB/U_W_lower.con. + +inline cic:/CoRN/reals/Bridges_LUB/AbsSmall_U_V.con. + +inline cic:/CoRN/reals/Bridges_LUB/AbsSmall_U_W.con. + +(* Two properties of exponentiation in COrdFields *) + +inline cic:/CoRN/reals/Bridges_LUB/nexp_resp_great_One.con. + +inline cic:/CoRN/reals/Bridges_LUB/very_weak_binomial.con. + +(* A consequence of Archimedean property - *) + +(* the every basis of definition of e=lim(1+1/n)^n *) + +inline cic:/CoRN/reals/Bridges_LUB/nexp_resp_Two.con. + +inline cic:/CoRN/reals/Bridges_LUB/twisted_archimedean.con. + +inline cic:/CoRN/reals/Bridges_LUB/B_limit_V.con. + +inline cic:/CoRN/reals/Bridges_LUB/B_limit_W.con. + +inline cic:/CoRN/reals/Bridges_LUB/W_n_is_upper.con. + +inline cic:/CoRN/reals/Bridges_LUB/A_bounds_V_n.con. + +inline cic:/CoRN/reals/Bridges_LUB/cauchy_gives_lub.con. + +(* UNEXPORTED +End upper_bound_sequence. +*) + +(* UNEXPORTED +End LUBP. +*) + +(* end hide *) + diff --git a/matita/contribs/CoRN-Decl/reals/Bridges_iso.ma b/matita/contribs/CoRN-Decl/reals/Bridges_iso.ma new file mode 100644 index 000000000..9603f1af7 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/Bridges_iso.ma @@ -0,0 +1,311 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/Bridges_iso". + +(* begin hide *) + +(* file : bridges_gives_our.v *) + +(* version : 1.50 - 09/05/2001 *) + +(* version : 1.00 - 09/03/2001 *) + +(* author : Milad Niqui *) + +(* language : coq7.0bet26feb *) + +(* dependency : least_upper_bound_principle *) + +(* description : Bridges' proof of Cauchy completeness in TCS-219 *) + +(* INCLUDE +Bridges_LUB +*) + +(* This lemma comes from lemmas.v of Martijn Oostdijk *) + +inline cic:/CoRN/reals/Bridges_iso/le_witness_informative.con. + +(* UNEXPORTED +Section bridges_axioms_imply_ours. +*) + +inline cic:/CoRN/reals/Bridges_iso/OF.var. + +inline cic:/CoRN/reals/Bridges_iso/lubp.var. + +inline cic:/CoRN/reals/Bridges_iso/is_Archimedes.var. + +inline cic:/CoRN/reals/Bridges_iso/is_Archimedes'.con. + +(* UNEXPORTED +Section proofs_in_TCS. +*) + +inline cic:/CoRN/reals/Bridges_iso/leEq_geEq.con. + +inline cic:/CoRN/reals/Bridges_iso/glbp.con. + +(* UNEXPORTED +Section supremum. +*) + +inline cic:/CoRN/reals/Bridges_iso/P.var. + +inline cic:/CoRN/reals/Bridges_iso/inequality1.con. + +inline cic:/CoRN/reals/Bridges_iso/inequality2.con. + +inline cic:/CoRN/reals/Bridges_iso/inequality3.con. + +inline cic:/CoRN/reals/Bridges_iso/inequality4.con. + +inline cic:/CoRN/reals/Bridges_iso/Hum.con. + +inline cic:/CoRN/reals/Bridges_iso/bound_tk1.con. + +inline cic:/CoRN/reals/Bridges_iso/bound_tk2.con. + +inline cic:/CoRN/reals/Bridges_iso/trick.con. + +inline cic:/CoRN/reals/Bridges_iso/trick'.con. + +inline cic:/CoRN/reals/Bridges_iso/up_bound_for_n_element.con. + +inline cic:/CoRN/reals/Bridges_iso/low_bound_for_n_element.con. + +inline cic:/CoRN/reals/Bridges_iso/saghf.con. + +inline cic:/CoRN/reals/Bridges_iso/Psaghf.con. + +inline cic:/CoRN/reals/Bridges_iso/kaf.con. + +inline cic:/CoRN/reals/Bridges_iso/Pkaf.con. + +inline cic:/CoRN/reals/Bridges_iso/is_finite_P.var. + +inline cic:/CoRN/reals/Bridges_iso/card.con. + +inline cic:/CoRN/reals/Bridges_iso/Pcard1.con. + +inline cic:/CoRN/reals/Bridges_iso/seq.con. + +inline cic:/CoRN/reals/Bridges_iso/Pseq1.con. + +inline cic:/CoRN/reals/Bridges_iso/Pseq1_unfolded.con. + +inline cic:/CoRN/reals/Bridges_iso/indeks.con. + +inline cic:/CoRN/reals/Bridges_iso/Pindeks.con. + +inline cic:/CoRN/reals/Bridges_iso/is_onto_seq_P.var. + +inline cic:/CoRN/reals/Bridges_iso/P_is_inhabited.con. + +(* +Lemma bounded_quantifier:(N:nat;phi,psi:nat->Prop) + ((m:nat)(le m N)->(phi m)\/(psi m))-> + ((m:nat)(le m N)->(phi m))\/(Ex [j:nat](le j N)/\(psi j)). +Proof. + Intros. + Induction N. + Cut (phi O)\/(psi O). + Intro. + Case H0. + Intros. + Left. + Intros. + Rewrite <- (le_n_O_eq m H2). + Assumption. + Intro. + Right. + Exists O. + Split. + Constructor. + Assumption. + Apply H. + Constructor.*) + +(* n=(S n0) *) + +(* Case HrecN. + Intros. + Apply H. + Apply le_trans with m:=N. + Assumption. + Apply le_n_Sn. + Intro. + Case (H (S N)). + Apply le_n. + Intros. + Left. + Intros. + Case (le_lt_eq_dec m (S N)). + Assumption. + Intros. + Apply H0. + Apply (lt_n_Sm_le m N). + Assumption. + Intro. + Rewrite e. + Assumption. + Intro. + Right. + Exists (S N). + Split. + Apply le_n. + Assumption. + Intro. + Right. + Case H0. + Intro j. + Intros. + Exists j. + Elim H1. + Intros. + Split. + Apply le_trans with m:=N. + Assumption. + Apply le_n_Sn. + Assumption. +Qed. +*) + +inline cic:/CoRN/reals/Bridges_iso/bounded_quantifier_informative.con. + +inline cic:/CoRN/reals/Bridges_iso/bridges_lemma1a.con. + +inline cic:/CoRN/reals/Bridges_iso/P_is_strongly_extensional.var. + +inline cic:/CoRN/reals/Bridges_iso/bridges_lemma1b.con. + +(* UNEXPORTED +End supremum. +*) + +(*#**********************************) + +(*#**********************************) + +(*#**********************************) + +(*#**********************************) + +(* UNEXPORTED +Section Every_Cauchy_Sequence_is_bounded. +*) + +inline cic:/CoRN/reals/Bridges_iso/seq2set.con. + +inline cic:/CoRN/reals/Bridges_iso/g.var. + +inline cic:/CoRN/reals/Bridges_iso/g_.con. + +inline cic:/CoRN/reals/Bridges_iso/pg.con. + +inline cic:/CoRN/reals/Bridges_iso/P.con. + +inline cic:/CoRN/reals/Bridges_iso/fin_is_fin.con. + +inline cic:/CoRN/reals/Bridges_iso/card_fin.con. + +inline cic:/CoRN/reals/Bridges_iso/finite_seq.con. + +inline cic:/CoRN/reals/Bridges_iso/bridges_lemma2a.con. + +inline cic:/CoRN/reals/Bridges_iso/sup.con. + +inline cic:/CoRN/reals/Bridges_iso/Psup.con. + +inline cic:/CoRN/reals/Bridges_iso/Psup_proj1.con. + +inline cic:/CoRN/reals/Bridges_iso/Psup_unfolded1.con. + +inline cic:/CoRN/reals/Bridges_iso/Psup_unfolded2.con. + +inline cic:/CoRN/reals/Bridges_iso/bridges_lemma2b.con. + +inline cic:/CoRN/reals/Bridges_iso/inf.con. + +inline cic:/CoRN/reals/Bridges_iso/Pinf.con. + +inline cic:/CoRN/reals/Bridges_iso/Pinf_proj1.con. + +inline cic:/CoRN/reals/Bridges_iso/Pinf_unfolded1.con. + +inline cic:/CoRN/reals/Bridges_iso/Pinf_unfolded2.con. + +(* I tried very much not to mention this lemma! *) + +inline cic:/CoRN/reals/Bridges_iso/sup_leEq.con. + +inline cic:/CoRN/reals/Bridges_iso/inf_geEq.con. + +inline cic:/CoRN/reals/Bridges_iso/tail_is_Cauchy.con. + +inline cic:/CoRN/reals/Bridges_iso/tail_seq.con. + +(* UNEXPORTED +End Every_Cauchy_Sequence_is_bounded. +*) + +inline cic:/CoRN/reals/Bridges_iso/g.var. + +inline cic:/CoRN/reals/Bridges_iso/g_.con. + +inline cic:/CoRN/reals/Bridges_iso/pg.con. + +inline cic:/CoRN/reals/Bridges_iso/sup_tail.con. + +inline cic:/CoRN/reals/Bridges_iso/sup_tail_leEq.con. + +inline cic:/CoRN/reals/Bridges_iso/sup_tail_is_Cauchy.con. + +inline cic:/CoRN/reals/Bridges_iso/sup_tail_as_Cauchy.con. + +inline cic:/CoRN/reals/Bridges_iso/L.con. + +inline cic:/CoRN/reals/Bridges_iso/sup_tail_decrease.con. + +inline cic:/CoRN/reals/Bridges_iso/L_less_sup_n.con. + +inline cic:/CoRN/reals/Bridges_iso/Psup_unfolded2_informative.con. + +inline cic:/CoRN/reals/Bridges_iso/Pinf_unfolded2_informative.con. + +inline cic:/CoRN/reals/Bridges_iso/convergent_subseq.con. + +(* very elegant proof almost as short as text version! *) + +inline cic:/CoRN/reals/Bridges_iso/lubp_gives_Cauchy.con. + +(* UNEXPORTED +End proofs_in_TCS. +*) + +inline cic:/CoRN/reals/Bridges_iso/Bridges_R_is_CReals.con. + +inline cic:/CoRN/reals/Bridges_iso/Bridges_R_as_CReals.con. + +(* UNEXPORTED +End bridges_axioms_imply_ours. +*) + +(* end hide *) + +(*#* remove printing Q *) + diff --git a/matita/contribs/CoRN-Decl/reals/CMetricFields.ma b/matita/contribs/CoRN-Decl/reals/CMetricFields.ma new file mode 100644 index 000000000..755ac27b2 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/CMetricFields.ma @@ -0,0 +1,81 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/CMetricFields". + +(* $Id: CMetricFields.v,v 1.6 2004/04/23 10:01:03 lcf Exp $ *) + +(* INCLUDE +CReals1 +*) + +(* UNEXPORTED +Section CMetric_Fields. +*) + +(*#* *Metric Fields *) + +inline cic:/CoRN/reals/CMetricFields/is_CMetricField.ind. + +inline cic:/CoRN/reals/CMetricFields/CMetricField.ind. + +(* UNEXPORTED +End CMetric_Fields. +*) + +(* UNEXPORTED +Section basics. +*) + +inline cic:/CoRN/reals/CMetricFields/MAbs_one.con. + +inline cic:/CoRN/reals/CMetricFields/Hulp.con. + +inline cic:/CoRN/reals/CMetricFields/MAbs_one_recip_one.con. + +(* end hide *) + +(* UNEXPORTED +End basics. +*) + +(* UNEXPORTED +Section CMetric_Field_Cauchy. +*) + +inline cic:/CoRN/reals/CMetricFields/F.var. + +(*#* +%\begin{convention}% Let [F:CMetricField]. +%\end{convention}% +*) + +inline cic:/CoRN/reals/CMetricFields/MCauchy_prop.con. + +inline cic:/CoRN/reals/CMetricFields/MCauchySeq.ind. + +inline cic:/CoRN/reals/CMetricFields/MseqLimit.con. + +inline cic:/CoRN/reals/CMetricFields/is_MCauchyCompl.con. + +(* UNEXPORTED +End CMetric_Field_Cauchy. +*) + +(* UNEXPORTED +Implicit Arguments MseqLimit [F]. +*) + diff --git a/matita/contribs/CoRN-Decl/reals/CPoly_Contin.ma b/matita/contribs/CoRN-Decl/reals/CPoly_Contin.ma new file mode 100644 index 000000000..f087eb2e4 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/CPoly_Contin.ma @@ -0,0 +1,34 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/CPoly_Contin". + +(* $Id: CPoly_Contin.v,v 1.6 2004/04/23 10:01:03 lcf Exp $ *) + +(*#* * Continuity of polynomials *) + +(* INCLUDE +RealFuncts +*) + +inline cic:/CoRN/reals/CPoly_Contin/plus_op_contin.con. + +inline cic:/CoRN/reals/CPoly_Contin/mult_op_contin.con. + +inline cic:/CoRN/reals/CPoly_Contin/linear_op_contin.con. + +inline cic:/CoRN/reals/CPoly_Contin/cpoly_op_contin.con. + diff --git a/matita/contribs/CoRN-Decl/reals/CReals.ma b/matita/contribs/CoRN-Decl/reals/CReals.ma new file mode 100644 index 000000000..9be4d7416 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/CReals.ma @@ -0,0 +1,49 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/CReals". + +(* $Id: CReals.v,v 1.2 2004/04/05 11:35:38 lcf Exp $ *) + +(*#* printing Lim %\ensuremath{\lim}% *) + +(* INCLUDE +COrdCauchy +*) + +(*#* * Definition of the notion of reals +The reals are defined as a Cauchy-closed Archimedean constructive +ordered field in which we have a maximum function. The maximum +function is definable, using countable choice, but in a rather tricky +way. Cauchy completeness is stated by assuming a function [lim] +that returns a real number for every Cauchy sequence together with a +proof that this number is the limit. +*) + +(* Begin_SpecReals *) + +inline cic:/CoRN/reals/CReals/is_CReals.ind. + +inline cic:/CoRN/reals/CReals/CReals.ind. + +(* End_SpecReals *) + +inline cic:/CoRN/reals/CReals/Lim.con. + +(* UNEXPORTED +Implicit Arguments Lim [IR]. +*) + diff --git a/matita/contribs/CoRN-Decl/reals/CReals1.ma b/matita/contribs/CoRN-Decl/reals/CReals1.ma new file mode 100644 index 000000000..c87c3e978 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/CReals1.ma @@ -0,0 +1,172 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/CReals1". + +(* $Id: CReals1.v,v 1.4 2004/04/23 10:01:04 lcf Exp $ *) + +(* INCLUDE +Max_AbsIR +*) + +(* INCLUDE +Expon +*) + +(* INCLUDE +CPoly_ApZero +*) + +(* UNEXPORTED +Section More_Cauchy_Props. +*) + +(*#* **Miscellaneous +*** More properties of Cauchy sequences +We will now define some special Cauchy sequences and prove some +more useful properties about them. + +The sequence defined by $x_n=\frac2{n+1}$#x(n)=2/(n+1)#. +*) + +inline cic:/CoRN/reals/CReals1/twice_inv_seq_Lim.con. + +inline cic:/CoRN/reals/CReals1/twice_inv_seq.con. + +(*#* +Next, we prove that the sequence of absolute values of a Cauchy +sequence is also Cauchy. +*) + +inline cic:/CoRN/reals/CReals1/Cauchy_Lim_abs.con. + +inline cic:/CoRN/reals/CReals1/Cauchy_abs.con. + +inline cic:/CoRN/reals/CReals1/Lim_abs.con. + +(* UNEXPORTED +End More_Cauchy_Props. +*) + +(* UNEXPORTED +Section Subsequences. +*) + +(*#* *** Subsequences +We will now examine (although without formalizing it) the concept +of subsequence and some of its properties. + +%\begin{convention}% Let [seq1,seq2:nat->IR]. +%\end{convention}% + +In order for [seq1] to be a subsequence of [seq2], there must be an +increasing function [f] growing to infinity such that +[forall (n :nat), (seq1 n) [=] (seq2 (f n))]. We assume [f] to be such a +function. + +Finally, for some of our results it is important to assume that +[seq2] is monotonous. +*) + +inline cic:/CoRN/reals/CReals1/seq1.var. + +inline cic:/CoRN/reals/CReals1/seq2.var. + +inline cic:/CoRN/reals/CReals1/f.var. + +inline cic:/CoRN/reals/CReals1/monF.var. + +inline cic:/CoRN/reals/CReals1/crescF.var. + +inline cic:/CoRN/reals/CReals1/subseq.var. + +inline cic:/CoRN/reals/CReals1/mon_seq2.var. + +inline cic:/CoRN/reals/CReals1/unbnd_f.con. + +(* begin hide *) + +inline cic:/CoRN/reals/CReals1/mon_F'.con. + +(* end hide *) + +inline cic:/CoRN/reals/CReals1/conv_subseq_imp_conv_seq.con. + +inline cic:/CoRN/reals/CReals1/Cprop2_seq_imp_Cprop2_subseq.con. + +inline cic:/CoRN/reals/CReals1/conv_seq_imp_conv_subseq.con. + +inline cic:/CoRN/reals/CReals1/Cprop2_subseq_imp_Cprop2_seq.con. + +(* UNEXPORTED +End Subsequences. +*) + +(* UNEXPORTED +Section Cauchy_Subsequences. +*) + +inline cic:/CoRN/reals/CReals1/seq1.var. + +inline cic:/CoRN/reals/CReals1/seq2.var. + +inline cic:/CoRN/reals/CReals1/f.var. + +inline cic:/CoRN/reals/CReals1/monF.var. + +inline cic:/CoRN/reals/CReals1/crescF.var. + +inline cic:/CoRN/reals/CReals1/subseq.var. + +inline cic:/CoRN/reals/CReals1/mon_seq2.var. + +inline cic:/CoRN/reals/CReals1/Lim_seq_eq_Lim_subseq.con. + +inline cic:/CoRN/reals/CReals1/Lim_subseq_eq_Lim_seq.con. + +(* UNEXPORTED +End Cauchy_Subsequences. +*) + +(* UNEXPORTED +Section Properties_of_Exponentiation. +*) + +(*#* *** More properties of Exponentiation + +Finally, we prove that [x[^]n] grows to infinity if [x [>] One]. +*) + +inline cic:/CoRN/reals/CReals1/power_big'.con. + +inline cic:/CoRN/reals/CReals1/power_big.con. + +inline cic:/CoRN/reals/CReals1/qi_yields_zero.con. + +inline cic:/CoRN/reals/CReals1/qi_lim_zero.con. + +(* UNEXPORTED +End Properties_of_Exponentiation. +*) + +(*#* *** [IR] has characteristic zero *) + +inline cic:/CoRN/reals/CReals1/char0_IR.con. + +inline cic:/CoRN/reals/CReals1/poly_apzero_IR.con. + +inline cic:/CoRN/reals/CReals1/poly_IR_extensional.con. + diff --git a/matita/contribs/CoRN-Decl/reals/CSumsReals.ma b/matita/contribs/CoRN-Decl/reals/CSumsReals.ma new file mode 100644 index 000000000..2a9a0760a --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/CSumsReals.ma @@ -0,0 +1,94 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/CSumsReals". + +(* $Id: CSumsReals.v,v 1.5 2004/04/23 10:01:04 lcf Exp $ *) + +(* INCLUDE +CReals1 +*) + +(*#* * Sums over Reals + +%\begin{convention}% Let [c] be a real. +%\end{convention}% + +Here we prove that +$\Sigma_{m\leq i \leq n}~c^k = \frac{c^{n+1}-c^m}{c-1}.$ +#sum_(m≤ i ≤ n) c^k = frac (c^(n+1) -c^m) (c-1)# +*) + +(* UNEXPORTED +Section Sums_over_Reals. +*) + +inline cic:/CoRN/reals/CSumsReals/c.var. + +inline cic:/CoRN/reals/CSumsReals/Sum0_c_exp.con. + +(* UNEXPORTED +Hint Resolve Sum0_c_exp. +*) + +inline cic:/CoRN/reals/CSumsReals/Sum_c_exp.con. + +(* UNEXPORTED +Hint Resolve Sum_c_exp. +*) + +(*#* The following formulation is often more useful if [c [<] 1]. *) + +inline cic:/CoRN/reals/CSumsReals/Sum_c_exp'.con. + +(* UNEXPORTED +Hint Resolve Sum_c_exp'. +*) + +(* UNEXPORTED +End Sums_over_Reals. +*) + +(* UNEXPORTED +Hint Resolve Sum0_c_exp Sum_c_exp Sum_c_exp': algebra. +*) + +inline cic:/CoRN/reals/CSumsReals/diff_is_Sum0.con. + +inline cic:/CoRN/reals/CSumsReals/diff_is_sum.con. + +inline cic:/CoRN/reals/CSumsReals/Sum0_pres_less.con. + +inline cic:/CoRN/reals/CSumsReals/Sum_pres_less.con. + +inline cic:/CoRN/reals/CSumsReals/Sum_pres_leEq.con. + +inline cic:/CoRN/reals/CSumsReals/Sum0_comm_scal.con. + +(* UNEXPORTED +Hint Resolve Sum0_comm_scal: algebra. +*) + +inline cic:/CoRN/reals/CSumsReals/Sum_comm_scal.con. + +inline cic:/CoRN/reals/CSumsReals/Sum0_comm_scal'.con. + +inline cic:/CoRN/reals/CSumsReals/Sum_comm_scal'.con. + +inline cic:/CoRN/reals/CSumsReals/Sumx_comm_scal'.con. + +inline cic:/CoRN/reals/CSumsReals/Sum2_comm_scal'.con. + diff --git a/matita/contribs/CoRN-Decl/reals/CauchySeq.ma b/matita/contribs/CoRN-Decl/reals/CauchySeq.ma new file mode 100644 index 000000000..56b09f62f --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/CauchySeq.ma @@ -0,0 +1,297 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/CauchySeq". + +(* $Id: CauchySeq.v,v 1.8 2004/04/23 10:01:04 lcf Exp $ *) + +(*#* printing IR %\ensuremath{\mathbb R}% *) + +(*#* printing PartIR %\ensuremath{\mathbb R\!\not\rightarrow\!\mathbb R}% *) + +(*#* printing ZeroR %\ensuremath{\mathbf0}% #0# *) + +(*#* printing OneR %\ensuremath{\mathbf1}% #1# *) + +(*#* printing AbsIR %\ensuremath{|\cdot|_{\mathbb R}}% *) + +(* INCLUDE +CReals +*) + +(*#* *Real Number Structures +%\begin{convention}% Let [IR] be a structure for real numbers. +%\end{convention}% +*) + +(* +Require Export R_CReals. +Definition IR : CReals := Concrete_R. +Opaque IR. +*) + +inline cic:/CoRN/reals/CauchySeq/IR.var. + +(* INCLUDE +Transparent_algebra +*) + +(* begin hide *) + +(* end hide *) + +(* UNEXPORTED +Section CReals_axioms. +*) + +(*#* ** [CReals] axioms *) + +inline cic:/CoRN/reals/CauchySeq/CReals_is_CReals.con. + +(*#* First properties which follow trivially from the axioms. *) + +inline cic:/CoRN/reals/CauchySeq/Lim_Cauchy.con. + +inline cic:/CoRN/reals/CauchySeq/Archimedes.con. + +inline cic:/CoRN/reals/CauchySeq/Archimedes'.con. + +(*#* A stronger version, which often comes in useful. *) + +inline cic:/CoRN/reals/CauchySeq/str_Archimedes.con. + +inline cic:/CoRN/reals/CauchySeq/CauchySeqR.con. + +(* UNEXPORTED +End CReals_axioms. +*) + +(* UNEXPORTED +Section Cauchy_Defs. +*) + +(*#* ** Cauchy sequences +*** Alternative definitions +This section gives several definitions of Cauchy sequences. There +are no lemmas in this section. + +The current definition of Cauchy ([Cauchy_prop]) is: + +%\[\forall \epsilon>0. \exists N. \forall m\geq N. |seq_m - seq_N|\leq\varepsilon\]% +#for all e>0 there exists N such that for all m≥ N |seqm-seqN|≤ e# + +Variant 1 of Cauchy ([Cauchy_prop1]) is: + +%\[\forall k. \exists N. \forall m \geq N. |seq_m - seq_N|\leq1/(k+1)\]% +#for all k there exists N such that for all m ≥ N |seqm-seqN| ≤ 1/(k+1)# + +In all of the following variants the limit occurs in the definition. +Therefore it is useful to define an auxiliary predicate +[Cauchy_Lim_prop?], in terms of which [Cauchy_prop?] is defined. + +Variant 2 of Cauchy ([Cauchy_prop2]) is [exists y, (Cauchy_Lim_prop2 seq y)] +where +[[ +Cauchy_Lim_prop2 seq y := forall eps [>] Zero, exists N, forall m >= N, (AbsIR seq m - y) [<=] eps +]] + +Note that [Cauchy_Lim_prop2] equals [seqLimit]. + +Variant 3 of Cauchy ([Cauchy_prop3]) reads [exists y, (Cauchy_Lim_prop3 seq y)] +where +[[ +Cauchy_Lim_prop3 seq y := forall k, exists N, forall m >= N, (AbsIR seq m - y) [<=] One[/] (k[+]1) +]] + +The following variant is more restricted. + +Variant 4 of Cauchy ([Cauchy_prop4]): [exists y, (Cauchy_Lim_prop4 seq y)] +where +[[ +Cauchy_Lim_prop4 seq y := forall k, (AbsIR seq m - y) [<=] One[/] (k[+]1) +]] + +So +[[ +Cauchy_prop4 -> Cauchy_prop3 Iff Cauchy_prop2 Iff Cauchy_prop1 Iff Cauchy_prop +]] +Note: we don't know which formulations are useful. + +The inequalities are stated with [[<=]] rather than with [<] for the +following reason: both formulations are equivalent, as is well known; +and [[<=]] being a negative statement, this makes proofs +sometimes easier and program extraction much more efficient. +*) + +inline cic:/CoRN/reals/CauchySeq/Cauchy_prop1.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop2.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_prop2.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop3.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_prop3.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop4.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_prop4.con. + +(* UNEXPORTED +End Cauchy_Defs. +*) + +(* UNEXPORTED +Section Inequalities. +*) + +(*#* *** Inequalities of Limits + +The next lemma is equal to lemma [Lim_Cauchy]. *) + +inline cic:/CoRN/reals/CauchySeq/Cauchy_complete.con. + +inline cic:/CoRN/reals/CauchySeq/less_Lim_so_less_seq.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_less_so_seq_less.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_less_Lim_so_seq_less_seq.con. + +(*#* The next lemma follows from [less_Lim_so_less_seq] with [y := (y[+] (Lim seq)) [/]TwoNZ]. *) + +inline cic:/CoRN/reals/CauchySeq/less_Lim_so.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_less_so.con. + +inline cic:/CoRN/reals/CauchySeq/leEq_seq_so_leEq_Lim.con. + +inline cic:/CoRN/reals/CauchySeq/str_leEq_seq_so_leEq_Lim.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_leEq_Lim.con. + +inline cic:/CoRN/reals/CauchySeq/seq_leEq_so_Lim_leEq.con. + +inline cic:/CoRN/reals/CauchySeq/str_seq_leEq_so_Lim_leEq.con. + +inline cic:/CoRN/reals/CauchySeq/Limits_unique.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_wd.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_strext.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_ap_imp_seq_ap.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_ap_imp_seq_ap'.con. + +(* UNEXPORTED +End Inequalities. +*) + +(* UNEXPORTED +Section Equiv_Cauchy. +*) + +(*#* *** Equivalence of formulations of Cauchy *) + +inline cic:/CoRN/reals/CauchySeq/Cauchy_prop1_prop.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_prop2_prop.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop3_prop2.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_prop3_prop2.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_prop3_prop.con. + +inline cic:/CoRN/reals/CauchySeq/Build_CauchySeq1.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop4_prop3.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop4_prop2.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_prop4_prop3.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_prop4_prop.con. + +inline cic:/CoRN/reals/CauchySeq/Build_CauchySeq4.con. + +inline cic:/CoRN/reals/CauchySeq/Build_CauchySeq4_y.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_CauchySeq4.con. + +inline cic:/CoRN/reals/CauchySeq/Build_CauchySeq2.con. + +inline cic:/CoRN/reals/CauchySeq/Build_CauchySeq2_y.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_CauchySeq2.con. + +(*#* Well definedness. *) + +inline cic:/CoRN/reals/CauchySeq/Cauchy_prop_wd.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop2_wd.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_wd'.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_unique.con. + +(* UNEXPORTED +End Equiv_Cauchy. +*) + +(* UNEXPORTED +Section Cauchy_props. +*) + +(*#* *** Properties of Cauchy sequences + +Some of these lemmas are now obsolete, because they were reproved for arbitrary ordered fields$\ldots$#...# + +We begin by defining the constant sequence and proving that it is Cauchy with the expected limit. +*) + +inline cic:/CoRN/reals/CauchySeq/Cauchy_const.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_const.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_Lim_plus.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_plus.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_plus.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_Lim_inv.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_inv.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_inv.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_Lim_minus.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_minus.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_minus.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_Lim_mult.con. + +inline cic:/CoRN/reals/CauchySeq/Cauchy_mult.con. + +inline cic:/CoRN/reals/CauchySeq/Lim_mult.con. + +(* UNEXPORTED +End Cauchy_props. +*) + diff --git a/matita/contribs/CoRN-Decl/reals/Cauchy_CReals.ma b/matita/contribs/CoRN-Decl/reals/Cauchy_CReals.ma new file mode 100644 index 000000000..a1511bbf0 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/Cauchy_CReals.ma @@ -0,0 +1,134 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/Cauchy_CReals". + +(* $Id: Cauchy_CReals.v,v 1.5 2004/04/23 10:01:04 lcf Exp $ *) + +(* INCLUDE +Cauchy_COF +*) + +(* INCLUDE +CReals +*) + +(* UNEXPORTED +Section R_CReals. +*) + +(*#* * The Real Number Structure + +We will now apply our Cauchy sequence construction to an archimedean ordered field in order to obtain a model of the real numbers. + +** Injection of [Q] + +We start by showing how to inject the rational numbers in the field of Cauchy sequences; this embedding preserves the algebraic operations. + +%\begin{convention}% Let [F] be an ordered field. +%\end{convention}% +*) + +inline cic:/CoRN/reals/Cauchy_CReals/F.var. + +inline cic:/CoRN/reals/Cauchy_CReals/inject_Q.con. + +inline cic:/CoRN/reals/Cauchy_CReals/ing_eq.con. + +inline cic:/CoRN/reals/Cauchy_CReals/ing_plus.con. + +inline cic:/CoRN/reals/Cauchy_CReals/ing_min.con. + +inline cic:/CoRN/reals/Cauchy_CReals/ing_lt.con. + +inline cic:/CoRN/reals/Cauchy_CReals/ing_ap.con. + +inline cic:/CoRN/reals/Cauchy_CReals/ing_cancel_eq.con. + +inline cic:/CoRN/reals/Cauchy_CReals/ing_cancel_less.con. + +inline cic:/CoRN/reals/Cauchy_CReals/ing_le.con. + +inline cic:/CoRN/reals/Cauchy_CReals/ing_cancel_leEq.con. + +inline cic:/CoRN/reals/Cauchy_CReals/ing_cancel_AbsSmall.con. + +inline cic:/CoRN/reals/Cauchy_CReals/ing_One.con. + +inline cic:/CoRN/reals/Cauchy_CReals/ing_nring'.con. + +inline cic:/CoRN/reals/Cauchy_CReals/ing_nring.con. + +inline cic:/CoRN/reals/Cauchy_CReals/ing_mult.con. + +(* UNEXPORTED +Opaque R_COrdField. +*) + +inline cic:/CoRN/reals/Cauchy_CReals/ing_div_three.con. + +(* UNEXPORTED +Transparent R_COrdField. +*) + +inline cic:/CoRN/reals/Cauchy_CReals/ing_n.con. + +inline cic:/CoRN/reals/Cauchy_CReals/expand_Q_R.con. + +inline cic:/CoRN/reals/Cauchy_CReals/conv_modulus.con. + +inline cic:/CoRN/reals/Cauchy_CReals/T.con. + +(*#* We now assume our original field is archimedean and prove that the +resulting one is, too. +*) + +inline cic:/CoRN/reals/Cauchy_CReals/F_is_archemaedian.var. + +inline cic:/CoRN/reals/Cauchy_CReals/R_is_archemaedian.con. + +(* begin hide *) + +inline cic:/CoRN/reals/Cauchy_CReals/PT.con. + +(* end hide *) + +inline cic:/CoRN/reals/Cauchy_CReals/modulus_property.con. + +inline cic:/CoRN/reals/Cauchy_CReals/modulus_property_2.con. + +inline cic:/CoRN/reals/Cauchy_CReals/expand_Q_R_2.con. + +inline cic:/CoRN/reals/Cauchy_CReals/CS_seq_diagonal.con. + +(*#* ** Cauchy Completeness +We can also define a limit operator. +*) + +inline cic:/CoRN/reals/Cauchy_CReals/Q_dense_in_R.con. + +inline cic:/CoRN/reals/Cauchy_CReals/LimR_CauchySeq.con. + +inline cic:/CoRN/reals/Cauchy_CReals/R_is_complete.con. + +inline cic:/CoRN/reals/Cauchy_CReals/R_is_CReals.con. + +inline cic:/CoRN/reals/Cauchy_CReals/R_as_CReals.con. + +(* UNEXPORTED +End R_CReals. +*) + diff --git a/matita/contribs/CoRN-Decl/reals/IVT.ma b/matita/contribs/CoRN-Decl/reals/IVT.ma new file mode 100644 index 000000000..3bdb45a7c --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/IVT.ma @@ -0,0 +1,236 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/IVT". + +(* $Id: IVT.v,v 1.5 2004/04/23 10:01:04 lcf Exp $ *) + +(* INCLUDE +CPoly_Contin +*) + +(* UNEXPORTED +Section Nested_Intervals. +*) + +(*#* * Intermediate Value Theorem + +** Nested intervals + +%\begin{convention}% Let [a,b:nat->IR] be sequences such that: +- [a] is increasing; +- [b] is decreasing; +- [forall (i:nat), (a i) [<] (b i)]; +- for every positive real number [eps], there is an [i] such that [(b i) [<] (a i) [+]eps]. + +%\end{convention}% +*) + +inline cic:/CoRN/reals/IVT/a.var. + +inline cic:/CoRN/reals/IVT/b.var. + +inline cic:/CoRN/reals/IVT/a_mon.var. + +inline cic:/CoRN/reals/IVT/b_mon.var. + +inline cic:/CoRN/reals/IVT/a_b.var. + +inline cic:/CoRN/reals/IVT/b_a.var. + +inline cic:/CoRN/reals/IVT/a_mon'.con. + +inline cic:/CoRN/reals/IVT/b_mon'.con. + +inline cic:/CoRN/reals/IVT/a_b'.con. + +inline cic:/CoRN/reals/IVT/intervals_cauchy.con. + +(* begin hide *) + +inline cic:/CoRN/reals/IVT/a'.con. + +(* end hide *) + +inline cic:/CoRN/reals/IVT/Cnested_intervals_limit.con. + +(*#* %\begin{convention}% Let [f] be a continuous real function. +%\end{convention}% +*) + +inline cic:/CoRN/reals/IVT/f.var. + +inline cic:/CoRN/reals/IVT/f_contin.var. + +inline cic:/CoRN/reals/IVT/f_contin_pos.con. + +inline cic:/CoRN/reals/IVT/f_contin_neg.con. + +(*#* Assume also that [forall i, f (a i) [<=] Zero [<=] f (b i)]. *) + +inline cic:/CoRN/reals/IVT/f_a.var. + +inline cic:/CoRN/reals/IVT/f_b.var. + +inline cic:/CoRN/reals/IVT/Cnested_intervals_zero.con. + +(* UNEXPORTED +End Nested_Intervals. +*) + +(* UNEXPORTED +Section Bisection. +*) + +(*#* ** Bissections *) + +inline cic:/CoRN/reals/IVT/f.var. + +inline cic:/CoRN/reals/IVT/f_apzero_interval.var. + +inline cic:/CoRN/reals/IVT/a.var. + +inline cic:/CoRN/reals/IVT/b.var. + +inline cic:/CoRN/reals/IVT/a_b.var. + +inline cic:/CoRN/reals/IVT/f_a.var. + +inline cic:/CoRN/reals/IVT/f_b.var. + +(*#* +%\begin{convention}% Let [Small] denote [Two[/]ThreeNZ], [lft] be [(Two[*]a[+]b) [/]ThreeNZ] and [rht] be [(a[+]Two[*]b) [/]ThreeNZ]. +%\end{convention}% +*) + +(* begin hide *) + +inline cic:/CoRN/reals/IVT/Small.con. + +inline cic:/CoRN/reals/IVT/lft.con. + +inline cic:/CoRN/reals/IVT/rht.con. + +(* end hide *) + +inline cic:/CoRN/reals/IVT/a_lft.con. + +inline cic:/CoRN/reals/IVT/rht_b.con. + +inline cic:/CoRN/reals/IVT/lft_rht.con. + +inline cic:/CoRN/reals/IVT/smaller_lft.con. + +inline cic:/CoRN/reals/IVT/smaller_rht.con. + +(* UNEXPORTED +Hint Resolve smaller_lft smaller_rht: algebra. +*) + +inline cic:/CoRN/reals/IVT/Cbisect'.con. + +(* UNEXPORTED +End Bisection. +*) + +(* UNEXPORTED +Section Bisect_Interval. +*) + +inline cic:/CoRN/reals/IVT/f.var. + +inline cic:/CoRN/reals/IVT/C_f_apzero_interval.var. + +(* begin hide *) + +inline cic:/CoRN/reals/IVT/Small.con. + +(* end hide *) + +inline cic:/CoRN/reals/IVT/bisect_interval.ind. + +inline cic:/CoRN/reals/IVT/Cbisect_exists.con. + +inline cic:/CoRN/reals/IVT/bisect.con. + +inline cic:/CoRN/reals/IVT/bisect_prop.con. + +(* UNEXPORTED +End Bisect_Interval. +*) + +(* UNEXPORTED +Section IVT_Op. +*) + +(*#* ** IVT for operations +Same conventions as before. +*) + +inline cic:/CoRN/reals/IVT/f.var. + +inline cic:/CoRN/reals/IVT/f_contin.var. + +inline cic:/CoRN/reals/IVT/f_apzero_interval.var. + +inline cic:/CoRN/reals/IVT/a.var. + +inline cic:/CoRN/reals/IVT/b.var. + +inline cic:/CoRN/reals/IVT/a_b.var. + +inline cic:/CoRN/reals/IVT/f_a.var. + +inline cic:/CoRN/reals/IVT/f_b.var. + +(* begin hide *) + +inline cic:/CoRN/reals/IVT/Small.con. + +(* end hide *) + +inline cic:/CoRN/reals/IVT/interval_sequence.con. + +inline cic:/CoRN/reals/IVT/a_.con. + +inline cic:/CoRN/reals/IVT/b_.con. + +inline cic:/CoRN/reals/IVT/intervals_smaller.con. + +inline cic:/CoRN/reals/IVT/intervals_small''.con. + +inline cic:/CoRN/reals/IVT/intervals_small'.con. + +inline cic:/CoRN/reals/IVT/intervals_small.con. + +inline cic:/CoRN/reals/IVT/Civt_op.con. + +(* UNEXPORTED +End IVT_Op. +*) + +(* UNEXPORTED +Section IVT_Poly. +*) + +(*#* ** IVT for polynomials *) + +inline cic:/CoRN/reals/IVT/Civt_poly.con. + +(* UNEXPORTED +End IVT_Poly. +*) + diff --git a/matita/contribs/CoRN-Decl/reals/Intervals.ma b/matita/contribs/CoRN-Decl/reals/Intervals.ma new file mode 100644 index 000000000..3c04c2c23 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/Intervals.ma @@ -0,0 +1,307 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/Intervals". + +(* $Id: Intervals.v,v 1.10 2004/04/23 10:01:04 lcf Exp $ *) + +(* INCLUDE +CSetoidInc +*) + +(* INCLUDE +RealLists +*) + +(* UNEXPORTED +Section Intervals. +*) + +(*#* * Intervals +In this section we define (compact) intervals of the real line and +some useful functions to work with them. + +** Definitions + +We start by defining the compact interval [[a,b]] as being the set of +points less or equal than [b] and greater or equal than [a]. We +require [a [<=] b], as we want to work only in nonempty intervals. +*) + +inline cic:/CoRN/reals/Intervals/compact.con. + +(*#* +%\begin{convention}% Let [a,b : IR] and [Hab : a [<=] b]. +%\end{convention}% + +As expected, both [a] and [b] are members of [[a,b]]. Also they are +members of the interval [[Min(a,b),Max(a,b)]]. +*) + +inline cic:/CoRN/reals/Intervals/a.var. + +inline cic:/CoRN/reals/Intervals/b.var. + +inline cic:/CoRN/reals/Intervals/Hab.var. + +inline cic:/CoRN/reals/Intervals/compact_inc_lft.con. + +inline cic:/CoRN/reals/Intervals/compact_inc_rht.con. + +inline cic:/CoRN/reals/Intervals/compact_Min_lft.con. + +inline cic:/CoRN/reals/Intervals/compact_Min_rht.con. + +(*#* +As we will be interested in taking functions with domain in a compact +interval, we want this predicate to be well defined. +*) + +inline cic:/CoRN/reals/Intervals/compact_wd.con. + +(*#* +Also, it will sometimes be necessary to rewrite the endpoints of an interval. +*) + +inline cic:/CoRN/reals/Intervals/compact_wd'.con. + +(*#* +As we identify subsets with predicates, inclusion is simply implication. +*) + +(*#* +Finally, we define a restriction operator that takes a function [F] +and a well defined predicate [P] included in the domain of [F] and +returns the restriction $F|_P$# of F to P#. +*) + +inline cic:/CoRN/reals/Intervals/Frestr.con. + +(* UNEXPORTED +End Intervals. +*) + +(* UNEXPORTED +Implicit Arguments Frestr [F P]. +*) + +(* UNEXPORTED +Section More_Intervals. +*) + +inline cic:/CoRN/reals/Intervals/included_refl'.con. + +(*#* We prove some inclusions of compact intervals. *) + +inline cic:/CoRN/reals/Intervals/compact_map1.con. + +inline cic:/CoRN/reals/Intervals/compact_map2.con. + +inline cic:/CoRN/reals/Intervals/compact_map3.con. + +(* UNEXPORTED +End More_Intervals. +*) + +(* UNEXPORTED +Hint Resolve included_refl' compact_map1 compact_map2 compact_map3 : included. +*) + +(* UNEXPORTED +Section Totally_Bounded. +*) + +(*#* ** Totally Bounded + +Totally bounded sets will play an important role in what is +to come. The definition (equivalent to the classical one) states that +[P] is totally bounded iff +%\[\forall_{\varepsilon>0}\exists_{x_1,\ldots,x_n}\forall_{y\in P} +\exists_{1\leq i\leq n}|y-x_i|<\varepsilon\]%#∀e>0 +∃x1,...,xn∀y∈P∃ +1≤i≤n.|y-xi|<e#. + +Notice the use of lists for quantification. +*) + +inline cic:/CoRN/reals/Intervals/totally_bounded.con. + +(*#* +This definition is classically, but not constructively, equivalent to +the definition of compact (if completeness is assumed); the next +result, classically equivalent to the Heine-Borel theorem, justifies +that we take the definition of totally bounded to be the relevant one +and that we defined compacts as we did. +*) + +inline cic:/CoRN/reals/Intervals/compact_is_totally_bounded.con. + +(*#* +Suprema and infima will be needed throughout; we define them here both +for arbitrary subsets of [IR] and for images of functions. +*) + +inline cic:/CoRN/reals/Intervals/set_glb_IR.con. + +inline cic:/CoRN/reals/Intervals/set_lub_IR.con. + +inline cic:/CoRN/reals/Intervals/fun_image.con. + +inline cic:/CoRN/reals/Intervals/fun_glb_IR.con. + +inline cic:/CoRN/reals/Intervals/fun_lub_IR.con. + +(* begin hide *) + +inline cic:/CoRN/reals/Intervals/aux_seq_lub.con. + +inline cic:/CoRN/reals/Intervals/aux_seq_lub_prop.con. + +(* end hide *) + +(*#* +The following are probably the most important results in this section. +*) + +inline cic:/CoRN/reals/Intervals/totally_bounded_has_lub.con. + +(* begin hide *) + +inline cic:/CoRN/reals/Intervals/aux_seq_glb.con. + +inline cic:/CoRN/reals/Intervals/aux_seq_glb_prop.con. + +(* end hide *) + +inline cic:/CoRN/reals/Intervals/totally_bounded_has_glb.con. + +(* UNEXPORTED +End Totally_Bounded. +*) + +(* UNEXPORTED +Section Compact. +*) + +(*#* ** Compact sets + +In this section we dwell a bit farther into the definition of compactness +and explore some of its properties. + +The following characterization of inclusion can be very useful: +*) + +inline cic:/CoRN/reals/Intervals/included_compact.con. + +(*#* +At several points in our future development of a theory we will need +to partition a compact interval in subintervals of length smaller than +some predefined value [eps]. Although this seems a +consequence of every compact interval being totally bounded, it is in +fact a stronger property. In this section we perform that +construction (requiring the endpoints of the interval to be distinct) +and prove some of its good properties. + +%\begin{convention}% Let [a,b : IR], [Hab : (a [<=] b)] and denote by [I] +the compact interval [[a,b]]. Also assume that [a [<] b], and let [e] be +a positive real number. +%\end{convention}% +*) + +inline cic:/CoRN/reals/Intervals/a.var. + +inline cic:/CoRN/reals/Intervals/b.var. + +inline cic:/CoRN/reals/Intervals/Hab.var. + +(* begin hide *) + +inline cic:/CoRN/reals/Intervals/I.con. + +(* end hide *) + +inline cic:/CoRN/reals/Intervals/Hab'.var. + +inline cic:/CoRN/reals/Intervals/e.var. + +inline cic:/CoRN/reals/Intervals/He.var. + +(*#* +We start by finding a natural number [n] such that [(b[-]a) [/] n [<] e]. +*) + +inline cic:/CoRN/reals/Intervals/compact_nat.con. + +(*#* Obviously such an [n] must be greater than zero.*) + +inline cic:/CoRN/reals/Intervals/pos_compact_nat.con. + +(*#* +We now define a sequence on [n] points in [[a,b]] by +[x_i [=] Min(a,b) [+]i[*] (b[-]a) [/]n] and +prove that all of its points are really in that interval. +*) + +inline cic:/CoRN/reals/Intervals/compact_part.con. + +inline cic:/CoRN/reals/Intervals/compact_part_hyp.con. + +(*#* +This sequence is strictly increasing and each two consecutive points +are apart by less than [e].*) + +inline cic:/CoRN/reals/Intervals/compact_less.con. + +inline cic:/CoRN/reals/Intervals/compact_leEq.con. + +(*#* When we proceed to integration, this lemma will also be useful: *) + +inline cic:/CoRN/reals/Intervals/compact_partition_lemma.con. + +(*#* The next lemma provides an upper bound for the distance between two points in an interval: *) + +inline cic:/CoRN/reals/Intervals/compact_elements.con. + +(* UNEXPORTED +Opaque Min Max. +*) + +(*#* The following is a variation on the previous lemma: *) + +inline cic:/CoRN/reals/Intervals/compact_elements'.con. + +(*#* The following lemma is a bit more specific: it shows that we can +also estimate the distance from the center of a compact interval to +any of its points. *) + +inline cic:/CoRN/reals/Intervals/compact_bnd_AbsIR.con. + +(*#* Finally, two more useful lemmas to prove inclusion of compact +intervals. They will be necessary for the definition and proof of the +elementary properties of the integral. *) + +inline cic:/CoRN/reals/Intervals/included2_compact.con. + +inline cic:/CoRN/reals/Intervals/included3_compact.con. + +(* UNEXPORTED +End Compact. +*) + +(* UNEXPORTED +Hint Resolve included_compact included2_compact included3_compact : included. +*) + diff --git a/matita/contribs/CoRN-Decl/reals/Max_AbsIR.ma b/matita/contribs/CoRN-Decl/reals/Max_AbsIR.ma new file mode 100644 index 000000000..7a1e016b4 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/Max_AbsIR.ma @@ -0,0 +1,413 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/Max_AbsIR". + +(* $Id: Max_AbsIR.v,v 1.13 2004/04/23 10:01:04 lcf Exp $ *) + +(*#* printing Max %\ensuremath{\max}% *) + +(*#* printing Min %\ensuremath{\min}% *) + +(* INCLUDE +CauchySeq +*) + +(* UNEXPORTED +Section Maximum. +*) + +(* UNEXPORTED +Section Max_function. +*) + +(*#* ** Maximum, Minimum and Absolute Value + +%\begin{convention}% +Let [x] and [y] be reals +(we will define the maximum of [x] and [y]). +%\end{convention}% +*) + +inline cic:/CoRN/reals/Max_AbsIR/x.var. + +inline cic:/CoRN/reals/Max_AbsIR/y.var. + +inline cic:/CoRN/reals/Max_AbsIR/Max_seq.con. + +inline cic:/CoRN/reals/Max_AbsIR/Max_seq_char.con. + +inline cic:/CoRN/reals/Max_AbsIR/Cauchy_Max_seq.con. + +inline cic:/CoRN/reals/Max_AbsIR/Max_CauchySeq.con. + +inline cic:/CoRN/reals/Max_AbsIR/MAX.con. + +(*#* +Constructively, the elementary properties of the maximum function are: +- [x [<=] Max (x,y)], +- [x [<=] Max (y,x)], +- [z [<] Max(x,y) -> z [<] x or z [<] y]. + +(This can be more concisely expressed as +[z [<] Max(x,y) Iff z [<] x or z [<] y]). +From these elementary properties we can prove all other properties, including +strong extensionality. +With strong extensionality, we can make the binary operation [Max]. +(So [Max] is [MAX] coupled with some proofs.) +*) + +inline cic:/CoRN/reals/Max_AbsIR/lft_leEq_MAX.con. + +inline cic:/CoRN/reals/Max_AbsIR/rht_leEq_MAX.con. + +inline cic:/CoRN/reals/Max_AbsIR/less_MAX_imp.con. + +(* UNEXPORTED +End Max_function. +*) + +inline cic:/CoRN/reals/Max_AbsIR/MAX_strext.con. + +inline cic:/CoRN/reals/Max_AbsIR/MAX_wd.con. + +(* UNEXPORTED +Section properties_of_Max. +*) + +(*#* *** Maximum *) + +inline cic:/CoRN/reals/Max_AbsIR/Max.con. + +inline cic:/CoRN/reals/Max_AbsIR/Max_wd_unfolded.con. + +inline cic:/CoRN/reals/Max_AbsIR/lft_leEq_Max.con. + +inline cic:/CoRN/reals/Max_AbsIR/rht_leEq_Max.con. + +inline cic:/CoRN/reals/Max_AbsIR/less_Max_imp.con. + +inline cic:/CoRN/reals/Max_AbsIR/Max_leEq.con. + +inline cic:/CoRN/reals/Max_AbsIR/Max_less.con. + +inline cic:/CoRN/reals/Max_AbsIR/equiv_imp_eq_max.con. + +inline cic:/CoRN/reals/Max_AbsIR/Max_id.con. + +inline cic:/CoRN/reals/Max_AbsIR/Max_comm.con. + +inline cic:/CoRN/reals/Max_AbsIR/leEq_imp_Max_is_rht.con. + +inline cic:/CoRN/reals/Max_AbsIR/Max_is_rht_imp_leEq.con. + +inline cic:/CoRN/reals/Max_AbsIR/Max_minus_eps_leEq.con. + +inline cic:/CoRN/reals/Max_AbsIR/max_one_ap_zero.con. + +inline cic:/CoRN/reals/Max_AbsIR/pos_max_one.con. + +inline cic:/CoRN/reals/Max_AbsIR/x_div_Max_leEq_x.con. + +(* UNEXPORTED +End properties_of_Max. +*) + +(* UNEXPORTED +End Maximum. +*) + +(* UNEXPORTED +Hint Resolve Max_id: algebra. +*) + +(* UNEXPORTED +Section Minimum. +*) + +(*#* *** Mininum + +The minimum is defined by the formula +[Min(x,y) [=] [--]Max( [--]x,[--]y)]. +*) + +inline cic:/CoRN/reals/Max_AbsIR/MIN.con. + +inline cic:/CoRN/reals/Max_AbsIR/MIN_wd.con. + +inline cic:/CoRN/reals/Max_AbsIR/MIN_strext.con. + +inline cic:/CoRN/reals/Max_AbsIR/Min.con. + +inline cic:/CoRN/reals/Max_AbsIR/Min_wd_unfolded.con. + +inline cic:/CoRN/reals/Max_AbsIR/Min_strext_unfolded.con. + +inline cic:/CoRN/reals/Max_AbsIR/Min_leEq_lft.con. + +inline cic:/CoRN/reals/Max_AbsIR/Min_leEq_rht.con. + +inline cic:/CoRN/reals/Max_AbsIR/Min_less_imp.con. + +inline cic:/CoRN/reals/Max_AbsIR/leEq_Min.con. + +inline cic:/CoRN/reals/Max_AbsIR/less_Min.con. + +inline cic:/CoRN/reals/Max_AbsIR/equiv_imp_eq_min.con. + +inline cic:/CoRN/reals/Max_AbsIR/Min_id.con. + +inline cic:/CoRN/reals/Max_AbsIR/Min_comm.con. + +inline cic:/CoRN/reals/Max_AbsIR/leEq_imp_Min_is_lft.con. + +inline cic:/CoRN/reals/Max_AbsIR/Min_is_lft_imp_leEq.con. + +inline cic:/CoRN/reals/Max_AbsIR/leEq_Min_plus_eps.con. + +inline cic:/CoRN/reals/Max_AbsIR/a.var. + +inline cic:/CoRN/reals/Max_AbsIR/b.var. + +inline cic:/CoRN/reals/Max_AbsIR/Min_leEq_Max.con. + +inline cic:/CoRN/reals/Max_AbsIR/Min_leEq_Max'.con. + +inline cic:/CoRN/reals/Max_AbsIR/Min3_leEq_Max3.con. + +inline cic:/CoRN/reals/Max_AbsIR/Min_less_Max.con. + +inline cic:/CoRN/reals/Max_AbsIR/ap_imp_Min_less_Max.con. + +inline cic:/CoRN/reals/Max_AbsIR/Min_less_Max_imp_ap.con. + +(* UNEXPORTED +End Minimum. +*) + +(*#**********************************) + +(* UNEXPORTED +Section Absolute. +*) + +(*#**********************************) + +(*#* *** Absolute value *) + +inline cic:/CoRN/reals/Max_AbsIR/ABSIR.con. + +inline cic:/CoRN/reals/Max_AbsIR/ABSIR_strext.con. + +inline cic:/CoRN/reals/Max_AbsIR/ABSIR_wd.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_wd.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_wdl.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_wdr.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIRz_isz.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_nonneg.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_pos.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_cancel_ap_zero.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_resp_ap_zero.con. + +inline cic:/CoRN/reals/Max_AbsIR/leEq_AbsIR.con. + +inline cic:/CoRN/reals/Max_AbsIR/inv_leEq_AbsIR.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsSmall_e.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsSmall_imp_AbsIR.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_eq_AbsSmall.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_imp_AbsSmall.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsSmall_transitive.con. + +inline cic:/CoRN/reals/Max_AbsIR/zero_less_AbsIR_plus_one.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_inv.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_minus.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_eq_x.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_eq_inv_x.con. + +inline cic:/CoRN/reals/Max_AbsIR/less_AbsIR.con. + +inline cic:/CoRN/reals/Max_AbsIR/leEq_distr_AbsIR.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_approach_zero.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_eq_zero.con. + +inline cic:/CoRN/reals/Max_AbsIR/Abs_Max.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_str_bnd.con. + +inline cic:/CoRN/reals/Max_AbsIR/AbsIR_bnd.con. + +(* UNEXPORTED +End Absolute. +*) + +(* UNEXPORTED +Hint Resolve AbsIRz_isz: algebra. +*) + +(* UNEXPORTED +Section Part_Function_Max. +*) + +(*#* *** Functional Operators + +The existence of these operators allows us to lift them to functions. We will define the maximum, minimum and absolute value of two partial functions. + +%\begin{convention}% +Let [F,G:PartIR] and denote by [P] and [Q] their respective domains. +%\end{convention}% +*) + +inline cic:/CoRN/reals/Max_AbsIR/F.var. + +inline cic:/CoRN/reals/Max_AbsIR/G.var. + +(* begin hide *) + +inline cic:/CoRN/reals/Max_AbsIR/P.con. + +inline cic:/CoRN/reals/Max_AbsIR/Q.con. + +(* end hide *) + +inline cic:/CoRN/reals/Max_AbsIR/part_function_Max_strext.con. + +inline cic:/CoRN/reals/Max_AbsIR/FMax.con. + +(* UNEXPORTED +End Part_Function_Max. +*) + +(* UNEXPORTED +Section Part_Function_Abs. +*) + +inline cic:/CoRN/reals/Max_AbsIR/F.var. + +inline cic:/CoRN/reals/Max_AbsIR/G.var. + +(* begin hide *) + +inline cic:/CoRN/reals/Max_AbsIR/P.con. + +inline cic:/CoRN/reals/Max_AbsIR/Q.con. + +(* end hide *) + +inline cic:/CoRN/reals/Max_AbsIR/FMin.con. + +inline cic:/CoRN/reals/Max_AbsIR/FAbs.con. + +(* UNEXPORTED +Opaque Max. +*) + +inline cic:/CoRN/reals/Max_AbsIR/FMin_char.con. + +(* UNEXPORTED +Transparent Max. +*) + +inline cic:/CoRN/reals/Max_AbsIR/FAbs_char.con. + +(* UNEXPORTED +End Part_Function_Abs. +*) + +(* UNEXPORTED +Hint Resolve FAbs_char: algebra. +*) + +inline cic:/CoRN/reals/Max_AbsIR/FAbs_char'.con. + +inline cic:/CoRN/reals/Max_AbsIR/FAbs_nonneg.con. + +(* UNEXPORTED +Hint Resolve FAbs_char': algebra. +*) + +(* UNEXPORTED +Section Inclusion. +*) + +inline cic:/CoRN/reals/Max_AbsIR/F.var. + +inline cic:/CoRN/reals/Max_AbsIR/G.var. + +(* begin hide *) + +inline cic:/CoRN/reals/Max_AbsIR/P.con. + +inline cic:/CoRN/reals/Max_AbsIR/Q.con. + +(* end hide *) + +(*#* +%\begin{convention}% Let [R:IR->CProp]. +%\end{convention}% +*) + +inline cic:/CoRN/reals/Max_AbsIR/R.var. + +inline cic:/CoRN/reals/Max_AbsIR/included_FMax.con. + +inline cic:/CoRN/reals/Max_AbsIR/included_FMax'.con. + +inline cic:/CoRN/reals/Max_AbsIR/included_FMax''.con. + +inline cic:/CoRN/reals/Max_AbsIR/included_FMin.con. + +inline cic:/CoRN/reals/Max_AbsIR/included_FMin'.con. + +inline cic:/CoRN/reals/Max_AbsIR/included_FMin''.con. + +inline cic:/CoRN/reals/Max_AbsIR/included_FAbs.con. + +inline cic:/CoRN/reals/Max_AbsIR/included_FAbs'.con. + +(* UNEXPORTED +End Inclusion. +*) + +(* UNEXPORTED +Hint Resolve included_FMax included_FMin included_FAbs : included. +*) + +(* UNEXPORTED +Hint Immediate included_FMax' included_FMin' included_FAbs' + included_FMax'' included_FMin'' : included. +*) + diff --git a/matita/contribs/CoRN-Decl/reals/NRootIR.ma b/matita/contribs/CoRN-Decl/reals/NRootIR.ma new file mode 100644 index 000000000..368848098 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/NRootIR.ma @@ -0,0 +1,269 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/NRootIR". + +(* $Id: NRootIR.v,v 1.5 2004/04/23 10:01:05 lcf Exp $ *) + +(*#* printing NRoot %\ensuremath{\sqrt[n]{\cdot}}% *) + +(*#* printing sqrt %\ensuremath{\sqrt{\cdot}}% *) + +(* INCLUDE +OddPolyRootIR +*) + +(*#* * Roots of Real Numbers *) + +(* UNEXPORTED +Section NRoot. +*) + +(*#* ** Existence of roots + +%\begin{convention}% Let [n] be a natural number and [c] a nonnegative real. +[p] is the auxiliary polynomial [_X_[^]n[-] (_C_ c)]. +%\end{convention}% +*) + +inline cic:/CoRN/reals/NRootIR/n.var. + +inline cic:/CoRN/reals/NRootIR/n_pos.var. + +inline cic:/CoRN/reals/NRootIR/c.var. + +inline cic:/CoRN/reals/NRootIR/c_nonneg.var. + +(* begin hide *) + +inline cic:/CoRN/reals/NRootIR/p.con. + +(* end hide *) + +inline cic:/CoRN/reals/NRootIR/CnrootIR.con. + +(* UNEXPORTED +End NRoot. +*) + +(*#* We define the root of order [n] for any nonnegative real number and +prove its main properties: + - $\left(\sqrt[n]x\right)^n=x$#(sqrt(n) x)^n =x#; + - $0\leq\sqrt[n]x$#0≤sqrt(n)x#; + - if [Zero [<] x] then $0<\sqrt[n]x$#0<sqrt(n)x#; + - $\sqrt[n]{x^n}=x$#sqrt(n) x^n =x#; + - the nth root is monotonous; + - in particular, if [x [<] One] then $\sqrt[n]x<1$#sqrt(n) x<1#. + +[(nroot ??)] will be written as [NRoot]. +*) + +(* UNEXPORTED +Section Nth_Root. +*) + +inline cic:/CoRN/reals/NRootIR/nroot.con. + +inline cic:/CoRN/reals/NRootIR/NRoot.con. + +inline cic:/CoRN/reals/NRootIR/NRoot_power.con. + +(* UNEXPORTED +Hint Resolve NRoot_power: algebra. +*) + +inline cic:/CoRN/reals/NRootIR/NRoot_nonneg.con. + +inline cic:/CoRN/reals/NRootIR/NRoot_pos.con. + +inline cic:/CoRN/reals/NRootIR/NRoot_power'.con. + +inline cic:/CoRN/reals/NRootIR/NRoot_pres_less.con. + +inline cic:/CoRN/reals/NRootIR/NRoot_less_one.con. + +inline cic:/CoRN/reals/NRootIR/NRoot_cancel.con. + +(*#* %\begin{convention}% Let [x,y] be nonnegative real numbers. +%\end{convention}% *) + +inline cic:/CoRN/reals/NRootIR/x.var. + +inline cic:/CoRN/reals/NRootIR/y.var. + +inline cic:/CoRN/reals/NRootIR/Hx.var. + +inline cic:/CoRN/reals/NRootIR/Hy.var. + +inline cic:/CoRN/reals/NRootIR/NRoot_wd.con. + +inline cic:/CoRN/reals/NRootIR/NRoot_unique.con. + +(* UNEXPORTED +End Nth_Root. +*) + +(* UNEXPORTED +Implicit Arguments NRoot [x n]. +*) + +(* UNEXPORTED +Hint Resolve NRoot_power NRoot_power': algebra. +*) + +inline cic:/CoRN/reals/NRootIR/NRoot_resp_leEq.con. + +(*#**********************************) + +(* UNEXPORTED +Section Square_root. +*) + +(*#**********************************) + +(*#* ** Square root *) + +inline cic:/CoRN/reals/NRootIR/sqrt.con. + +inline cic:/CoRN/reals/NRootIR/sqrt_sqr.con. + +(* UNEXPORTED +Hint Resolve sqrt_sqr: algebra. +*) + +inline cic:/CoRN/reals/NRootIR/sqrt_nonneg.con. + +inline cic:/CoRN/reals/NRootIR/sqrt_wd.con. + +(* UNEXPORTED +Hint Resolve sqrt_wd: algebra_c. +*) + +inline cic:/CoRN/reals/NRootIR/sqrt_to_nonneg.con. + +inline cic:/CoRN/reals/NRootIR/sqrt_to_nonpos.con. + +inline cic:/CoRN/reals/NRootIR/sqrt_mult.con. + +(* UNEXPORTED +Hint Resolve sqrt_mult: algebra. +*) + +inline cic:/CoRN/reals/NRootIR/sqrt_mult_wd.con. + +inline cic:/CoRN/reals/NRootIR/sqrt_less.con. + +inline cic:/CoRN/reals/NRootIR/sqrt_less'.con. + +inline cic:/CoRN/reals/NRootIR/sqrt_resp_leEq.con. + +inline cic:/CoRN/reals/NRootIR/sqrt_resp_less.con. + +(* UNEXPORTED +End Square_root. +*) + +(* UNEXPORTED +Hint Resolve sqrt_wd: algebra_c. +*) + +(* UNEXPORTED +Hint Resolve sqrt_sqr sqrt_mult: algebra. +*) + +(* UNEXPORTED +Section Absolute_Props. +*) + +(*#* ** More on absolute value + +With the help of square roots, we can prove some more properties of absolute +values in [IR]. +*) + +inline cic:/CoRN/reals/NRootIR/AbsIR_sqrt_sqr.con. + +(* UNEXPORTED +Hint Resolve AbsIR_sqrt_sqr: algebra. +*) + +inline cic:/CoRN/reals/NRootIR/AbsIR_resp_mult.con. + +inline cic:/CoRN/reals/NRootIR/AbsIR_mult_pos.con. + +inline cic:/CoRN/reals/NRootIR/AbsIR_mult_pos'.con. + +inline cic:/CoRN/reals/NRootIR/AbsIR_nexp.con. + +inline cic:/CoRN/reals/NRootIR/AbsIR_nexp_op.con. + +inline cic:/CoRN/reals/NRootIR/AbsIR_less_square.con. + +inline cic:/CoRN/reals/NRootIR/AbsIR_leEq_square.con. + +inline cic:/CoRN/reals/NRootIR/AbsIR_division.con. + +(*#* Some special cases. *) + +inline cic:/CoRN/reals/NRootIR/AbsIR_recip.con. + +inline cic:/CoRN/reals/NRootIR/AbsIR_div_two.con. + +(*#* Cauchy-Schwartz for IR and variants on that subject. *) + +inline cic:/CoRN/reals/NRootIR/triangle_IR.con. + +inline cic:/CoRN/reals/NRootIR/triangle_SumIR.con. + +inline cic:/CoRN/reals/NRootIR/triangle_IR_minus.con. + +inline cic:/CoRN/reals/NRootIR/weird_triangleIR.con. + +inline cic:/CoRN/reals/NRootIR/triangle_IR_minus'.con. + +inline cic:/CoRN/reals/NRootIR/triangle_SumxIR.con. + +inline cic:/CoRN/reals/NRootIR/triangle_Sum2IR.con. + +inline cic:/CoRN/reals/NRootIR/AbsIR_str_bnd_AbsIR.con. + +inline cic:/CoRN/reals/NRootIR/AbsIR_bnd_AbsIR.con. + +(* UNEXPORTED +End Absolute_Props. +*) + +(* UNEXPORTED +Section Consequences. +*) + +(*#* **Cauchy sequences + +With these results, we can also prove that the sequence of reciprocals of a +Cauchy sequence that is never zero and whose Limit is not zero is also a +Cauchy sequence. +*) + +inline cic:/CoRN/reals/NRootIR/Cauchy_Lim_recip.con. + +inline cic:/CoRN/reals/NRootIR/Cauchy_recip.con. + +inline cic:/CoRN/reals/NRootIR/Lim_recip.con. + +(* UNEXPORTED +End Consequences. +*) + diff --git a/matita/contribs/CoRN-Decl/reals/OddPolyRootIR.ma b/matita/contribs/CoRN-Decl/reals/OddPolyRootIR.ma new file mode 100644 index 000000000..21a487409 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/OddPolyRootIR.ma @@ -0,0 +1,166 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/OddPolyRootIR". + +(* $Id: OddPolyRootIR.v,v 1.5 2004/04/23 10:01:05 lcf Exp $ *) + +(* INCLUDE +IVT +*) + +(*#* * Roots of polynomials of odd degree *) + +(* UNEXPORTED +Section CPoly_Big. +*) + +(*#* ** Monic polynomials are positive near infinity +%\begin{convention}% Let [R] be an ordered field. +%\end{convention}% +*) + +inline cic:/CoRN/reals/OddPolyRootIR/R.var. + +(* begin hide *) + +inline cic:/CoRN/reals/OddPolyRootIR/RX.con. + +(* end hide *) + +inline cic:/CoRN/reals/OddPolyRootIR/Cbigger.con. + +inline cic:/CoRN/reals/OddPolyRootIR/Ccpoly_big.con. + +inline cic:/CoRN/reals/OddPolyRootIR/cpoly_pos.con. + +inline cic:/CoRN/reals/OddPolyRootIR/Ccpoly_pos'.con. + +(* UNEXPORTED +End CPoly_Big. +*) + +(* UNEXPORTED +Section Flip_Poly. +*) + +(*#* **Flipping a polynomial +%\begin{convention}% Let [R] be a ring. +%\end{convention}% +*) + +inline cic:/CoRN/reals/OddPolyRootIR/R.var. + +(* begin hide *) + +inline cic:/CoRN/reals/OddPolyRootIR/RX.con. + +(* end hide *) + +inline cic:/CoRN/reals/OddPolyRootIR/flip.con. + +inline cic:/CoRN/reals/OddPolyRootIR/flip_poly.con. + +inline cic:/CoRN/reals/OddPolyRootIR/flip_coefficient.con. + +(* UNEXPORTED +Hint Resolve flip_coefficient: algebra. +*) + +inline cic:/CoRN/reals/OddPolyRootIR/flip_odd.con. + +(* UNEXPORTED +End Flip_Poly. +*) + +(* UNEXPORTED +Hint Resolve flip_poly: algebra. +*) + +(* UNEXPORTED +Section OddPoly_Signs. +*) + +(*#* ** Sign of a polynomial of odd degree +%\begin{convention}% Let [R] be an ordered field. +%\end{convention}% +*) + +inline cic:/CoRN/reals/OddPolyRootIR/R.var. + +(* begin hide *) + +inline cic:/CoRN/reals/OddPolyRootIR/RX.con. + +(* end hide *) + +inline cic:/CoRN/reals/OddPolyRootIR/oddpoly_pos.con. + +inline cic:/CoRN/reals/OddPolyRootIR/oddpoly_pos'.con. + +inline cic:/CoRN/reals/OddPolyRootIR/oddpoly_neg.con. + +(* UNEXPORTED +End OddPoly_Signs. +*) + +(* UNEXPORTED +Section Poly_Norm. +*) + +(*#* ** The norm of a polynomial +%\begin{convention}% Let [R] be a field, and [RX] the polynomials over +this field. +%\end{convention}% +*) + +inline cic:/CoRN/reals/OddPolyRootIR/R.var. + +(* begin hide *) + +inline cic:/CoRN/reals/OddPolyRootIR/RX.con. + +(* end hide *) + +inline cic:/CoRN/reals/OddPolyRootIR/poly_norm_aux.con. + +inline cic:/CoRN/reals/OddPolyRootIR/poly_norm.con. + +inline cic:/CoRN/reals/OddPolyRootIR/poly_norm_monic.con. + +inline cic:/CoRN/reals/OddPolyRootIR/poly_norm_apply.con. + +(* UNEXPORTED +End Poly_Norm. +*) + +(* UNEXPORTED +Section OddPoly_Root. +*) + +(*#* ** Roots of polynomials of odd degree +Polynomials of odd degree over the reals always have a root. *) + +inline cic:/CoRN/reals/OddPolyRootIR/oddpoly_root'.con. + +inline cic:/CoRN/reals/OddPolyRootIR/oddpoly_root.con. + +inline cic:/CoRN/reals/OddPolyRootIR/realpolyn_oddhaszero.con. + +(* UNEXPORTED +End OddPoly_Root. +*) + diff --git a/matita/contribs/CoRN-Decl/reals/Q_dense.ma b/matita/contribs/CoRN-Decl/reals/Q_dense.ma new file mode 100644 index 000000000..31b4b21a6 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/Q_dense.ma @@ -0,0 +1,165 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/Q_dense". + +(* begin hide *) + +(* INCLUDE +Q_in_CReals +*) + +(*#***** Opaque_algebra.v will be loaded in line 151 ******) + +inline cic:/CoRN/reals/Q_dense/or_not_and.con. + +(* UNEXPORTED +Section Interval_definition. +*) + +inline cic:/CoRN/reals/Q_dense/OF.var. + +inline cic:/CoRN/reals/Q_dense/Interval.ind. + +inline cic:/CoRN/reals/Q_dense/Length.con. + +(* UNEXPORTED +End Interval_definition. +*) + +inline cic:/CoRN/reals/Q_dense/Rat_Interval.con. + +(* we have this in Q_COrdField... *) + +inline cic:/CoRN/reals/Q_dense/Qlt_eq_gt_dec'.con. + +(* +Lemma ex_informative_on_Q:(P:Q_as_COrdField->Prop)(Ex [q:Q_as_COrdField](P q)) + ->{q:Q_as_COrdField | (P q)}. +Proof. + Intro. + Intro. + Apply ex_informative. + Assumption. +Qed. +*) + +(* UNEXPORTED +Section COrdField_extra. +*) + +inline cic:/CoRN/reals/Q_dense/OF.var. + +inline cic:/CoRN/reals/Q_dense/AbsSmall_pos_reflexive.con. + +inline cic:/CoRN/reals/Q_dense/AbsSmall_neg_reflexive.con. + +inline cic:/CoRN/reals/Q_dense/AbsSmall_subinterval.con. + +(* UNEXPORTED +End COrdField_extra. +*) + +(* UNEXPORTED +Section Rational_sequence. +*) + +(* INCLUDE +Opaque_algebra +*) + +(*#*** WARNING: A file is being loaded *****) + +inline cic:/CoRN/reals/Q_dense/R1.var. + +inline cic:/CoRN/reals/Q_dense/start_l.con. + +inline cic:/CoRN/reals/Q_dense/start_of_sequence2.con. + +inline cic:/CoRN/reals/Q_dense/start_r.con. + +inline cic:/CoRN/reals/Q_dense/start_of_sequence_property.con. + +inline cic:/CoRN/reals/Q_dense/l_less_r.con. + +inline cic:/CoRN/reals/Q_dense/shrink23.con. + +inline cic:/CoRN/reals/Q_dense/shrink13.con. + +inline cic:/CoRN/reals/Q_dense/shrink24.con. + +inline cic:/CoRN/reals/Q_dense/cotrans_analyze.con. + +inline cic:/CoRN/reals/Q_dense/cotrans_analyze_strong.con. + +inline cic:/CoRN/reals/Q_dense/trichotomy.con. + +inline cic:/CoRN/reals/Q_dense/trichotomy_strong1.con. + +inline cic:/CoRN/reals/Q_dense/if_cotrans.con. + +inline cic:/CoRN/reals/Q_dense/if_cotrans_strong.con. + +inline cic:/CoRN/reals/Q_dense/Intrvl.con. + +inline cic:/CoRN/reals/Q_dense/G.con. + +(* UNEXPORTED +Opaque Q_as_CField. +*) + +inline cic:/CoRN/reals/Q_dense/delta_Intrvl.con. + +inline cic:/CoRN/reals/Q_dense/Length_Intrvl.con. + +inline cic:/CoRN/reals/Q_dense/Intrvl_inside_l_n.con. + +inline cic:/CoRN/reals/Q_dense/Intrvl_inside_r_n.con. + +inline cic:/CoRN/reals/Q_dense/G_m_n_lower.con. + +inline cic:/CoRN/reals/Q_dense/G_m_n_upper.con. + +(* UNEXPORTED +Opaque Q_as_COrdField. +*) + +inline cic:/CoRN/reals/Q_dense/a_simple_inequality.con. + +inline cic:/CoRN/reals/Q_dense/G_conversion_rate2.con. + +inline cic:/CoRN/reals/Q_dense/CS_seq_G.con. + +inline cic:/CoRN/reals/Q_dense/G_as_CauchySeq.con. + +inline cic:/CoRN/reals/Q_dense/CS_seq_inj_Q_G.con. + +inline cic:/CoRN/reals/Q_dense/inj_Q_G_as_CauchySeq.con. + +inline cic:/CoRN/reals/Q_dense/x_in_Intrvl_l.con. + +inline cic:/CoRN/reals/Q_dense/x_in_Intrvl_r.con. + +inline cic:/CoRN/reals/Q_dense/G_conversion_rate_resp_x.con. + +inline cic:/CoRN/reals/Q_dense/x_is_SeqLimit_G.con. + +(* UNEXPORTED +End Rational_sequence. +*) + +(* end hide *) + diff --git a/matita/contribs/CoRN-Decl/reals/Q_in_CReals.ma b/matita/contribs/CoRN-Decl/reals/Q_in_CReals.ma new file mode 100644 index 000000000..8a803f435 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/Q_in_CReals.ma @@ -0,0 +1,172 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/Q_in_CReals". + +(* $Id: Q_in_CReals.v,v 1.10 2004/04/23 10:01:05 lcf Exp $ *) + +(*#* * On density of the image of [Q] in an arbitrary real number structure +In this file we introduce the image of the concrete rational numbers +(as defined earlier) in an arbitrary structure of type +[CReals]. At the end of this file we assign to any real number two +rational numbers for which the real number lies betwen image of them; +in other words we will prove that the image of rational numbers in +dense in any real number structure. *) + +(* INCLUDE +Cauchy_IR +*) + +(* INCLUDE +Nmonoid +*) + +(* INCLUDE +Zring +*) + +(* UNEXPORTED +Section Rational_sequence_prelogue. +*) + +(*#* +%\begin{convention}% Let [R1] be a real number structure. +%\end{convention}% +*) + +inline cic:/CoRN/reals/Q_in_CReals/R1.var. + +(* We clone these proofs from CReals1.v just because there IR is an axiom *) + +(* begin hide *) + +inline cic:/CoRN/reals/Q_in_CReals/CReals_is_CReals.con. + +inline cic:/CoRN/reals/Q_in_CReals/Lim_Cauchy.con. + +inline cic:/CoRN/reals/Q_in_CReals/Archimedes.con. + +inline cic:/CoRN/reals/Q_in_CReals/Archimedes'.con. + +(*#**************************************) + +(* end hide *) + +(*#* +** Injection from [Q] to an arbitrary real number structure + First we need to define the injection from [Q] to [R1]. Note that in [Cauchy_CReals] we defined [inject_Q] from an arbitray field [F] to [(R_COrdField F)] which was the set of Cauchy sequences of that field. But since [R1] is an %\emph{arbitrary}%#arbitrary# real number structure we can not use [inject_Q]. + + To define the injection we need one elemntary lemma about the denominator: +*) + +inline cic:/CoRN/reals/Q_in_CReals/den_is_nonzero.con. + +(*#* And we define the injection in the natural way, using [zring] and [nring]. We call this [inj_Q], in contrast with [inject_Q] defined in [Cauchy_CReals]. *) + +inline cic:/CoRN/reals/Q_in_CReals/inj_Q.con. + +(*#* Next we need some properties of [nring], on the setoid of natural numbers: *) + +inline cic:/CoRN/reals/Q_in_CReals/nring_strext.con. + +inline cic:/CoRN/reals/Q_in_CReals/nring_wd.con. + +inline cic:/CoRN/reals/Q_in_CReals/nring_eq.con. + +inline cic:/CoRN/reals/Q_in_CReals/nring_leEq.con. + +(* begin hide *) + +(* UNEXPORTED +Unset Printing Coercions. +*) + +(* end hide *) + +(*#* Similarly we prove some properties of [zring] on the ring of integers: *) + +inline cic:/CoRN/reals/Q_in_CReals/zring_strext.con. + +inline cic:/CoRN/reals/Q_in_CReals/zring_wd.con. + +inline cic:/CoRN/reals/Q_in_CReals/zring_less.con. + +(*#* Using the above lemmata we prove the basic properties of [inj_Q], i.e.%\% it is a setoid function and preserves the ring operations and oreder operation. *) + +inline cic:/CoRN/reals/Q_in_CReals/inj_Q_strext.con. + +inline cic:/CoRN/reals/Q_in_CReals/inj_Q_wd.con. + +inline cic:/CoRN/reals/Q_in_CReals/inj_Q_plus.con. + +inline cic:/CoRN/reals/Q_in_CReals/inj_Q_mult.con. + +inline cic:/CoRN/reals/Q_in_CReals/inj_Q_less.con. + +inline cic:/CoRN/reals/Q_in_CReals/less_inj_Q.con. + +inline cic:/CoRN/reals/Q_in_CReals/leEq_inj_Q.con. + +inline cic:/CoRN/reals/Q_in_CReals/inj_Q_leEq.con. + +inline cic:/CoRN/reals/Q_in_CReals/inj_Q_min.con. + +inline cic:/CoRN/reals/Q_in_CReals/inj_Q_minus.con. + +(*#* Moreover, and as expected, the [AbsSmall] predicate is also +preserved under the [inj_Q] *) + +inline cic:/CoRN/reals/Q_in_CReals/inj_Q_AbsSmall.con. + +inline cic:/CoRN/reals/Q_in_CReals/AbsSmall_inj_Q.con. + +(*#* ** Injection preserves Cauchy property +We apply the above lemmata to obtain following theorem, which says +that a Cauchy sequence of elemnts of [Q] will be Cauchy in [R1]. +*) + +inline cic:/CoRN/reals/Q_in_CReals/inj_Q_Cauchy.con. + +(*#* Furthermore we prove that applying [nring] (which is adding the +ring unit [n] times) is the same whether we do it in [Q] or in [R1]: +*) + +inline cic:/CoRN/reals/Q_in_CReals/inj_Q_nring.con. + +(*#* ** Injection of [Q] is dense +Finally we are able to prove the density of image of [Q] in [R1]. We +state this fact in two different ways. Both of them have their +specific use. + +The first theorem states the fact that any real number can be bound by +the image of two rational numbers. This is called [start_of_sequence] +because it can be used as an starting point for the typical "interval +trisection" argument, which is ubiquitous in constructive analysis. +*) + +inline cic:/CoRN/reals/Q_in_CReals/start_of_sequence.con. + +(*#* The second version of the density of [Q] in [R1] states that given +any positive real number, there is a rational number between it and +zero. This lemma can be used to prove the more general fact that there +is a rational number between any two real numbers. *) + +inline cic:/CoRN/reals/Q_in_CReals/Q_dense_in_CReals.con. + +(* UNEXPORTED +End Rational_sequence_prelogue. +*) + diff --git a/matita/contribs/CoRN-Decl/reals/R_morphism.ma b/matita/contribs/CoRN-Decl/reals/R_morphism.ma new file mode 100644 index 000000000..24e1a144d --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/R_morphism.ma @@ -0,0 +1,296 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/R_morphism". + +(* begin hide *) + +(* In this file a notion of morphism between two arbitrary real number + structures, is introduced together with te proofs that this notion of + morphism preserves the basic algebraic structure. *) + +(* INCLUDE +CReals +*) + +(* This comes from CReals1.v *) + +inline cic:/CoRN/reals/R_morphism/Cauchy_Lim_prop2.con. + +(* UNEXPORTED +Section morphism. +*) + +inline cic:/CoRN/reals/R_morphism/R1.var. + +inline cic:/CoRN/reals/R_morphism/R2.var. + +(* UNEXPORTED +Section morphism_details. +*) + +inline cic:/CoRN/reals/R_morphism/phi.var. + +inline cic:/CoRN/reals/R_morphism/p1.var. + +inline cic:/CoRN/reals/R_morphism/p2.var. + +inline cic:/CoRN/reals/R_morphism/f1.var. + +inline cic:/CoRN/reals/R_morphism/f2.var. + +inline cic:/CoRN/reals/R_morphism/g1.var. + +inline cic:/CoRN/reals/R_morphism/g2.var. + +inline cic:/CoRN/reals/R_morphism/fun_pres_relation.con. + +inline cic:/CoRN/reals/R_morphism/fun_pres_un_fun.con. + +inline cic:/CoRN/reals/R_morphism/fun_pres_bin_fun.con. + +(* +Definition fun_pres_partial_fun:=(x:R1;H1:x[#]Zero;H2:(phi x)[#]Zero) +(phi (nzinj R1 (i1 (nzpro R1 x H1))))[=](nzinj R2 (i2 (nzpro R2 (phi x) H2))). +*) + +inline cic:/CoRN/reals/R_morphism/fun_pres_Lim.con. + +(* UNEXPORTED +End morphism_details. +*) + +inline cic:/CoRN/reals/R_morphism/Homomorphism.ind. + +(* This might be useful later... +Definition Homo_as_CSetoid_fun:= + [f:Homomorphism] + (Build_CSetoid_fun R1 R2 f + (fun_strext_imp_wd R1 R2 f (!map_strext f)) + (!map_strext f) + ). +*****************) + +inline cic:/CoRN/reals/R_morphism/map_strext_unfolded.con. + +inline cic:/CoRN/reals/R_morphism/map_wd_unfolded.con. + +inline cic:/CoRN/reals/R_morphism/map_pres_less_unfolded.con. + +inline cic:/CoRN/reals/R_morphism/map_pres_plus_unfolded.con. + +inline cic:/CoRN/reals/R_morphism/map_pres_mult_unfolded.con. + +(* Now we start to derive some useful properties of a Homomorphism *) + +inline cic:/CoRN/reals/R_morphism/map_pres_zero.con. + +inline cic:/CoRN/reals/R_morphism/map_pres_zero_unfolded.con. + +inline cic:/CoRN/reals/R_morphism/map_pres_minus.con. + +inline cic:/CoRN/reals/R_morphism/map_pres_minus_unfolded.con. + +inline cic:/CoRN/reals/R_morphism/map_pres_apartness.con. + +(* Merely a useful special case *) + +inline cic:/CoRN/reals/R_morphism/map_pres_ap_zero.con. + +inline cic:/CoRN/reals/R_morphism/map_pres_one.con. + +inline cic:/CoRN/reals/R_morphism/map_pres_one_unfolded.con. + +(* I will not use the following lemma *) + +inline cic:/CoRN/reals/R_morphism/map_pres_inv_unfolded.con. + +(* UNEXPORTED +End morphism. +*) + +(* UNEXPORTED +Section composition. +*) + +inline cic:/CoRN/reals/R_morphism/R1.var. + +inline cic:/CoRN/reals/R_morphism/R2.var. + +inline cic:/CoRN/reals/R_morphism/R3.var. + +inline cic:/CoRN/reals/R_morphism/f.var. + +inline cic:/CoRN/reals/R_morphism/g.var. + +inline cic:/CoRN/reals/R_morphism/compose.con. + +inline cic:/CoRN/reals/R_morphism/compose_strext.con. + +inline cic:/CoRN/reals/R_morphism/compose_pres_less.con. + +inline cic:/CoRN/reals/R_morphism/compose_pres_plus.con. + +inline cic:/CoRN/reals/R_morphism/compose_pres_mult.con. + +inline cic:/CoRN/reals/R_morphism/compose_pres_Lim.con. + +inline cic:/CoRN/reals/R_morphism/Compose.con. + +(* UNEXPORTED +End composition. +*) + +(* UNEXPORTED +Section isomorphism. +*) + +inline cic:/CoRN/reals/R_morphism/R1.var. + +inline cic:/CoRN/reals/R_morphism/R2.var. + +(* UNEXPORTED +Section identity_map. +*) + +inline cic:/CoRN/reals/R_morphism/R3.var. + +inline cic:/CoRN/reals/R_morphism/f.var. + +inline cic:/CoRN/reals/R_morphism/map_is_id.con. + +(* UNEXPORTED +End identity_map. +*) + +inline cic:/CoRN/reals/R_morphism/Isomorphism.ind. + +(* UNEXPORTED +End isomorphism. +*) + +(* UNEXPORTED +Section surjective_map. +*) + +inline cic:/CoRN/reals/R_morphism/R1.var. + +inline cic:/CoRN/reals/R_morphism/R2.var. + +inline cic:/CoRN/reals/R_morphism/f.var. + +inline cic:/CoRN/reals/R_morphism/map_is_surjective.con. + +(* UNEXPORTED +End surjective_map. +*) + +(* UNEXPORTED +Section simplification. +*) + +inline cic:/CoRN/reals/R_morphism/R1.var. + +inline cic:/CoRN/reals/R_morphism/R2.var. + +inline cic:/CoRN/reals/R_morphism/f.var. + +inline cic:/CoRN/reals/R_morphism/H1.var. + +inline cic:/CoRN/reals/R_morphism/f_well_def.con. + +(* UNEXPORTED +Section with_less. +*) + +inline cic:/CoRN/reals/R_morphism/H2.var. + +inline cic:/CoRN/reals/R_morphism/less_pres_f.con. + +inline cic:/CoRN/reals/R_morphism/leEq_pres_f.con. + +inline cic:/CoRN/reals/R_morphism/f_pres_leEq.con. + +inline cic:/CoRN/reals/R_morphism/f_pres_apartness.con. + +(* UNEXPORTED +End with_less. +*) + +(* UNEXPORTED +Section with_plus. +*) + +inline cic:/CoRN/reals/R_morphism/H3.var. + +inline cic:/CoRN/reals/R_morphism/f_pres_Zero.con. + +inline cic:/CoRN/reals/R_morphism/f_pres_minus.con. + +inline cic:/CoRN/reals/R_morphism/f_pres_min.con. + +(* UNEXPORTED +End with_plus. +*) + +(* UNEXPORTED +Section with_plus_less. +*) + +inline cic:/CoRN/reals/R_morphism/H2.var. + +inline cic:/CoRN/reals/R_morphism/H3.var. + +inline cic:/CoRN/reals/R_morphism/f_pres_ap_zero.con. + +(* UNEXPORTED +Section surjectivity_helps. +*) + +inline cic:/CoRN/reals/R_morphism/f_surj.var. + +inline cic:/CoRN/reals/R_morphism/f_pres_Lim.con. + +(* UNEXPORTED +End surjectivity_helps. +*) + +(* UNEXPORTED +Section with_mult_plus_less. +*) + +inline cic:/CoRN/reals/R_morphism/H4.var. + +inline cic:/CoRN/reals/R_morphism/f_pres_one.con. + +inline cic:/CoRN/reals/R_morphism/f_pres_inv.con. + +inline cic:/CoRN/reals/R_morphism/simplified_Homomorphism.con. + +(* UNEXPORTED +End with_mult_plus_less. +*) + +(* UNEXPORTED +End with_plus_less. +*) + +(* UNEXPORTED +End simplification. +*) + +(* end hide *) + diff --git a/matita/contribs/CoRN-Decl/reals/RealFuncts.ma b/matita/contribs/CoRN-Decl/reals/RealFuncts.ma new file mode 100644 index 000000000..c717a91e2 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/RealFuncts.ma @@ -0,0 +1,264 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/RealFuncts". + +(* $Id: RealFuncts.v,v 1.4 2004/04/07 15:08:10 lcf Exp $ *) + +(* INCLUDE +CReals1 +*) + +(*#* * Continuity of Functions on Reals +*) + +(* begin hide *) + +(* UNEXPORTED +Set Implicit Arguments. +*) + +(* UNEXPORTED +Unset Strict Implicit. +*) + +(* end hide *) + +(* UNEXPORTED +Section Continuity. +*) + +inline cic:/CoRN/reals/RealFuncts/f.var. + +inline cic:/CoRN/reals/RealFuncts/f2.var. + +(*#* +Let [f] be a unary setoid operation on [IR] and +let [f2] be a binary setoid operation on [IR]. + +We use the following notations for intervals. [Intclr a b] for the +closed interval [[a,b]], [Intolr a b] for the +open interval [(a,b)], [Intcl a] for the +left-closed interval $[a,\infty)$#[a,∞)#, [Intol a] for the +left-open interval $(a,\infty)$#(a,∞)#, [Intcr b] for the +right-closed interval $(-\infty,b]$#(-∞,b]#. + +Intervals like $[a,b]$#[a,b]# are defined for arbitrary reals [a,b] (being +$\emptyset$#∅# for [a [>] b]). +*) + +inline cic:/CoRN/reals/RealFuncts/Intclr.con. + +inline cic:/CoRN/reals/RealFuncts/Intolr.con. + +inline cic:/CoRN/reals/RealFuncts/Intol.con. + +inline cic:/CoRN/reals/RealFuncts/Intcl.con. + +inline cic:/CoRN/reals/RealFuncts/Intcr.con. + +(*#* The limit of [f(x)] as [x] goes to [p = l], for both unary and binary +functions: + +The limit of [f] in [p] is [l] if +[[ +forall e [>] Zero, exists d [>] Zero, forall (x : IR) +( [--]d [<] p[-]x [<] d) -> ( [--]e [<] [--]f(x) [<] e) +]] +*) + +inline cic:/CoRN/reals/RealFuncts/funLim.con. + +(*#* The definition of limit of [f] in [p] using Cauchy sequences. *) + +inline cic:/CoRN/reals/RealFuncts/funLim_Cauchy.con. + +(*#* The first definition implies the second one. *) + +(* + Ax_iom funLim_prop1 :(p,l:IR)(funLim p l)->(funLim_Cauchy p l). +Intros. Unfold funLim_Cauchy. Unfold funLim in H. Intros. +Elim (H e H1). Intros. +Elim s. Intros s_seq s_proof. +Decompose [and] H2. +Cut (Zero [<] x[/]TwoNZ). +Intro Hx2. +Elim (s_proof (x[/]TwoNZ) Hx2). +Intros N HN. +Exists N. +Intros. +Apply AbsSmall_minus. +Apply H5. +Generalize (HN m H3). +Intro HmN. +*) + +(*#* The limit of [f] in [(p,p')] is [l] if +[[ +forall e [>] Zero, exists d [>] Zero, forall (x : IR) +( [--]d [<] p[-]x [<] d) -> ( [--]d' [<] p'[-]y [<] d') -> ( [--]e [<] l[-]f(x,y) [<] e +]] +*) + +inline cic:/CoRN/reals/RealFuncts/funLim2.con. + +(*#* The function [f] is continuous at [p] if the limit of [f(x)] as +[x] goes to [p] is [f(p)]. This is the [eps [/] delta] definition. +We also give the definition with limits of Cauchy sequences. +*) + +inline cic:/CoRN/reals/RealFuncts/continAt.con. + +inline cic:/CoRN/reals/RealFuncts/continAtCauchy.con. + +inline cic:/CoRN/reals/RealFuncts/continAt2.con. + +(* +Ax_iom continAt_prop1 :(p:IR)(continAt p)->(continAtCauchy p). +*) + +inline cic:/CoRN/reals/RealFuncts/contin.con. + +inline cic:/CoRN/reals/RealFuncts/continCauchy.con. + +inline cic:/CoRN/reals/RealFuncts/contin2.con. + +(*#* +Continuous on a closed, resp.%\% open, resp.%\% left open, resp.%\% left closed +interval *) + +inline cic:/CoRN/reals/RealFuncts/continOnc.con. + +inline cic:/CoRN/reals/RealFuncts/continOno.con. + +inline cic:/CoRN/reals/RealFuncts/continOnol.con. + +inline cic:/CoRN/reals/RealFuncts/continOncl.con. + +(* +Section Sequence_and_function_limits. + +_** +If $\lim_{x->p} (f x) = l$, then for every sequence $p_n$ whose +limit is $p$, $\lim_{n->\infty} f (p_n) =l$. + *_ + +Lemma funLim_SeqLimit: + (p,l:IR)(fl:(funLim p l)) + (pn:nat->IR)(sl:(SeqLimit pn p)) (SeqLimit ( [n:nat] (f (pn n))) l). +Proof. +Intros; Unfold seqLimit. +Intros eps epos. +Elim (fl ? epos); Intros del dh; Elim dh; Intros H0 H1. +Elim (sl ? H0); Intros N Nh. +Exists N. Intros m leNm. +Apply AbsSmall_minus. +Apply H1. +Apply AbsSmall_minus. +Apply (Nh ? leNm). +Qed. + +_**** Is the converse constructively provable? ** +Lemma SeqLimit_funLim: + (p,l:IR)((pn:nat->IR)(sl:(SeqLimit pn p)) (SeqLimit ( [n:nat] (f (pn n))) l))-> + (funLim p l). +****_ + +_** +Now the same Lemma in terms of Cauchy sequences: if $\lim_{x->p} (f x) = l$, +then for every Cauchy sequence $s_n$ whose +limit is $p$, $\lim_{n->\infty} f (s_n) =l$. + *_ + +Ax_iom funLim_isCauchy: + (p,l:IR)(funLim p l)->(s:CauchySeqR)((Lim s) [=] p)-> + (e:IR)(Zero [<] e)->(Ex [N:nat] (m:nat)(le N m) + ->(AbsSmall e ((s m) [-] (s N)))). + +End Sequence_and_function_limits. + +Section Monotonic_functions. + +Definition str_monot := (x,y:IR)(x [<] y)->((f x) [<] (f y)). + +Definition str_monotOnc := [a,b:IR] + (x,y:IR)(Intclr a b x)->(Intclr a b y) + ->(x [<] y)->((f x) [<] (f y)). + +Definition str_monotOncl := [a:IR] + (x,y:IR)(Intcl a x)->(Intcl a y) + ->(x [<] y)->((f x) [<] (f y)). + +Definition str_monotOnol := [a:IR] + (x,y:IR)(Intol a x)->(Intol a y) + ->(x [<] y)->((f x) [<] (f y)). + +_** Following probably not needed for the FTA proof; +it stated that strong monotonicity on a closed interval implies that the +intermediate value theorem holds on this interval. For FTA we need IVT on +$[0,\infty>$. +*_ + +Ax_iom strmonc_imp_ivt :(a,b:IR)(str_monotOnc a b) + ->(x,y:IR)(x [<] y)->(Intclr a b x)->(Intclr a b y) + ->((f x) [<] Zero)->(Zero [<] (f y)) + ->(EX z:IR | (Intclr x y z)/\((f z) [=] Zero)). +_** +$\forall c\in\RR (f\mbox{ strongly monotonic on }[c,\infty>) +\rightarrow \forall a,b\in\RR(c + (a,b:IR)(Intcl c a)->(Intcl c b)->((f a) [<] Zero)->(Zero [<] (f b)) + ->(x,y:IR)(Intclr a b x)->(Intclr a b y)->(x [<] y) + ->(EX z:IR | (Intclr x y z)/\((f z) [#] Zero)). + +_** The following is lemma 5.8 from the skeleton + +$\forall c\in\RR (f\mbox{ strongly monotonic on }[c,\infty>) +\rightarrow \forall a,b\in\RR(a(a,b:IR)(a [<] b)->(Intcl c a)->(Intcl c b) + ->((f a) [<] Zero)->(Zero [<] (f b)) + ->(EX z:IR | (Intclr a b z)/\ ((f z) [=] Zero)). +End Monotonic_functions. + +*) + +(* UNEXPORTED +End Continuity. +*) + +(* begin hide *) + +(* UNEXPORTED +Set Strict Implicit. +*) + +(* UNEXPORTED +Unset Implicit Arguments. +*) + +(* end hide *) + diff --git a/matita/contribs/CoRN-Decl/reals/RealLists.ma b/matita/contribs/CoRN-Decl/reals/RealLists.ma new file mode 100644 index 000000000..ce7fbdc26 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/RealLists.ma @@ -0,0 +1,106 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/RealLists". + +(* $Id: RealLists.v,v 1.4 2004/04/23 10:01:05 lcf Exp $ *) + +(* INCLUDE +CReals1 +*) + +(* UNEXPORTED +Section Lists. +*) + +(*#* * Lists of Real Numbers + +In some contexts we will need to work with nested existential quantified formulas of the form $\exists_{n\in\NN}\exists_{x_1,\ldots,x_n}P(x_1,\ldots,x_n)$#exists n exists x1,...,xn P(x1,..,xn)#. One way of formalizing this kind of statement is through quantifying over lists. In this file we provide some tools for manipulating lists. + +Notice that some of the properties listed below only make sense in the context within which we are working. Unlike in the other lemma files, no care has been taken here to state the lemmas in their most general form, as that would make them very unpractical to use. + +%\bigskip% + +We start by defining maximum and minimum of lists of reals and two membership predicates. The value of these functions for the empty list is arbitrarily set to 0, but it will be irrelevant, as we will never work with empty lists. +*) + +inline cic:/CoRN/reals/RealLists/maxlist.con. + +inline cic:/CoRN/reals/RealLists/minlist.con. + +inline cic:/CoRN/reals/RealLists/member.con. + +(*#* +Sometimes the length of the list has to be restricted; the next definition provides an easy way to do that. *) + +inline cic:/CoRN/reals/RealLists/length_leEq.con. + +(*#* Length is preserved by mapping. *) + +(* UNEXPORTED +Implicit Arguments map [A B]. +*) + +inline cic:/CoRN/reals/RealLists/map_pres_length.con. + +(*#* +Often we want to map partial functions through a list; this next operator provides a way to do that, and is proved to be correct. *) + +(* UNEXPORTED +Implicit Arguments cons [A]. +*) + +inline cic:/CoRN/reals/RealLists/map2.con. + +inline cic:/CoRN/reals/RealLists/map2_wd.con. + +inline cic:/CoRN/reals/RealLists/map2_pres_member.con. + +(*#* +As [maxlist] and [minlist] are generalizations of [Max] and [Min] to finite sets of real numbers, they have the expected properties: *) + +inline cic:/CoRN/reals/RealLists/maxlist_greater.con. + +(* begin hide *) + +inline cic:/CoRN/reals/RealLists/maxlist_aux.con. + +(* end hide *) + +inline cic:/CoRN/reals/RealLists/maxlist_leEq_eps.con. + +inline cic:/CoRN/reals/RealLists/maxlist_less.con. + +inline cic:/CoRN/reals/RealLists/maxlist_leEq.con. + +inline cic:/CoRN/reals/RealLists/minlist_smaller.con. + +(* begin hide *) + +inline cic:/CoRN/reals/RealLists/minlist_aux.con. + +(* end hide *) + +inline cic:/CoRN/reals/RealLists/minlist_leEq_eps.con. + +inline cic:/CoRN/reals/RealLists/less_minlist.con. + +inline cic:/CoRN/reals/RealLists/leEq_minlist.con. + +(* UNEXPORTED +End Lists. +*) + diff --git a/matita/contribs/CoRN-Decl/reals/Series.ma b/matita/contribs/CoRN-Decl/reals/Series.ma new file mode 100644 index 000000000..ed331dbd1 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/Series.ma @@ -0,0 +1,384 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/Series". + +(* $Id: Series.v,v 1.6 2004/04/23 10:01:05 lcf Exp $ *) + +(*#* printing seq_part_sum %\ensuremath{\sum^n}% #∑n# *) + +(*#* printing series_sum %\ensuremath{\sum_0^{\infty}}% #∑0# *) + +(*#* printing pi %\ensuremath{\pi}% #π *) + +(* INCLUDE +CSumsReals +*) + +(* INCLUDE +NRootIR +*) + +(* UNEXPORTED +Section Definitions. +*) + +(*#* *Series of Real Numbers +In this file we develop a theory of series of real numbers. +** Definitions + +A series is simply a sequence from the natural numbers into the reals. +To each such sequence we can assign a sequence of partial sums. + +%\begin{convention}% Let [x:nat->IR]. +%\end{convention}% +*) + +inline cic:/CoRN/reals/Series/x.var. + +inline cic:/CoRN/reals/Series/seq_part_sum.con. + +(*#* +For subsequent purposes it will be very useful to be able to write the +difference between two arbitrary elements of the sequence of partial +sums as a sum of elements of the original sequence. +*) + +inline cic:/CoRN/reals/Series/seq_part_sum_n.con. + +(*#* A series is convergent iff its sequence of partial Sums is a +Cauchy sequence. To each convergent series we can assign a Sum. +*) + +inline cic:/CoRN/reals/Series/convergent.con. + +inline cic:/CoRN/reals/Series/series_sum.con. + +(*#* Divergence can be characterized in a positive way, which will sometimes +be useful. We thus define divergence of sequences and series and prove the +obvious fact that no sequence can be both convergent and divergent, whether + considered either as a sequence or as a series. +*) + +inline cic:/CoRN/reals/Series/divergent_seq.con. + +inline cic:/CoRN/reals/Series/divergent.con. + +inline cic:/CoRN/reals/Series/conv_imp_not_div.con. + +inline cic:/CoRN/reals/Series/div_imp_not_conv.con. + +inline cic:/CoRN/reals/Series/convergent_imp_not_divergent.con. + +inline cic:/CoRN/reals/Series/divergent_imp_not_convergent.con. + +(*#* Finally we have the well known fact that every convergent series converges +to zero as a sequence. +*) + +inline cic:/CoRN/reals/Series/series_seq_Lim.con. + +inline cic:/CoRN/reals/Series/series_seq_Lim'.con. + +(* UNEXPORTED +End Definitions. +*) + +(* UNEXPORTED +Section More_Definitions. +*) + +inline cic:/CoRN/reals/Series/x.var. + +(*#* We also define absolute convergence. *) + +inline cic:/CoRN/reals/Series/abs_convergent.con. + +(* UNEXPORTED +End More_Definitions. +*) + +(* UNEXPORTED +Section Power_Series. +*) + +(*#* **Power Series + +Power series are an important special case. +*) + +inline cic:/CoRN/reals/Series/power_series.con. + +(*#* +Specially important is the case when [c] is a positive real number +less than 1; in this case not only the power series is convergent, but +we can also compute its sum. + +%\begin{convention}% Let [c] be a real number between 0 and 1. +%\end{convention}% +*) + +inline cic:/CoRN/reals/Series/c.var. + +inline cic:/CoRN/reals/Series/H0c.var. + +inline cic:/CoRN/reals/Series/Hc1.var. + +inline cic:/CoRN/reals/Series/c_exp_Lim.con. + +inline cic:/CoRN/reals/Series/power_series_Lim1.con. + +inline cic:/CoRN/reals/Series/power_series_conv.con. + +inline cic:/CoRN/reals/Series/power_series_sum.con. + +(* UNEXPORTED +End Power_Series. +*) + +(* UNEXPORTED +Section Operations. +*) + +(*#* **Operations + +Some operations with series preserve convergence. We start by defining +the series that is zero everywhere. +*) + +inline cic:/CoRN/reals/Series/conv_zero_series.con. + +inline cic:/CoRN/reals/Series/series_sum_zero.con. + +(*#* Next we consider extensionality, as well as the sum and difference +of two convergent series. + +%\begin{convention}% Let [x,y:nat->IR] be convergent series. +%\end{convention}% +*) + +inline cic:/CoRN/reals/Series/x.var. + +inline cic:/CoRN/reals/Series/y.var. + +inline cic:/CoRN/reals/Series/convX.var. + +inline cic:/CoRN/reals/Series/convY.var. + +inline cic:/CoRN/reals/Series/convergent_wd.con. + +inline cic:/CoRN/reals/Series/series_sum_wd.con. + +inline cic:/CoRN/reals/Series/conv_series_plus.con. + +inline cic:/CoRN/reals/Series/series_sum_plus.con. + +inline cic:/CoRN/reals/Series/conv_series_minus.con. + +inline cic:/CoRN/reals/Series/series_sum_minus.con. + +(*#* Multiplication by a scalar [c] is also permitted. *) + +inline cic:/CoRN/reals/Series/c.var. + +inline cic:/CoRN/reals/Series/conv_series_mult_scal.con. + +inline cic:/CoRN/reals/Series/series_sum_mult_scal.con. + +(* UNEXPORTED +End Operations. +*) + +(* UNEXPORTED +Section More_Operations. +*) + +inline cic:/CoRN/reals/Series/x.var. + +inline cic:/CoRN/reals/Series/convX.var. + +(*#* As a corollary, we get the series of the inverses. *) + +inline cic:/CoRN/reals/Series/conv_series_inv.con. + +inline cic:/CoRN/reals/Series/series_sum_inv.con. + +(* UNEXPORTED +End More_Operations. +*) + +(* UNEXPORTED +Section Almost_Everywhere. +*) + +(*#* ** Almost Everywhere + +In this section we strengthen some of the convergence results for sequences +and derive an important corollary for series. + +Let [x,y : nat->IR] be equal after some natural number. +*) + +inline cic:/CoRN/reals/Series/x.var. + +inline cic:/CoRN/reals/Series/y.var. + +inline cic:/CoRN/reals/Series/aew_eq.con. + +inline cic:/CoRN/reals/Series/aew_equal.var. + +inline cic:/CoRN/reals/Series/aew_Cauchy.con. + +inline cic:/CoRN/reals/Series/aew_Cauchy2.con. + +inline cic:/CoRN/reals/Series/aew_series_conv.con. + +(* UNEXPORTED +End Almost_Everywhere. +*) + +(* UNEXPORTED +Section Cauchy_Almost_Everywhere. +*) + +(*#* Suppose furthermore that [x,y] are Cauchy sequences. *) + +inline cic:/CoRN/reals/Series/x.var. + +inline cic:/CoRN/reals/Series/y.var. + +inline cic:/CoRN/reals/Series/aew_equal.var. + +inline cic:/CoRN/reals/Series/aew_Lim.con. + +(* UNEXPORTED +End Cauchy_Almost_Everywhere. +*) + +(* UNEXPORTED +Section Convergence_Criteria. +*) + +(*#* **Convergence Criteria + +%\begin{convention}% Let [x:nat->IR]. +%\end{convention}% +*) + +inline cic:/CoRN/reals/Series/x.var. + +(*#* We include the comparison test for series, both in a strong and in a less +general (but simpler) form. +*) + +inline cic:/CoRN/reals/Series/str_comparison.con. + +inline cic:/CoRN/reals/Series/comparison.con. + +(*#* As a corollary, we get that every absolutely convergent series converges. *) + +inline cic:/CoRN/reals/Series/abs_imp_conv.con. + +(*#* Next we have the ratio test, both as a positive and negative result. *) + +inline cic:/CoRN/reals/Series/divergent_crit.con. + +inline cic:/CoRN/reals/Series/tail_series.con. + +inline cic:/CoRN/reals/Series/join_series.con. + +(* UNEXPORTED +End Convergence_Criteria. +*) + +(* UNEXPORTED +Section More_CC. +*) + +inline cic:/CoRN/reals/Series/x.var. + +inline cic:/CoRN/reals/Series/ratio_test_conv.con. + +inline cic:/CoRN/reals/Series/ratio_test_div.con. + +(* UNEXPORTED +End More_CC. +*) + +(* UNEXPORTED +Section Alternate_Series. +*) + +(*#* **Alternate Series + +Alternate series are a special case. Suppose that [x] is nonnegative and +decreasing convergent to 0. +*) + +inline cic:/CoRN/reals/Series/x.var. + +inline cic:/CoRN/reals/Series/pos_x.var. + +inline cic:/CoRN/reals/Series/Lim_x.var. + +inline cic:/CoRN/reals/Series/mon_x.var. + +(* begin hide *) + +inline cic:/CoRN/reals/Series/y.con. + +inline cic:/CoRN/reals/Series/alternate_lemma1.con. + +inline cic:/CoRN/reals/Series/alternate_lemma2.con. + +inline cic:/CoRN/reals/Series/alternate_lemma3.con. + +inline cic:/CoRN/reals/Series/alternate_lemma4.con. + +(* end hide *) + +inline cic:/CoRN/reals/Series/alternate_series_conv.con. + +(* UNEXPORTED +End Alternate_Series. +*) + +(* UNEXPORTED +Section Important_Numbers. +*) + +(*#* **Important Numbers + +We end this chapter by defining two important numbers in mathematics: [pi] +and $e$#e#, both as sums of convergent series. +*) + +inline cic:/CoRN/reals/Series/e_series.con. + +inline cic:/CoRN/reals/Series/e_series_conv.con. + +inline cic:/CoRN/reals/Series/E.con. + +inline cic:/CoRN/reals/Series/pi_series.con. + +inline cic:/CoRN/reals/Series/pi_series_conv.con. + +inline cic:/CoRN/reals/Series/pi.con. + +(* UNEXPORTED +End Important_Numbers. +*) + diff --git a/matita/contribs/CoRN-Decl/reals/iso_CReals.ma b/matita/contribs/CoRN-Decl/reals/iso_CReals.ma new file mode 100644 index 000000000..5adaeb0c5 --- /dev/null +++ b/matita/contribs/CoRN-Decl/reals/iso_CReals.ma @@ -0,0 +1,127 @@ +(**************************************************************************) +(* ___ *) +(* ||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/reals/iso_CReals". + +(* begin hide *) + +(* in this file the concrete canonical isomorphism -in te sense of + R_morphisms.v - between two arbitrary model of real numbers is built *) + +(* INCLUDE +Q_dense +*) + +(* INCLUDE +R_morphism +*) + +inline cic:/CoRN/reals/iso_CReals/less_pres_Lim.con. + +inline cic:/CoRN/reals/iso_CReals/Lim_pres_less.con. + +inline cic:/CoRN/reals/iso_CReals/inj_seq_less.con. + +inline cic:/CoRN/reals/iso_CReals/less_inj_seq.con. + +inline cic:/CoRN/reals/iso_CReals/SeqLimit_unique.con. + +inline cic:/CoRN/reals/iso_CReals/Lim_well_def.con. + +inline cic:/CoRN/reals/iso_CReals/Lim_one_one.con. + +inline cic:/CoRN/reals/iso_CReals/inj_seq_well_def.con. + +inline cic:/CoRN/reals/iso_CReals/inj_Q_one_one.con. + +inline cic:/CoRN/reals/iso_CReals/Lim_pres_plus.con. + +inline cic:/CoRN/reals/iso_CReals/G_pres_plus.con. + +(* This theorem can be avoided but it is interesting *) + +inline cic:/CoRN/reals/iso_CReals/nonarchemaedian_bound_for_Lim.con. + +inline cic:/CoRN/reals/iso_CReals/Lim_pres_mult.con. + +inline cic:/CoRN/reals/iso_CReals/G_pres_mult.con. + +(* UNEXPORTED +Section Concrete_iso_between_Creals. +*) + +inline cic:/CoRN/reals/iso_CReals/R1.var. + +inline cic:/CoRN/reals/iso_CReals/R2.var. + +inline cic:/CoRN/reals/iso_CReals/image_Cauchy12.con. + +inline cic:/CoRN/reals/iso_CReals/image_Cauchy21.con. + +inline cic:/CoRN/reals/iso_CReals/image_G_as_CauchySeq12.con. + +inline cic:/CoRN/reals/iso_CReals/image_G_as_CauchySeq21.con. + +inline cic:/CoRN/reals/iso_CReals/f12.con. + +inline cic:/CoRN/reals/iso_CReals/g21.con. + +(*#****** ISO FROM R1 TO R2 ********) + +inline cic:/CoRN/reals/iso_CReals/f12_is_inverse_g21.con. + +inline cic:/CoRN/reals/iso_CReals/f12_is_surjective.con. + +inline cic:/CoRN/reals/iso_CReals/f12_strong_ext.con. + +inline cic:/CoRN/reals/iso_CReals/f12_pres_less.con. + +inline cic:/CoRN/reals/iso_CReals/f12_pres_plus.con. + +inline cic:/CoRN/reals/iso_CReals/f12_pres_mult.con. + +(*#********* ISO FROM R2 TO R1 **********) + +inline cic:/CoRN/reals/iso_CReals/g21_is_inverse_f12.con. + +inline cic:/CoRN/reals/iso_CReals/g21_is_surjective.con. + +inline cic:/CoRN/reals/iso_CReals/g21_strong_ext.con. + +inline cic:/CoRN/reals/iso_CReals/g21_pres_less.con. + +inline cic:/CoRN/reals/iso_CReals/g21_pres_plus.con. + +inline cic:/CoRN/reals/iso_CReals/g21_pres_mult.con. + +(*#** Building Homomorphisms out of f12 and g21 ***) + +inline cic:/CoRN/reals/iso_CReals/f12_as_Homomorphism.con. + +inline cic:/CoRN/reals/iso_CReals/g21_as_Homomorphism.con. + +inline cic:/CoRN/reals/iso_CReals/f12_inverse_lft.con. + +inline cic:/CoRN/reals/iso_CReals/g21_inverse_rht.con. + +inline cic:/CoRN/reals/iso_CReals/Canonic_Isomorphism_between_CReals.con. + +(* UNEXPORTED +End Concrete_iso_between_Creals. +*) + +(* end hide *) + diff --git a/matita/contribs/CoRN-Decl/tactics/AlgReflection.ma b/matita/contribs/CoRN-Decl/tactics/AlgReflection.ma new file mode 100644 index 000000000..97fc1571b --- /dev/null +++ b/matita/contribs/CoRN-Decl/tactics/AlgReflection.ma @@ -0,0 +1,132 @@ +(**************************************************************************) +(* ___ *) +(* ||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/tactics/AlgReflection". + +(* $Id: AlgReflection.v,v 1.2 2004/03/26 16:07:03 lcf Exp $ *) + +(* begin hide *) + +(* INCLUDE +CLogic +*) + +(* UNEXPORTED +Section Syntactic_Expressions. +*) + +inline cic:/CoRN/tactics/AlgReflection/varindex.con. + +inline cic:/CoRN/tactics/AlgReflection/pfunindex.con. + +inline cic:/CoRN/tactics/AlgReflection/unopindex.con. + +inline cic:/CoRN/tactics/AlgReflection/binopindex.con. + +inline cic:/CoRN/tactics/AlgReflection/expr.ind. + +inline cic:/CoRN/tactics/AlgReflection/expr_zero.con. + +inline cic:/CoRN/tactics/AlgReflection/expr_one.con. + +inline cic:/CoRN/tactics/AlgReflection/expr_nat.con. + +inline cic:/CoRN/tactics/AlgReflection/expr_inv.con. + +inline cic:/CoRN/tactics/AlgReflection/expr_minus.con. + +inline cic:/CoRN/tactics/AlgReflection/expr_power.con. + +(* UNEXPORTED +End Syntactic_Expressions. +*) + +(* UNEXPORTED +Section Normalization_Function. +*) + +inline cic:/CoRN/tactics/AlgReflection/eq_nat.con. + +inline cic:/CoRN/tactics/AlgReflection/lt_nat.con. + +inline cic:/CoRN/tactics/AlgReflection/le_nat.con. + +inline cic:/CoRN/tactics/AlgReflection/eq_int.con. + +inline cic:/CoRN/tactics/AlgReflection/lt_int.con. + +inline cic:/CoRN/tactics/AlgReflection/le_int.con. + +inline cic:/CoRN/tactics/AlgReflection/eq_expr.con. + +inline cic:/CoRN/tactics/AlgReflection/lt_expr.con. + +inline cic:/CoRN/tactics/AlgReflection/le_expr.con. + +inline cic:/CoRN/tactics/AlgReflection/eq_monom.con. + +inline cic:/CoRN/tactics/AlgReflection/lt_monom.con. + +inline cic:/CoRN/tactics/AlgReflection/MI_mult.con. + +inline cic:/CoRN/tactics/AlgReflection/MV_mult.con. + +inline cic:/CoRN/tactics/AlgReflection/MM_mult.con. + +inline cic:/CoRN/tactics/AlgReflection/MM_plus.con. + +inline cic:/CoRN/tactics/AlgReflection/PM_plus.con. + +inline cic:/CoRN/tactics/AlgReflection/PP_plus.con. + +inline cic:/CoRN/tactics/AlgReflection/PM_mult.con. + +inline cic:/CoRN/tactics/AlgReflection/PP_mult.con. + +inline cic:/CoRN/tactics/AlgReflection/FF_plus.con. + +inline cic:/CoRN/tactics/AlgReflection/FF_mult.con. + +inline cic:/CoRN/tactics/AlgReflection/FF_div.con. + +inline cic:/CoRN/tactics/AlgReflection/NormR.con. + +inline cic:/CoRN/tactics/AlgReflection/NormG.con. + +inline cic:/CoRN/tactics/AlgReflection/NormF.con. + +inline cic:/CoRN/tactics/AlgReflection/expr_is_zero.con. + +(* UNEXPORTED +End Normalization_Function. +*) + +(* UNEXPORTED +Section Correctness_Results. +*) + +inline cic:/CoRN/tactics/AlgReflection/eq_nat_corr.con. + +inline cic:/CoRN/tactics/AlgReflection/eq_int_corr.con. + +inline cic:/CoRN/tactics/AlgReflection/eq_expr_corr.con. + +(* UNEXPORTED +End Correctness_Results. +*) + +(* end hide *) + diff --git a/matita/contribs/CoRN-Decl/tactics/DiffTactics1.ma b/matita/contribs/CoRN-Decl/tactics/DiffTactics1.ma new file mode 100644 index 000000000..2db26c9d9 --- /dev/null +++ b/matita/contribs/CoRN-Decl/tactics/DiffTactics1.ma @@ -0,0 +1,39 @@ +(**************************************************************************) +(* ___ *) +(* ||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/tactics/DiffTactics1". + +(* begin hide *) + +(* UNEXPORTED +Ltac Contin := auto with continuous included. +*) + +(* UNEXPORTED +Ltac Deriv := eauto with derivate continuous included. +*) + +(* end hide *) + +(*#* *Search tactics for reasoning in Real Analysis + +The following tactics are defined: + - [Contin] will solve [(Continuous_I H F)] + - [Deriv] will solve [(Derivative_I H F F')]. + +All these tactics are defined using [eauto]. +*) + diff --git a/matita/contribs/CoRN-Decl/tactics/DiffTactics2.ma b/matita/contribs/CoRN-Decl/tactics/DiffTactics2.ma new file mode 100644 index 000000000..3c3f0b200 --- /dev/null +++ b/matita/contribs/CoRN-Decl/tactics/DiffTactics2.ma @@ -0,0 +1,236 @@ +(**************************************************************************) +(* ___ *) +(* ||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/tactics/DiffTactics2". + +(* $Id: DiffTactics2.v,v 1.1.1.1 2004/02/05 16:25:45 lionelm Exp $ *) + +(* begin hide *) + +(* INCLUDE +Differentiability +*) + +(* UNEXPORTED +Section Automatizing_Continuity. +*) + +inline cic:/CoRN/tactics/DiffTactics2/a.var. + +inline cic:/CoRN/tactics/DiffTactics2/b.var. + +inline cic:/CoRN/tactics/DiffTactics2/cont_function.ind. + +inline cic:/CoRN/tactics/DiffTactics2/cont_to_pfunct.con. + +inline cic:/CoRN/tactics/DiffTactics2/continuous_cont.con. + +(* UNEXPORTED +End Automatizing_Continuity. +*) + +(* UNEXPORTED +Ltac pfunct_to_cont a b f := + match constr:f with + | ([-C-]?X3) => constr:(cconst a b X3) + | FId => constr:(cid a b) + | (?X3{+}?X4) => + let t1 := pfunct_to_cont a b X3 with t2 := pfunct_to_cont a b X4 in + constr:(cplus a b t1 t2) + | ({--}?X3) => + let t1 := pfunct_to_cont a b X3 in + constr:(cinv a b t1) + | (?X3{-}?X4) => + let t1 := pfunct_to_cont a b X3 with t2 := pfunct_to_cont a b X4 in + constr:(cminus a b t1 t2) + | (?X3{*}?X4) => + let t1 := pfunct_to_cont a b X3 with t2 := pfunct_to_cont a b X4 in + constr:(cmult a b t1 t2) + | (?X3{**}?X4) => + let t := pfunct_to_cont a b X4 in + constr:(cscalmult a b X3 t) + | (?X3{^}?X4) => + let t1 := pfunct_to_cont a b X3 in + constr:(cnth a b t1 X4) + | (FAbs ?X3) => let t1 := pfunct_to_cont a b X3 in + constr:(cabs a b t1) + | ?X3 => + let t := constr:X3 in + match goal with + | Hab:_,H:(Continuous_I (a:=a) (b:=b) ?X1 t) |- _ => + constr:(hyp_c a b X1 t H) + | H:(Derivative_I (a:=a) (b:=b) ?X1 t ?X4) |- _ => + constr:(hyp_d a b X1 t X4 H) + | H:(Derivative_I (a:=a) (b:=b) ?X1 ?X4 t) |- _ => + constr:(hyp_d' a b X1 X4 t H) + | H:(Diffble_I (a:=a) (b:=b) ?X1 t) |- _ => + constr:(hyp_diff a b X1 t H) + end + end. +*) + +(* UNEXPORTED +Ltac New_Contin := + match goal with + | |- (Continuous_I (a:=?X1) (b:=?X2) ?X4 ?X3) => + let r := pfunct_to_cont X1 X2 X3 in + let a := constr:X1 in + let b := constr:X2 in + (apply Continuous_I_wd with (cont_to_pfunct a b r); + [ unfold cont_to_pfunct in |- * | apply continuous_cont ]) + end. +*) + +(* UNEXPORTED +Section Automatizing_Derivatives. +*) + +inline cic:/CoRN/tactics/DiffTactics2/a.var. + +inline cic:/CoRN/tactics/DiffTactics2/b.var. + +inline cic:/CoRN/tactics/DiffTactics2/deriv_function.ind. + +inline cic:/CoRN/tactics/DiffTactics2/deriv_to_pfunct.con. + +inline cic:/CoRN/tactics/DiffTactics2/deriv_deriv.con. + +inline cic:/CoRN/tactics/DiffTactics2/deriv_restr.con. + +inline cic:/CoRN/tactics/DiffTactics2/diffble_restr.con. + +(* UNEXPORTED +End Automatizing_Derivatives. +*) + +(* UNEXPORTED +Ltac pfunct_to_restr a b f := + match constr:f with + | ([-C-]?X3) => constr:(const a b X3) + | FId => constr:(id a b) + | (?X3{+}?X4) => + let t1 := pfunct_to_restr a b X3 with t2 := pfunct_to_restr a b X4 in + constr:(rplus a b t1 t2) + | ({--}?X3) => + let t1 := pfunct_to_restr a b X3 in + constr:(rinv a b t1) + | (?X3{-}?X4) => + let t1 := pfunct_to_restr a b X3 with t2 := pfunct_to_restr a b X4 in + constr:(rminus a b t1 t2) + | (?X3{*}?X4) => + let t1 := pfunct_to_restr a b X3 with t2 := pfunct_to_restr a b X4 in + constr:(rmult a b t1 t2) + | (?X3{**}?X4) => + let t := pfunct_to_restr a b X4 in + constr:(rscalmult a b X3 t) + | (?X3{^}?X4) => + let t1 := pfunct_to_restr a b X3 in + constr:(rnth a b t1 X4) + | ?X3 => + let t := constr:X3 in + match goal with + | H:(Derivative_I (a:=a) (b:=b) ?X1 t ?X4) |- _ => + constr:(hyp a b X1 t X4 H) + | H:(Diffble_I (a:=a) (b:=b) ?X1 t) |- _ => constr:( + hyp' a b X1 t H) + end + end. +*) + +(* UNEXPORTED +Ltac New_Deriv := + match goal with + | |- (Derivative_I (a:=?X1) (b:=?X2) _ ?X3 ?X4) => + let r := pfunct_to_restr X1 X2 X3 in + (apply Derivative_I_wdl with (deriv_to_pfunct X1 X2 r); + [ unfold deriv_to_pfunct in |- * + | apply Derivative_I_wdr with (deriv_deriv X1 X2 r); + [ unfold deriv_deriv, deriv_to_pfunct in |- * + | apply deriv_restr ] ]) + end. +*) + +(* UNEXPORTED +Ltac Differentiate := + match goal with + | |- (Diffble_I (a:=?X1) (b:=?X2) _ ?X3) => + let r := pfunct_to_restr X1 X2 X3 in + (apply Diffble_I_wd with (deriv_to_pfunct X1 X2 r); + [ apply diffble_restr | unfold deriv_deriv, deriv_to_pfunct in |- * ]) + end. +*) + +(* UNEXPORTED +Ltac derivative_of f := + match constr:f with + | ([-C-]?X3) => constr:([-C-]ZeroR) + | FId => constr:([-C-]OneR) + | (?X3{+}?X4) => + let t1 := derivative_of X3 with t2 := derivative_of X4 in + constr:(t1{+}t2) + | ({--}?X3) => let t1 := derivative_of X3 in + constr:({--}t1) + | (?X3{-}?X4) => + let t1 := derivative_of X3 with t2 := derivative_of X4 in + constr:(t1{-}t2) + | (?X3{*}?X4) => + let t1 := derivative_of X3 + with t2 := derivative_of X4 + with t3 := constr:X3 + with t4 := constr:X4 in + constr:(t3{*}t2{+}t1{*}t4) + | (?X3{**}?X4) => + let t1 := derivative_of X4 with t2 := constr:X3 in + constr:(t2{**}t1) + | (?X3{^}0) => constr:([-C-]ZeroR) + | (?X3{^}S ?X4) => + let t1 := derivative_of X3 with t2 := constr:X3 with t3 := constr:X4 in + constr:(nring _ (S t3){**}(t1{*}t2{^}t3)) + | ({1/}?X3) => + let t1 := derivative_of X3 with t2 := constr:X3 in + constr:({--}(t1{/}t2{*}t2)) + | (?X3{/}?X4) => + let t1 := derivative_of X3 + with t2 := derivative_of X4 + with t3 := constr:X3 + with t4 := constr:X4 in + constr:((t1{*}t4{-}t3{*}t2){/}t4{*}t4) + | (?X3[o]?X4) => + let t1 := derivative_of X3 + with t2 := derivative_of X4 + with t3 := constr:X3 in + constr:((t3[o]t2){*}t1) + | ?X3 => + let t := constr:X3 in + match goal with + | H:(Derivative_I (b:=t) ?X4) |- _ => + let t1 := constr:X4 in + constr:t1 + end + end. +*) + +(* UNEXPORTED +Ltac Deriv_I_substR := + match goal with + | |- (Derivative_I _ ?X1 _) => + let t := derivative_of X1 in + apply Derivative_I_wdr with t + end. +*) + +(* end hide *) + diff --git a/matita/contribs/CoRN-Decl/tactics/DiffTactics3.ma b/matita/contribs/CoRN-Decl/tactics/DiffTactics3.ma new file mode 100644 index 000000000..658721890 --- /dev/null +++ b/matita/contribs/CoRN-Decl/tactics/DiffTactics3.ma @@ -0,0 +1,110 @@ +(**************************************************************************) +(* ___ *) +(* ||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/tactics/DiffTactics3". + +(* $Id: DiffTactics3.v,v 1.1.1.1 2004/02/05 16:25:44 lionelm Exp $ *) + +(* begin hide *) + +(* INCLUDE +MoreFunSeries +*) + +(* INCLUDE +Composition +*) + +(* INCLUDE +DiffTactics2 +*) + +(* UNEXPORTED +Ltac Deriv_substR := + match goal with + | |- (Derivative ?X1 _) => + let t := derivative_of X1 in + apply Derivative_wdr with t + end. +*) + +inline cic:/CoRN/tactics/DiffTactics3/symbPF.ind. + +(* + | ssum0 : nat->(nat->symbPF)->symbPF + | ssumx : (n:nat)((i:nat)(lt i n)->symbPF)->symbPF + | ssum : nat->nat->(nat->symbPF)->symbPF +*) + +inline cic:/CoRN/tactics/DiffTactics3/symb_to_PartIR.con. + +inline cic:/CoRN/tactics/DiffTactics3/symbPF_deriv.con. + +(* UNEXPORTED +Ltac PartIR_to_symbPF f := + match constr:f with + | ([-C-]?X3) => constr:(sconst X3) + | FId => constr:sid + | (?X3{+}?X4) => + let t1 := PartIR_to_symbPF X3 with t2 := PartIR_to_symbPF X4 in + constr:(splus t1 t2) + | ({--}?X3) => + let t1 := PartIR_to_symbPF X3 in + constr:(sinv t1) + | (?X3{-}?X4) => + let t1 := PartIR_to_symbPF X3 with t2 := PartIR_to_symbPF X4 in + constr:(sminus t1 t2) + | (?X3{*}?X4) => + let t1 := PartIR_to_symbPF X3 with t2 := PartIR_to_symbPF X4 in + constr:(smult t1 t2) + | (?X3{**}?X4) => + let t := PartIR_to_symbPF X4 in + constr:(sscalmult X3 t) + | (?X3{^}?X4) => + let t1 := PartIR_to_symbPF X3 in + constr:(snth t1 X4) + | ({1/}?X3) => + let t1 := PartIR_to_symbPF X3 in + constr:(srecip t1) + | (?X3{/}?X4) => + let t1 := PartIR_to_symbPF X3 with t2 := PartIR_to_symbPF X4 in + constr:(sdiv t1 t2) + | (?X3[o]?X4) => + let t1 := PartIR_to_symbPF X3 with t2 := PartIR_to_symbPF X4 in + constr:(scomp t1 t2) + | ?X3 => + let t := constr:X3 in + match goal with + | H:(Derivative ?X1 ?X2 t ?X4) |- _ => + constr:(shyp X1 X2 t X4 H) + | H:(Diffble ?X1 ?X2 t) |- _ => constr:(shyp' X1 X2 t H) + end + end. +*) + +(* UNEXPORTED +Ltac Derivative_Help := + match goal with + | |- (Derivative ?X1 ?X2 ?X3 ?X4) => + let r := PartIR_to_symbPF X3 in + (apply Derivative_wdr with (symbPF_deriv r); + [ unfold symbPF_deriv, symb_to_PartIR in |- * + | simpl in |- *; Deriv ]) + end. +*) + +(* end hide *) + diff --git a/matita/contribs/CoRN-Decl/tactics/FieldReflection.ma b/matita/contribs/CoRN-Decl/tactics/FieldReflection.ma new file mode 100644 index 000000000..53d9f3dd0 --- /dev/null +++ b/matita/contribs/CoRN-Decl/tactics/FieldReflection.ma @@ -0,0 +1,218 @@ +(**************************************************************************) +(* ___ *) +(* ||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/tactics/FieldReflection". + +(* $Id: FieldReflection.v,v 1.4 2004/04/23 10:01:06 lcf Exp $ *) + +(* begin hide *) + +(* INCLUDE +CFields +*) + +(* INCLUDE +AlgReflection +*) + +(* UNEXPORTED +Section Field_Interpretation_Function. +*) + +inline cic:/CoRN/tactics/FieldReflection/F.var. + +inline cic:/CoRN/tactics/FieldReflection/val.var. + +inline cic:/CoRN/tactics/FieldReflection/unop.var. + +inline cic:/CoRN/tactics/FieldReflection/binop.var. + +inline cic:/CoRN/tactics/FieldReflection/pfun.var. + +inline cic:/CoRN/tactics/FieldReflection/interpF.ind. + +inline cic:/CoRN/tactics/FieldReflection/wfF.con. + +inline cic:/CoRN/tactics/FieldReflection/xexprF.ind. + +inline cic:/CoRN/tactics/FieldReflection/xforgetF.con. + +inline cic:/CoRN/tactics/FieldReflection/xinterpF.con. + +inline cic:/CoRN/tactics/FieldReflection/xexprF2interpF.con. + +inline cic:/CoRN/tactics/FieldReflection/xexprF_diagram_commutes.con. + +inline cic:/CoRN/tactics/FieldReflection/xexprF2wfF.con. + +inline cic:/CoRN/tactics/FieldReflection/fexprF.ind. + +inline cic:/CoRN/tactics/FieldReflection/fexprF_var.con. + +inline cic:/CoRN/tactics/FieldReflection/fexprF_int.con. + +inline cic:/CoRN/tactics/FieldReflection/fexprF_plus.con. + +inline cic:/CoRN/tactics/FieldReflection/fexprF_mult.con. + +inline cic:/CoRN/tactics/FieldReflection/fforgetF.con. + +inline cic:/CoRN/tactics/FieldReflection/fexprF2interpF.con. + +inline cic:/CoRN/tactics/FieldReflection/fexprF2wfF.con. + +(* INCLUDE +Opaque_algebra +*) + +inline cic:/CoRN/tactics/FieldReflection/refl_interpF.con. + +inline cic:/CoRN/tactics/FieldReflection/interpF_wd.con. + +(* UNEXPORTED +End Field_Interpretation_Function. +*) + +(* UNEXPORTED +Section Field_NormCorrect. +*) + +inline cic:/CoRN/tactics/FieldReflection/F.var. + +inline cic:/CoRN/tactics/FieldReflection/val.var. + +inline cic:/CoRN/tactics/FieldReflection/unop.var. + +inline cic:/CoRN/tactics/FieldReflection/binop.var. + +inline cic:/CoRN/tactics/FieldReflection/pfun.var. + +(* +four kinds of exprs: + + I (expr_int _) + V (expr_var _) + M (expr_mult V M) + I + P (expr_plus M P) + I + +M: sorted on V +P: sorted on M, all M's not an I +*) + +(* UNEXPORTED +Opaque Zmult. +*) + +inline cic:/CoRN/tactics/FieldReflection/MI_mult_corr_F.con. + +(* UNEXPORTED +Transparent Zmult. +*) + +(* UNEXPORTED +Opaque MI_mult. +*) + +inline cic:/CoRN/tactics/FieldReflection/MV_mult_corr_F.con. + +(* UNEXPORTED +Transparent MI_mult. +*) + +(* UNEXPORTED +Opaque MV_mult MI_mult. +*) + +inline cic:/CoRN/tactics/FieldReflection/MM_mult_corr_F.con. + +(* UNEXPORTED +Transparent MV_mult MI_mult. +*) + +(* UNEXPORTED +Opaque MV_mult. +*) + +inline cic:/CoRN/tactics/FieldReflection/MM_plus_corr_F.con. + +(* UNEXPORTED +Transparent MV_mult. +*) + +(* UNEXPORTED +Opaque MM_plus. +*) + +inline cic:/CoRN/tactics/FieldReflection/PM_plus_corr_F.con. + +(* UNEXPORTED +Transparent MM_plus. +*) + +(* UNEXPORTED +Opaque PM_plus. +*) + +inline cic:/CoRN/tactics/FieldReflection/PP_plus_corr_F.con. + +(* UNEXPORTED +Transparent PM_plus. +*) + +(* UNEXPORTED +Opaque PM_plus MM_mult MI_mult. +*) + +inline cic:/CoRN/tactics/FieldReflection/PM_mult_corr_F.con. + +(* UNEXPORTED +Opaque PM_mult. +*) + +inline cic:/CoRN/tactics/FieldReflection/PP_mult_corr_F.con. + +(* UNEXPORTED +Transparent PP_plus PM_mult PP_mult PM_plus MI_mult. +*) + +inline cic:/CoRN/tactics/FieldReflection/FF_plus_corr_F.con. + +inline cic:/CoRN/tactics/FieldReflection/FF_mult_corr_F.con. + +(* UNEXPORTED +Transparent FF_div. +*) + +inline cic:/CoRN/tactics/FieldReflection/FF_div_corr_F.con. + +inline cic:/CoRN/tactics/FieldReflection/NormF_corr.con. + +inline cic:/CoRN/tactics/FieldReflection/Norm_wfF.con. + +inline cic:/CoRN/tactics/FieldReflection/expr_is_zero_corr_F.con. + +inline cic:/CoRN/tactics/FieldReflection/Tactic_lemma_zero_F.con. + +inline cic:/CoRN/tactics/FieldReflection/Tactic_lemmaF.con. + +(* UNEXPORTED +End Field_NormCorrect. +*) + +(* end hide *) + diff --git a/matita/contribs/CoRN-Decl/tactics/GroupReflection.ma b/matita/contribs/CoRN-Decl/tactics/GroupReflection.ma new file mode 100644 index 000000000..15858b6be --- /dev/null +++ b/matita/contribs/CoRN-Decl/tactics/GroupReflection.ma @@ -0,0 +1,244 @@ +(**************************************************************************) +(* ___ *) +(* ||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/tactics/GroupReflection". + +(* $Id: GroupReflection.v,v 1.3 2004/04/23 10:01:06 lcf Exp $ *) + +(* begin hide *) + +(* INCLUDE +CAbGroups +*) + +(* INCLUDE +AlgReflection +*) + +(* UNEXPORTED +Section Group_Interpretation_Function. +*) + +inline cic:/CoRN/tactics/GroupReflection/G.var. + +inline cic:/CoRN/tactics/GroupReflection/val.var. + +inline cic:/CoRN/tactics/GroupReflection/unop.var. + +inline cic:/CoRN/tactics/GroupReflection/binop.var. + +inline cic:/CoRN/tactics/GroupReflection/pfun.var. + +inline cic:/CoRN/tactics/GroupReflection/interpG.ind. + +inline cic:/CoRN/tactics/GroupReflection/wfG.con. + +inline cic:/CoRN/tactics/GroupReflection/xexprG.ind. + +inline cic:/CoRN/tactics/GroupReflection/xforgetG.con. + +inline cic:/CoRN/tactics/GroupReflection/xinterpG.con. + +inline cic:/CoRN/tactics/GroupReflection/xexprG2interpG.con. + +inline cic:/CoRN/tactics/GroupReflection/xexprG_diagram_commutes.con. + +inline cic:/CoRN/tactics/GroupReflection/xexprG2wfG.con. + +inline cic:/CoRN/tactics/GroupReflection/fexprG.ind. + +inline cic:/CoRN/tactics/GroupReflection/fexprG_var.con. + +inline cic:/CoRN/tactics/GroupReflection/fexprG_zero.con. + +inline cic:/CoRN/tactics/GroupReflection/fexprG_plus.con. + +inline cic:/CoRN/tactics/GroupReflection/fexprG_mult_int.con. + +inline cic:/CoRN/tactics/GroupReflection/fforgetG.con. + +inline cic:/CoRN/tactics/GroupReflection/fexprG2interp.con. + +inline cic:/CoRN/tactics/GroupReflection/fexprG2wf.con. + +(* UNEXPORTED +Opaque csg_crr. +*) + +(* UNEXPORTED +Opaque cm_crr. +*) + +(* UNEXPORTED +Opaque cg_crr. +*) + +(* UNEXPORTED +Opaque csf_fun. +*) + +(* UNEXPORTED +Opaque csbf_fun. +*) + +(* UNEXPORTED +Opaque csr_rel. +*) + +(* UNEXPORTED +Opaque cs_eq. +*) + +(* UNEXPORTED +Opaque cs_neq. +*) + +(* UNEXPORTED +Opaque cs_ap. +*) + +(* UNEXPORTED +Opaque cm_unit. +*) + +(* UNEXPORTED +Opaque csg_op. +*) + +(* UNEXPORTED +Opaque cg_inv. +*) + +(* UNEXPORTED +Opaque cg_minus. +*) + +inline cic:/CoRN/tactics/GroupReflection/refl_interpG.con. + +inline cic:/CoRN/tactics/GroupReflection/interpG_wd.con. + +(* UNEXPORTED +End Group_Interpretation_Function. +*) + +(* UNEXPORTED +Section Group_NormCorrect. +*) + +inline cic:/CoRN/tactics/GroupReflection/G.var. + +inline cic:/CoRN/tactics/GroupReflection/val.var. + +inline cic:/CoRN/tactics/GroupReflection/unop.var. + +inline cic:/CoRN/tactics/GroupReflection/binop.var. + +inline cic:/CoRN/tactics/GroupReflection/pfun.var. + +(* +four kinds of exprs: + + I (expr_int _) + V (expr_var _) + M (expr_mult V M) + I + P (expr_plus M P) + I + +M: sorted on V +P: sorted on M, all M's not an I +*) + +inline cic:/CoRN/tactics/GroupReflection/MI_mult_comm_int.con. + +(* UNEXPORTED +Opaque Zmult. +*) + +inline cic:/CoRN/tactics/GroupReflection/MI_mult_corr_G.con. + +(* UNEXPORTED +Transparent Zmult. +*) + +(* UNEXPORTED +Opaque MI_mult. +*) + +inline cic:/CoRN/tactics/GroupReflection/MV_mult_corr_G.con. + +(* UNEXPORTED +Opaque MV_mult. +*) + +inline cic:/CoRN/tactics/GroupReflection/MM_mult_corr_G.con. + +(* UNEXPORTED +Transparent MV_mult MI_mult. +*) + +(* UNEXPORTED +Opaque MV_mult. +*) + +inline cic:/CoRN/tactics/GroupReflection/MM_plus_corr_G.con. + +(* UNEXPORTED +Transparent MV_mult. +*) + +(* UNEXPORTED +Opaque MM_plus. +*) + +inline cic:/CoRN/tactics/GroupReflection/PM_plus_corr_G.con. + +(* UNEXPORTED +Transparent MM_plus. +*) + +(* UNEXPORTED +Opaque PM_plus. +*) + +inline cic:/CoRN/tactics/GroupReflection/PP_plus_corr_G.con. + +(* UNEXPORTED +Transparent PM_plus. +*) + +(* UNEXPORTED +Opaque PM_plus MM_mult MI_mult. +*) + +inline cic:/CoRN/tactics/GroupReflection/PM_mult_corr_G.con. + +(* UNEXPORTED +Opaque PM_mult. +*) + +inline cic:/CoRN/tactics/GroupReflection/PP_mult_corr_G.con. + +inline cic:/CoRN/tactics/GroupReflection/NormG_corr_G.con. + +inline cic:/CoRN/tactics/GroupReflection/Tactic_lemmaG.con. + +(* UNEXPORTED +End Group_NormCorrect. +*) + +(* end hide *) + diff --git a/matita/contribs/CoRN-Decl/tactics/Opaque_algebra.ma b/matita/contribs/CoRN-Decl/tactics/Opaque_algebra.ma new file mode 100644 index 000000000..a5139538e --- /dev/null +++ b/matita/contribs/CoRN-Decl/tactics/Opaque_algebra.ma @@ -0,0 +1,98 @@ +(**************************************************************************) +(* ___ *) +(* ||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/tactics/Opaque_algebra". + +(* $Id: Opaque_algebra.v,v 1.1 2004/02/11 10:56:57 lcf Exp $ *) + +(* Opaque cs_crr. *) + +(* UNEXPORTED +Opaque csg_crr. +*) + +(* UNEXPORTED +Opaque cm_crr. +*) + +(* UNEXPORTED +Opaque cg_crr. +*) + +(* UNEXPORTED +Opaque cr_crr. +*) + +(* UNEXPORTED +Opaque cf_crr. +*) + +(* UNEXPORTED +Opaque csf_fun. +*) + +(* UNEXPORTED +Opaque csbf_fun. +*) + +(* UNEXPORTED +Opaque csr_rel. +*) + +(* UNEXPORTED +Opaque cs_eq. +*) + +(* UNEXPORTED +Opaque cs_neq. +*) + +(* UNEXPORTED +Opaque cs_ap. +*) + +(* UNEXPORTED +Opaque cm_unit. +*) + +(* UNEXPORTED +Opaque csg_op. +*) + +(* UNEXPORTED +Opaque cg_inv. +*) + +(* UNEXPORTED +Opaque cg_minus. +*) + +(* UNEXPORTED +Opaque cr_one. +*) + +(* UNEXPORTED +Opaque cr_mult. +*) + +(* UNEXPORTED +Opaque nexp_op. +*) + +(* UNEXPORTED +Opaque cf_div. +*) + diff --git a/matita/contribs/CoRN-Decl/tactics/RingReflection.ma b/matita/contribs/CoRN-Decl/tactics/RingReflection.ma new file mode 100644 index 000000000..bd8849850 --- /dev/null +++ b/matita/contribs/CoRN-Decl/tactics/RingReflection.ma @@ -0,0 +1,322 @@ +(**************************************************************************) +(* ___ *) +(* ||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/tactics/RingReflection". + +(* $Id: RingReflection.v,v 1.4 2004/04/23 10:01:06 lcf Exp $ *) + +(* begin hide *) + +(* INCLUDE +CRings +*) + +(* INCLUDE +AlgReflection +*) + +(* UNEXPORTED +Section Ring_Interpretation_Function. +*) + +inline cic:/CoRN/tactics/RingReflection/R.var. + +inline cic:/CoRN/tactics/RingReflection/val.var. + +inline cic:/CoRN/tactics/RingReflection/unop.var. + +inline cic:/CoRN/tactics/RingReflection/binop.var. + +inline cic:/CoRN/tactics/RingReflection/pfun.var. + +inline cic:/CoRN/tactics/RingReflection/interpR.ind. + +inline cic:/CoRN/tactics/RingReflection/wfR.con. + +inline cic:/CoRN/tactics/RingReflection/xexprR.ind. + +inline cic:/CoRN/tactics/RingReflection/xforgetR.con. + +inline cic:/CoRN/tactics/RingReflection/xinterpR.con. + +inline cic:/CoRN/tactics/RingReflection/xexprR2interpR.con. + +inline cic:/CoRN/tactics/RingReflection/xexprR_diagram_commutes.con. + +inline cic:/CoRN/tactics/RingReflection/xexprR2wfR.con. + +inline cic:/CoRN/tactics/RingReflection/fexprR.ind. + +inline cic:/CoRN/tactics/RingReflection/fexprR_var.con. + +inline cic:/CoRN/tactics/RingReflection/fexprR_int.con. + +inline cic:/CoRN/tactics/RingReflection/fexprR_plus.con. + +inline cic:/CoRN/tactics/RingReflection/fexprR_mult.con. + +inline cic:/CoRN/tactics/RingReflection/fforgetR.con. + +inline cic:/CoRN/tactics/RingReflection/fexprR2interp.con. + +inline cic:/CoRN/tactics/RingReflection/fexprR2wf.con. + +(* UNEXPORTED +Opaque csg_crr. +*) + +(* UNEXPORTED +Opaque cm_crr. +*) + +(* UNEXPORTED +Opaque cg_crr. +*) + +(* UNEXPORTED +Opaque cr_crr. +*) + +(* UNEXPORTED +Opaque csf_fun. +*) + +(* UNEXPORTED +Opaque csbf_fun. +*) + +(* UNEXPORTED +Opaque csr_rel. +*) + +(* UNEXPORTED +Opaque cs_eq. +*) + +(* UNEXPORTED +Opaque cs_neq. +*) + +(* UNEXPORTED +Opaque cs_ap. +*) + +(* UNEXPORTED +Opaque cm_unit. +*) + +(* UNEXPORTED +Opaque csg_op. +*) + +(* UNEXPORTED +Opaque cg_inv. +*) + +(* UNEXPORTED +Opaque cg_minus. +*) + +(* UNEXPORTED +Opaque cr_one. +*) + +(* UNEXPORTED +Opaque cr_mult. +*) + +(* UNEXPORTED +Opaque nexp_op. +*) + +inline cic:/CoRN/tactics/RingReflection/refl_interpR.con. + +inline cic:/CoRN/tactics/RingReflection/interpR_wd.con. + +(* UNEXPORTED +End Ring_Interpretation_Function. +*) + +(* UNEXPORTED +Section Ring_NormCorrect. +*) + +inline cic:/CoRN/tactics/RingReflection/R.var. + +inline cic:/CoRN/tactics/RingReflection/val.var. + +inline cic:/CoRN/tactics/RingReflection/unop.var. + +inline cic:/CoRN/tactics/RingReflection/binop.var. + +inline cic:/CoRN/tactics/RingReflection/pfun.var. + +(* +four kinds of exprs: + + I (expr_int _) + V (expr_var _) + M (expr_mult V M) + I + P (expr_plus M P) + I + +M: sorted on V +P: sorted on M, all M's not an I +*) + +(* UNEXPORTED +Opaque Zmult. +*) + +inline cic:/CoRN/tactics/RingReflection/MI_mult_corr_R.con. + +(* UNEXPORTED +Transparent Zmult. +*) + +(* UNEXPORTED +Opaque MI_mult. +*) + +inline cic:/CoRN/tactics/RingReflection/MV_mult_corr_R.con. + +(* UNEXPORTED +Transparent MI_mult. +*) + +(* UNEXPORTED +Opaque MV_mult MI_mult. +*) + +inline cic:/CoRN/tactics/RingReflection/MM_mult_corr_R.con. + +(* UNEXPORTED +Transparent MV_mult MI_mult. +*) + +(* UNEXPORTED +Opaque MV_mult. +*) + +inline cic:/CoRN/tactics/RingReflection/MM_plus_corr_R.con. + +(* UNEXPORTED +Transparent MV_mult. +*) + +(* UNEXPORTED +Opaque MM_plus. +*) + +inline cic:/CoRN/tactics/RingReflection/PM_plus_corr_R.con. + +(* UNEXPORTED +Transparent MM_plus. +*) + +(* UNEXPORTED +Opaque PM_plus. +*) + +inline cic:/CoRN/tactics/RingReflection/PP_plus_corr_R.con. + +(* UNEXPORTED +Transparent PM_plus. +*) + +(* UNEXPORTED +Opaque PM_plus MM_mult MI_mult. +*) + +inline cic:/CoRN/tactics/RingReflection/PM_mult_corr_R.con. + +(* UNEXPORTED +Opaque PM_mult. +*) + +inline cic:/CoRN/tactics/RingReflection/PP_mult_corr_R.con. + +(* +Transparent PP_plus PM_mult PP_mult PM_plus MI_mult. +Lemma FF_plus_corr_R : (e,f:expr; x,y:R) + (II e x)->(II f y)->(II (FF_plus e f) x[+]y). +Cut (e1,e2,f1,f2:expr; x,y:R) + (II (expr_div e1 e2) x) + ->(II (expr_div f1 f2) y) + ->(II + (expr_div (PP_plus (PP_mult e1 f2) (PP_mult e2 f1)) + (PP_mult e2 f2)) x[+]y). +Cut (e,f:expr; x,y:R)(II e x)->(II f y)->(II (expr_plus e f) x[+]y). +Intros H H0 e f. +Elim e; Elim f; Intros; Simpl; Auto. +Intros. Apply interpR_plus with x y; Algebra. +Intros. Inversion H. Inversion H0. +Apply interpR_div_one with x[+]y. +Algebra. +Apply interpR_wd with x0[*]One[+]One[*]x1. +Apply PP_plus_corr_R; Apply PP_mult_corr_R; Auto; + Apply interpR_int with k:=`1`; Algebra. +Step_final x0[+]x1. +Apply interpR_wd with (One::R)[*]One; Algebra. +Apply PP_mult_corr_R; Auto. +Qed. + +Lemma FF_mult_corr_R : (e,f:expr; x,y:R) + (II e x)->(II f y)->(II (FF_mult e f) x[*]y). +Cut (e1,e2,f1,f2:expr; x,y:R) + (II (expr_div e1 e2) x) + ->(II (expr_div f1 f2) y) + ->(II (expr_div (PP_mult e1 f1) (PP_mult e2 f2)) x[*]y). +Cut (e,f:expr; x,y:R)(II e x)->(II f y)->(II (expr_mult e f) x[*]y). +Intros H H0 e f. +Elim e; Elim f; Intros; Simpl; Auto. +Intros. Apply interpR_mult with x y; Algebra. +Intros. Inversion H. Inversion H0. +Apply interpR_div_one with x0[*]x1. +Algebra. +Apply PP_mult_corr_R; Auto. +Apply interpR_wd with (One::R)[*]One; Algebra. +Apply PP_mult_corr_R; Auto. +Qed. + +Transparent FF_div. +Lemma FF_div_corr_R : (e,f:expr; x:R) + (II (expr_div e f) x)->(II (FF_div e f) x). +Intro e; Case e; Simpl; Auto. +Intros e0 e1 f; Case f; Simpl; Auto. +Intros. +Inversion H; Simpl. +Inversion H3; Inversion H5. +Apply interpR_div_one with x1[*]One. +astepl x1. Step_final x0. +Apply PP_mult_corr_R; Auto. +Apply interpR_wd with One[*]x2. +Apply PP_mult_corr_R; Auto. +Step_final x2. +Qed. +*) + +inline cic:/CoRN/tactics/RingReflection/NormR_corr.con. + +inline cic:/CoRN/tactics/RingReflection/Tactic_lemmaR.con. + +(* UNEXPORTED +End Ring_NormCorrect. +*) + +(* end hide *) + diff --git a/matita/contribs/CoRN-Decl/tactics/Step.ma b/matita/contribs/CoRN-Decl/tactics/Step.ma new file mode 100644 index 000000000..1008be2e4 --- /dev/null +++ b/matita/contribs/CoRN-Decl/tactics/Step.ma @@ -0,0 +1,74 @@ +(**************************************************************************) +(* ___ *) +(* ||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/tactics/Step". + +(* begin hide *) + +(* UNEXPORTED +Declare ML Module "rational". +*) + +(* UNEXPORTED +Ltac Algebra := auto with algebra_r algebra algebra_c algebra_s. +*) + +(* UNEXPORTED +Ltac astepl x := stepl x; [idtac | Algebra]. +*) + +(* UNEXPORTED +Ltac astepr x := stepr x; [idtac | Algebra]. +*) + +(* UNEXPORTED +Tactic Notation "astepl" constr(c) := astepl c. +*) + +(* UNEXPORTED +Tactic Notation "astepr" constr(c) := astepr c. +*) + +(* UNEXPORTED +Ltac rstepl x := stepl x; [idtac | rational]. +*) + +(* UNEXPORTED +Ltac rstepr x := stepr x; [idtac | rational]. +*) + +(* UNEXPORTED +Tactic Notation "rstepl" constr(c) := rstepl c. +*) + +(* UNEXPORTED +Tactic Notation "rstepr" constr(c) := rstepr c. +*) + +(* UNEXPORTED +Ltac Included := eauto with included. +*) + +(* end hide *) + +(*#* * [algebra] and [step] +These tactics simplify equational reasoning. See the references for a +description. + +* [Included] +[Included] will solve goals of the form [(included A (dom F))]. +*) + diff --git a/matita/contribs/CoRN-Decl/tactics/Transparent_algebra.ma b/matita/contribs/CoRN-Decl/tactics/Transparent_algebra.ma new file mode 100644 index 000000000..490ca4bb8 --- /dev/null +++ b/matita/contribs/CoRN-Decl/tactics/Transparent_algebra.ma @@ -0,0 +1,100 @@ +(**************************************************************************) +(* ___ *) +(* ||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/tactics/Transparent_algebra". + +(* $Id: Transparent_algebra.v,v 1.1 2004/02/11 10:56:58 lcf Exp $ *) + +(* UNEXPORTED +Transparent cs_crr. +*) + +(* UNEXPORTED +Transparent csg_crr. +*) + +(* UNEXPORTED +Transparent cm_crr. +*) + +(* UNEXPORTED +Transparent cg_crr. +*) + +(* UNEXPORTED +Transparent cr_crr. +*) + +(* UNEXPORTED +Transparent cf_crr. +*) + +(* UNEXPORTED +Transparent csf_fun. +*) + +(* UNEXPORTED +Transparent csbf_fun. +*) + +(* UNEXPORTED +Transparent csr_rel. +*) + +(* UNEXPORTED +Transparent cs_eq. +*) + +(* UNEXPORTED +Transparent cs_neq. +*) + +(* UNEXPORTED +Transparent cs_ap. +*) + +(* UNEXPORTED +Transparent cm_unit. +*) + +(* UNEXPORTED +Transparent csg_op. +*) + +(* UNEXPORTED +Transparent cg_inv. +*) + +(* UNEXPORTED +Transparent cg_minus. +*) + +(* UNEXPORTED +Transparent cr_one. +*) + +(* UNEXPORTED +Transparent cr_mult. +*) + +(* UNEXPORTED +Transparent nexp_op. +*) + +(* UNEXPORTED +Transparent cf_div. +*) + diff --git a/matita/contribs/CoRN-Decl/transc/Exponential.ma b/matita/contribs/CoRN-Decl/transc/Exponential.ma new file mode 100644 index 000000000..8a1b637c6 --- /dev/null +++ b/matita/contribs/CoRN-Decl/transc/Exponential.ma @@ -0,0 +1,310 @@ +(**************************************************************************) +(* ___ *) +(* ||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/transc/Exponential". + +(* $Id: Exponential.v,v 1.7 2004/04/23 10:01:07 lcf Exp $ *) + +(* INCLUDE +TaylorSeries +*) + +(* UNEXPORTED +Opaque Min Max. +*) + +(*#* *Exponential and Logarithmic Functions + +The main properties of the exponential and logarithmic functions. + +**Properties of Exponential + +Exponential is strongly extensional and well defined. +*) + +inline cic:/CoRN/transc/Exponential/Exp_strext.con. + +inline cic:/CoRN/transc/Exponential/Exp_wd.con. + +(* UNEXPORTED +Hint Resolve Exp_wd: algebra. +*) + +inline cic:/CoRN/transc/Exponential/Exp_zero.con. + +(*#* $e^1=e$#e1=e#, where [e] was defined a long time ago. +*) + +inline cic:/CoRN/transc/Exponential/Exp_one.con. + +(* UNEXPORTED +Hint Resolve Exp_zero Exp_one: algebra. +*) + +(*#* +The exponential function is its own derivative, and continuous. +*) + +inline cic:/CoRN/transc/Exponential/Derivative_Exp.con. + +(* UNEXPORTED +Hint Resolve Derivative_Exp: derivate. +*) + +inline cic:/CoRN/transc/Exponential/Continuous_Exp.con. + +(* UNEXPORTED +Hint Resolve Continuous_Exp: continuous. +*) + +(*#* +Negative numbers are projected into the interval [[0,1]]. +*) + +inline cic:/CoRN/transc/Exponential/One_less_Exp.con. + +inline cic:/CoRN/transc/Exponential/One_leEq_Exp.con. + +inline cic:/CoRN/transc/Exponential/Exp_pos'.con. + +(*#* +Exponential is the unique function which evaluates to 1 at 0 and is +its own derivative. +*) + +inline cic:/CoRN/transc/Exponential/Exp_unique_lemma.con. + +inline cic:/CoRN/transc/Exponential/Exp_bnd.con. + +(* UNEXPORTED +Opaque Expon. +*) + +(* UNEXPORTED +Transparent Expon. +*) + +inline cic:/CoRN/transc/Exponential/Exp_unique.con. + +(* UNEXPORTED +Opaque Expon. +*) + +inline cic:/CoRN/transc/Exponential/Exp_plus_pos.con. + +(*#* The usual rules for computing the exponential of a sum. *) + +inline cic:/CoRN/transc/Exponential/Exp_plus.con. + +(* UNEXPORTED +Hint Resolve Exp_plus: algebra. +*) + +inline cic:/CoRN/transc/Exponential/Exp_plus'.con. + +inline cic:/CoRN/transc/Exponential/Exp_inv_char.con. + +(* UNEXPORTED +Hint Resolve Exp_inv_char: algebra. +*) + +(*#* The exponential of any number is always positive---and thus apart +from zero. +*) + +inline cic:/CoRN/transc/Exponential/Exp_pos.con. + +inline cic:/CoRN/transc/Exponential/Exp_ap_zero.con. + +(*#* +And the rules for the exponential of differences. +*) + +inline cic:/CoRN/transc/Exponential/Exp_inv.con. + +(* UNEXPORTED +Hint Resolve Exp_inv: algebra. +*) + +inline cic:/CoRN/transc/Exponential/Exp_minus.con. + +(* UNEXPORTED +Hint Resolve Exp_minus: algebra. +*) + +inline cic:/CoRN/transc/Exponential/Exp_inv'.con. + +inline cic:/CoRN/transc/Exponential/Exp_minus'.con. + +(*#* Exponential is a monotonous function. *) + +inline cic:/CoRN/transc/Exponential/Exp_less_One.con. + +inline cic:/CoRN/transc/Exponential/Exp_leEq_One.con. + +inline cic:/CoRN/transc/Exponential/Exp_resp_less.con. + +inline cic:/CoRN/transc/Exponential/Exp_resp_leEq.con. + +(*#* **Properties of Logarithm + +The logarithm is a continuous function with derivative [One[/]x]. +*) + +inline cic:/CoRN/transc/Exponential/Derivative_Log.con. + +(* UNEXPORTED +Hint Resolve Derivative_Log: derivate. +*) + +inline cic:/CoRN/transc/Exponential/Continuous_Log.con. + +(* UNEXPORTED +Hint Resolve Continuous_Log: continuous. +*) + +(*#* Logarithm of [One]. *) + +inline cic:/CoRN/transc/Exponential/Log_one.con. + +(* UNEXPORTED +Hint Resolve Log_one: algebra. +*) + +(*#* The logarithm is (strongly) extensional. *) + +inline cic:/CoRN/transc/Exponential/Log_strext.con. + +inline cic:/CoRN/transc/Exponential/Log_wd.con. + +(* UNEXPORTED +Hint Resolve Log_wd: algebra. +*) + +(*#* The rule for the logarithm of the product. *) + +(* UNEXPORTED +Opaque Logarithm. +*) + +(* UNEXPORTED +Transparent Logarithm. +*) + +inline cic:/CoRN/transc/Exponential/Log_mult.con. + +(* UNEXPORTED +Hint Resolve Log_mult: algebra. +*) + +inline cic:/CoRN/transc/Exponential/Log_mult'.con. + +(*#* A characterization of the domain of the logarithm. *) + +inline cic:/CoRN/transc/Exponential/Log_domain.con. + +(* UNEXPORTED +Opaque Expon Logarithm. +*) + +(*#* $\log(e^x)=x$#log(ex)=x# for all [x], both as a +numerical and as a functional equation. +*) + +inline cic:/CoRN/transc/Exponential/Log_Exp_inv.con. + +inline cic:/CoRN/transc/Exponential/Log_Exp.con. + +(* UNEXPORTED +Transparent Logarithm. +*) + +(* UNEXPORTED +Hint Resolve Log_Exp: algebra. +*) + +inline cic:/CoRN/transc/Exponential/Exp_Log_lemma.con. + +(*#* The converse expression. *) + +inline cic:/CoRN/transc/Exponential/Exp_Log.con. + +(* UNEXPORTED +Hint Resolve Exp_Log: algebra. +*) + +(*#* Exponential and logarithm are injective. *) + +inline cic:/CoRN/transc/Exponential/Exp_cancel.con. + +inline cic:/CoRN/transc/Exponential/Log_cancel.con. + +(* UNEXPORTED +Opaque Logarithm. +*) + +(*#* And the final characterization as inverse functions. *) + +inline cic:/CoRN/transc/Exponential/Exp_Log_inv.con. + +inline cic:/CoRN/transc/Exponential/Log_E.con. + +(* UNEXPORTED +Hint Resolve Log_E: algebra. +*) + +(*#* Several rules regarding inequalities. *) + +inline cic:/CoRN/transc/Exponential/Log_cancel_less.con. + +inline cic:/CoRN/transc/Exponential/Log_cancel_leEq.con. + +inline cic:/CoRN/transc/Exponential/Log_resp_less.con. + +inline cic:/CoRN/transc/Exponential/Log_resp_leEq.con. + +inline cic:/CoRN/transc/Exponential/Exp_cancel_less.con. + +inline cic:/CoRN/transc/Exponential/Exp_cancel_leEq.con. + +inline cic:/CoRN/transc/Exponential/Log_less_Zero.con. + +inline cic:/CoRN/transc/Exponential/Log_leEq_Zero.con. + +inline cic:/CoRN/transc/Exponential/Zero_less_Log.con. + +inline cic:/CoRN/transc/Exponential/Zero_leEq_Log.con. + +(*#* Finally, rules for logarithm of quotients. *) + +inline cic:/CoRN/transc/Exponential/Log_recip_char.con. + +inline cic:/CoRN/transc/Exponential/Log_recip.con. + +(* UNEXPORTED +Hint Resolve Log_recip: algebra. +*) + +inline cic:/CoRN/transc/Exponential/Log_recip'.con. + +inline cic:/CoRN/transc/Exponential/Log_div.con. + +(* UNEXPORTED +Hint Resolve Log_div: algebra. +*) + +inline cic:/CoRN/transc/Exponential/Log_div'.con. + diff --git a/matita/contribs/CoRN-Decl/transc/InvTrigonom.ma b/matita/contribs/CoRN-Decl/transc/InvTrigonom.ma new file mode 100644 index 000000000..6ec5b90b4 --- /dev/null +++ b/matita/contribs/CoRN-Decl/transc/InvTrigonom.ma @@ -0,0 +1,300 @@ +(**************************************************************************) +(* ___ *) +(* ||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/transc/InvTrigonom". + +(* $Id: InvTrigonom.v,v 1.9 2004/04/23 10:01:07 lcf Exp $ *) + +(* INCLUDE +RealPowers +*) + +(* INCLUDE +TrigMon +*) + +(* INCLUDE +StrongIVT +*) + +(*#* printing ArcSin %\ensuremath{\arcsin}% *) + +(*#* printing ArcCos %\ensuremath{\arccos}% *) + +(*#* printing ArcTan %\ensuremath{\arctan}% *) + +(*#* *Inverse Trigonometric Functions + +**Definitions + +We will now define arcsine, arccosine and arctangent as indefinite +integrals and prove their main properties. We begin by proving that +the appropriate indefinite integrals can be defined, then prove the +main properties of the function. + +Arccosine is defined in terms of arcsine by the relation +[ArcCos(x)=Pi[/]Two-ArcSin(x)]. + +***Arcsine +*) + +(* UNEXPORTED +Opaque Sine Cosine Expon Logarithm. +*) + +inline cic:/CoRN/transc/InvTrigonom/ArcSin_def_lemma.con. + +inline cic:/CoRN/transc/InvTrigonom/ArcSin_def_zero.con. + +inline cic:/CoRN/transc/InvTrigonom/ArcSin.con. + +inline cic:/CoRN/transc/InvTrigonom/ArcSin_domain.con. + +inline cic:/CoRN/transc/InvTrigonom/Continuous_ArcSin.con. + +inline cic:/CoRN/transc/InvTrigonom/Derivative_ArcSin.con. + +(* UNEXPORTED +Hint Resolve Derivative_ArcSin: derivate. +*) + +(* UNEXPORTED +Hint Resolve Continuous_ArcSin: continuous. +*) + +(*#* ***Arccosine +*) + +inline cic:/CoRN/transc/InvTrigonom/ArcCos.con. + +inline cic:/CoRN/transc/InvTrigonom/ArcCos_domain.con. + +inline cic:/CoRN/transc/InvTrigonom/Continuous_ArcCos.con. + +inline cic:/CoRN/transc/InvTrigonom/Derivative_ArcCos.con. + +(*#* ***Arctangent +*) + +inline cic:/CoRN/transc/InvTrigonom/ArcTan_def_lemma.con. + +inline cic:/CoRN/transc/InvTrigonom/ArcTang.con. + +inline cic:/CoRN/transc/InvTrigonom/ArcTan_domain.con. + +inline cic:/CoRN/transc/InvTrigonom/ArcTan.con. + +inline cic:/CoRN/transc/InvTrigonom/Continuous_ArcTan.con. + +inline cic:/CoRN/transc/InvTrigonom/Derivative_ArcTan.con. + +(* UNEXPORTED +Hint Resolve Derivative_ArcCos Derivative_ArcTan: derivate. +*) + +(* UNEXPORTED +Hint Resolve Continuous_ArcCos Continuous_ArcTan: continuous. +*) + +(* UNEXPORTED +Section Inverses. +*) + +(*#* **Composition properties + +We now prove that this functions are in fact inverses to the corresponding trigonometric functions. + +***Sine and Arcsine +*) + +inline cic:/CoRN/transc/InvTrigonom/maps_Sin.con. + +inline cic:/CoRN/transc/InvTrigonom/ArcSin_Sin_inv.con. + +(* UNEXPORTED +Opaque ArcSin. +*) + +inline cic:/CoRN/transc/InvTrigonom/ArcSin_Sin.con. + +(* UNEXPORTED +Transparent ArcSin. +*) + +inline cic:/CoRN/transc/InvTrigonom/ArcSin_range.con. + +(* UNEXPORTED +Transparent ArcSin. +*) + +inline cic:/CoRN/transc/InvTrigonom/Sin_ArcSin.con. + +inline cic:/CoRN/transc/InvTrigonom/Sin_ArcSin_inv.con. + +inline cic:/CoRN/transc/InvTrigonom/ArcSin_resp_leEq.con. + +(*#* ***Cosine and Arcosine +*) + +inline cic:/CoRN/transc/InvTrigonom/ArcCos_Cos.con. + +inline cic:/CoRN/transc/InvTrigonom/Cos_ArcCos.con. + +inline cic:/CoRN/transc/InvTrigonom/ArcCos_Cos_inv.con. + +inline cic:/CoRN/transc/InvTrigonom/Cos_ArcCos_inv.con. + +(* UNEXPORTED +Opaque ArcSin. +*) + +inline cic:/CoRN/transc/InvTrigonom/ArcCos_resp_leEq.con. + +(*#* ***Tangent and Arctangent +*) + +inline cic:/CoRN/transc/InvTrigonom/maps_Tan.con. + +(* UNEXPORTED +Opaque Tang. +*) + +inline cic:/CoRN/transc/InvTrigonom/ArcTan_Tan_inv.con. + +(* UNEXPORTED +Transparent Tang. +*) + +(* UNEXPORTED +Opaque ArcTang. +*) + +inline cic:/CoRN/transc/InvTrigonom/ArcTan_Tan.con. + +(* UNEXPORTED +Opaque iprop. +*) + +(* UNEXPORTED +Transparent iprop. +*) + +(* UNEXPORTED +Opaque Cos. +*) + +inline cic:/CoRN/transc/InvTrigonom/Tan_ilim.con. + +(* UNEXPORTED +Opaque Min. +*) + +(* UNEXPORTED +Transparent Cos. +*) + +(* UNEXPORTED +Section ArcTan_Range. +*) + +inline cic:/CoRN/transc/InvTrigonom/x.var. + +(* begin hide *) + +inline cic:/CoRN/transc/InvTrigonom/min.con. + +inline cic:/CoRN/transc/InvTrigonom/max.con. + +inline cic:/CoRN/transc/InvTrigonom/min1.con. + +inline cic:/CoRN/transc/InvTrigonom/min2.con. + +inline cic:/CoRN/transc/InvTrigonom/min3.con. + +inline cic:/CoRN/transc/InvTrigonom/min4.con. + +inline cic:/CoRN/transc/InvTrigonom/max1.con. + +inline cic:/CoRN/transc/InvTrigonom/max2.con. + +inline cic:/CoRN/transc/InvTrigonom/max3.con. + +inline cic:/CoRN/transc/InvTrigonom/max4.con. + +inline cic:/CoRN/transc/InvTrigonom/min5.con. + +inline cic:/CoRN/transc/InvTrigonom/min6.con. + +inline cic:/CoRN/transc/InvTrigonom/max5.con. + +inline cic:/CoRN/transc/InvTrigonom/max6.con. + +inline cic:/CoRN/transc/InvTrigonom/a.con. + +inline cic:/CoRN/transc/InvTrigonom/a1.con. + +inline cic:/CoRN/transc/InvTrigonom/a2.con. + +inline cic:/CoRN/transc/InvTrigonom/a3.con. + +inline cic:/CoRN/transc/InvTrigonom/a4.con. + +inline cic:/CoRN/transc/InvTrigonom/a5.con. + +inline cic:/CoRN/transc/InvTrigonom/b.con. + +inline cic:/CoRN/transc/InvTrigonom/b1.con. + +inline cic:/CoRN/transc/InvTrigonom/b2.con. + +inline cic:/CoRN/transc/InvTrigonom/b3.con. + +inline cic:/CoRN/transc/InvTrigonom/b4.con. + +inline cic:/CoRN/transc/InvTrigonom/b5.con. + +inline cic:/CoRN/transc/InvTrigonom/ab.con. + +inline cic:/CoRN/transc/InvTrigonom/ArcTan_range_lemma.con. + +(* end hide *) + +(* UNEXPORTED +Transparent ArcTang. +*) + +inline cic:/CoRN/transc/InvTrigonom/ArcTan_range.con. + +(* UNEXPORTED +End ArcTan_Range. +*) + +(* UNEXPORTED +Transparent ArcTang. +*) + +inline cic:/CoRN/transc/InvTrigonom/Tan_ArcTan.con. + +(* UNEXPORTED +Opaque ArcTang. +*) + +inline cic:/CoRN/transc/InvTrigonom/Tan_ArcTan_inv.con. + +(* UNEXPORTED +End Inverses. +*) + diff --git a/matita/contribs/CoRN-Decl/transc/Pi.ma b/matita/contribs/CoRN-Decl/transc/Pi.ma new file mode 100644 index 000000000..0505c2794 --- /dev/null +++ b/matita/contribs/CoRN-Decl/transc/Pi.ma @@ -0,0 +1,287 @@ +(**************************************************************************) +(* ___ *) +(* ||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/transc/Pi". + +(* INCLUDE +SinCos +*) + +(* UNEXPORTED +Section Properties_of_Pi. +*) + +(*#* printing Pi %\ensuremath{\pi}% #π# *) + +(*#* **Definition of Pi + +[Pi] is defined as twice the first positive zero of the cosine. In order to do this, we follow the construction described in Bishop 1969, section 7. +*) + +inline cic:/CoRN/transc/Pi/pi_seq.con. + +(* UNEXPORTED +Opaque Cosine. +*) + +(* begin hide *) + +(* UNEXPORTED +Opaque Sine. +*) + +inline cic:/CoRN/transc/Pi/pi_seq_lemma.con. + +(* end hide *) + +(*#* +This sequence is nonnegative and the cosine of any number between +[Zero] and any of its values is strictly positive; therefore the +sequence is strictly increasing. +*) + +inline cic:/CoRN/transc/Pi/pi_seq_nonneg.con. + +inline cic:/CoRN/transc/Pi/cos_pi_seq_pos.con. + +inline cic:/CoRN/transc/Pi/pi_seq_incr.con. + +(*#* Trivial---but useful---consequences. *) + +inline cic:/CoRN/transc/Pi/sin_pi_seq_mon.con. + +inline cic:/CoRN/transc/Pi/sin_pi_seq_nonneg.con. + +inline cic:/CoRN/transc/Pi/sin_pi_seq_gt_one.con. + +inline cic:/CoRN/transc/Pi/cos_pi_seq_mon.con. + +(* begin hide *) + +inline cic:/CoRN/transc/Pi/pi_seq_gt_one.con. + +(* UNEXPORTED +Opaque Sine Cosine. +*) + +inline cic:/CoRN/transc/Pi/pi_seq_bnd.con. + +inline cic:/CoRN/transc/Pi/pi_seq_bnd'.con. + +inline cic:/CoRN/transc/Pi/pi_seq_bnd''.con. + +(* end hide *) + +(*#* An auxiliary result. *) + +inline cic:/CoRN/transc/Pi/Sin_One_pos.con. + +(*#* We can now prove that this is a Cauchy sequence. We define [Pi] as +twice its limit. +*) + +inline cic:/CoRN/transc/Pi/pi_seq_Cauchy.con. + +inline cic:/CoRN/transc/Pi/Pi.con. + +(*#* +For $x\in[0,\frac{\pi}2)$#x∈[0,π/2)#, [(Cos x) [>] 0]; +$\cos(\frac{pi}2)=0$#cos(π/2)=0#. +*) + +inline cic:/CoRN/transc/Pi/pos_cos.con. + +inline cic:/CoRN/transc/Pi/Cos_HalfPi.con. + +(*#* Convergence to [Pi [/] Two] is increasing; therefore, [Pi] is positive. *) + +inline cic:/CoRN/transc/Pi/HalfPi_gt_pi_seq.con. + +inline cic:/CoRN/transc/Pi/pos_Pi.con. + +(* UNEXPORTED +End Properties_of_Pi. +*) + +(* UNEXPORTED +Hint Resolve Cos_HalfPi: algebra. +*) + +(* UNEXPORTED +Section Pi_and_Order. +*) + +(*#* **Properties of Pi + +The following are trivial ordering properties of multiples of [Pi] +that will be used so often that it is convenient to state as lemmas; +also, we define a hint database that automatically tries to apply this +lemmas, to make proof development easier. + +A summary of what is being proved is simply: +[[ +[--]Pi [<] [--]Pi[/]Two [<] [--] Pi[/]Four [<] Zero [<] Pi[/]Four [<] Pi[/]Two [<] Pi +]] + +[PiSolve] will prove any of these inequalities. +*) + +inline cic:/CoRN/transc/Pi/pos_HalfPi.con. + +inline cic:/CoRN/transc/Pi/pos_QuarterPi.con. + +inline cic:/CoRN/transc/Pi/QuarterPi_less_HalfPi.con. + +inline cic:/CoRN/transc/Pi/HalfPi_less_Pi.con. + +inline cic:/CoRN/transc/Pi/QuarterPi_less_Pi.con. + +inline cic:/CoRN/transc/Pi/neg_invPi.con. + +inline cic:/CoRN/transc/Pi/neg_invHalfPi.con. + +inline cic:/CoRN/transc/Pi/neg_invQuarterPi.con. + +inline cic:/CoRN/transc/Pi/invHalfPi_less_invQuarterPi.con. + +inline cic:/CoRN/transc/Pi/invPi_less_invHalfPi.con. + +inline cic:/CoRN/transc/Pi/invPi_less_invQuarterPi.con. + +inline cic:/CoRN/transc/Pi/invPi_less_Pi.con. + +inline cic:/CoRN/transc/Pi/invPi_less_HalfPi.con. + +inline cic:/CoRN/transc/Pi/invPi_less_QuarterPi.con. + +inline cic:/CoRN/transc/Pi/invHalfPi_less_Pi.con. + +inline cic:/CoRN/transc/Pi/invHalfPi_less_HalfPi.con. + +inline cic:/CoRN/transc/Pi/invHalfPi_less_QuarterPi.con. + +inline cic:/CoRN/transc/Pi/invQuarterPi_less_Pi.con. + +inline cic:/CoRN/transc/Pi/invQuarterPi_less_HalfPi.con. + +inline cic:/CoRN/transc/Pi/invQuarterPi_less_QuarterPi.con. + +(* UNEXPORTED +End Pi_and_Order. +*) + +(* UNEXPORTED +Hint Resolve pos_Pi pos_HalfPi pos_QuarterPi QuarterPi_less_HalfPi + HalfPi_less_Pi QuarterPi_less_Pi neg_invPi neg_invHalfPi neg_invQuarterPi + invHalfPi_less_invQuarterPi invPi_less_invHalfPi invPi_less_invQuarterPi + invPi_less_Pi invPi_less_HalfPi invPi_less_QuarterPi invHalfPi_less_Pi + invHalfPi_less_HalfPi invHalfPi_less_QuarterPi invQuarterPi_less_Pi + invQuarterPi_less_HalfPi invQuarterPi_less_QuarterPi: piorder. +*) + +(* begin hide *) + +(* UNEXPORTED +Ltac PiSolve := try apply less_leEq; auto with piorder. +*) + +(* end hide *) + +(* UNEXPORTED +Section Sin_And_Cos. +*) + +(*#* **More formulas + +We now move back to trigonometric identities: sine, cosine and tangent of +the double. +*) + +inline cic:/CoRN/transc/Pi/Cos_double.con. + +inline cic:/CoRN/transc/Pi/Sin_double.con. + +inline cic:/CoRN/transc/Pi/Tan_double.con. + +(* begin hide *) + +inline cic:/CoRN/transc/Pi/sqrt_lemma.con. + +(* end hide *) + +(*#* Value of trigonometric functions at [Pi[/]Four]. *) + +inline cic:/CoRN/transc/Pi/Cos_QuarterPi.con. + +inline cic:/CoRN/transc/Pi/Sin_QuarterPi.con. + +(* UNEXPORTED +Hint Resolve Sin_QuarterPi Cos_QuarterPi: algebra. +*) + +(* UNEXPORTED +Opaque Sine Cosine. +*) + +inline cic:/CoRN/transc/Pi/Tan_QuarterPi.con. + +(*#* Shifting sine and cosine by [Pi[/]Two] and [Pi]. *) + +inline cic:/CoRN/transc/Pi/Sin_HalfPi.con. + +(* UNEXPORTED +Hint Resolve Sin_HalfPi: algebra. +*) + +inline cic:/CoRN/transc/Pi/Sin_plus_HalfPi.con. + +inline cic:/CoRN/transc/Pi/Sin_HalfPi_minus.con. + +inline cic:/CoRN/transc/Pi/Cos_plus_HalfPi.con. + +inline cic:/CoRN/transc/Pi/Cos_HalfPi_minus.con. + +inline cic:/CoRN/transc/Pi/Sin_Pi.con. + +inline cic:/CoRN/transc/Pi/Cos_Pi.con. + +inline cic:/CoRN/transc/Pi/Sin_plus_Pi.con. + +inline cic:/CoRN/transc/Pi/Cos_plus_Pi.con. + +(* UNEXPORTED +Hint Resolve Sin_plus_Pi Cos_plus_Pi: algebra. +*) + +(*#* Sine and cosine have period [Two Pi], tangent has period [Pi]. *) + +inline cic:/CoRN/transc/Pi/Sin_periodic.con. + +inline cic:/CoRN/transc/Pi/Cos_periodic.con. + +inline cic:/CoRN/transc/Pi/Tan_periodic.con. + +(* UNEXPORTED +End Sin_And_Cos. +*) + +(* UNEXPORTED +Hint Resolve Cos_double Sin_double Tan_double Cos_QuarterPi Sin_QuarterPi + Tan_QuarterPi Sin_Pi Cos_Pi Sin_HalfPi Sin_plus_HalfPi Sin_HalfPi_minus + Cos_plus_HalfPi Cos_HalfPi_minus Sin_plus_Pi Cos_plus_Pi Sin_periodic + Cos_periodic Tan_periodic: algebra. +*) + diff --git a/matita/contribs/CoRN-Decl/transc/PowerSeries.ma b/matita/contribs/CoRN-Decl/transc/PowerSeries.ma new file mode 100644 index 000000000..de37b5e48 --- /dev/null +++ b/matita/contribs/CoRN-Decl/transc/PowerSeries.ma @@ -0,0 +1,242 @@ +(**************************************************************************) +(* ___ *) +(* ||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/transc/PowerSeries". + +(* $Id: PowerSeries.v,v 1.8 2004/04/23 10:01:08 lcf Exp $ *) + +(*#* printing Exp %\ensuremath{\exp}% *) + +(*#* printing Sin %\ensuremath{\sin}% *) + +(*#* printing Cos %\ensuremath{\cos}% *) + +(*#* printing Log %\ensuremath{\log}% *) + +(*#* printing Tan %\ensuremath{\tan}% *) + +(* INCLUDE +FTC +*) + +(*#* *More on Power Series + +We will now formally define an operator that defines a function as the +sum of some series given a number sequence. Along with it, we will +prove some important properties of these entities. +*) + +(* UNEXPORTED +Section Power_Series. +*) + +(*#* **General results + +%\begin{convention}% Let [J : interval] and [x0 : IR] be a point of [J]. +Let [a : nat -> IR]. +%\end{convention}% +*) + +inline cic:/CoRN/transc/PowerSeries/J.var. + +inline cic:/CoRN/transc/PowerSeries/x0.var. + +inline cic:/CoRN/transc/PowerSeries/Hx0.var. + +inline cic:/CoRN/transc/PowerSeries/a.var. + +inline cic:/CoRN/transc/PowerSeries/FPowerSeries.con. + +(*#* +The most important convergence criterium specifically for power series +is the Dirichlet criterium. +*) + +(* begin show *) + +inline cic:/CoRN/transc/PowerSeries/Ha.var. + +inline cic:/CoRN/transc/PowerSeries/r.con. + +inline cic:/CoRN/transc/PowerSeries/Hr.con. + +(* end show *) + +inline cic:/CoRN/transc/PowerSeries/Dirichlet_crit.con. + +(*#* +When defining a function using its Taylor series as a motivation, the following operator can be of use. +*) + +inline cic:/CoRN/transc/PowerSeries/FPowerSeries'.con. + +(*#* +This function is also continuous and has a good convergence ratio. +*) + +inline cic:/CoRN/transc/PowerSeries/FPowerSeries'_cont.con. + +inline cic:/CoRN/transc/PowerSeries/included_FPowerSeries'.con. + +(* begin show *) + +inline cic:/CoRN/transc/PowerSeries/Ha'.var. + +(* end show *) + +inline cic:/CoRN/transc/PowerSeries/FPowerSeries'_conv'.con. + +inline cic:/CoRN/transc/PowerSeries/FPowerSeries'_conv.con. + +(* UNEXPORTED +End Power_Series. +*) + +(* UNEXPORTED +Hint Resolve FPowerSeries'_cont: continuous. +*) + +(* UNEXPORTED +Section More_on_PowerSeries. +*) + +(*#* +%\begin{convention}% Let [F] and [G] be the power series defined +respectively by [a] and by [fun n => (a (S n))]. +%\end{convention}% +*) + +inline cic:/CoRN/transc/PowerSeries/x0.var. + +inline cic:/CoRN/transc/PowerSeries/a.var. + +(* begin hide *) + +inline cic:/CoRN/transc/PowerSeries/F.con. + +inline cic:/CoRN/transc/PowerSeries/G.con. + +(* end hide *) + +(* begin show *) + +inline cic:/CoRN/transc/PowerSeries/Hf.var. + +inline cic:/CoRN/transc/PowerSeries/Hf'.var. + +inline cic:/CoRN/transc/PowerSeries/Hg.var. + +(* end show *) + +(*#* We get a comparison test for power series. *) + +inline cic:/CoRN/transc/PowerSeries/FPowerSeries'_comp.con. + +(*#* And a rule for differentiation. *) + +(* UNEXPORTED +Opaque nring fac. +*) + +inline cic:/CoRN/transc/PowerSeries/Derivative_FPowerSeries1'.con. + +(* UNEXPORTED +End More_on_PowerSeries. +*) + +(* UNEXPORTED +Section Definitions. +*) + +(*#* **Function definitions through power series + +We now define the exponential, sine and cosine functions as power +series, and prove their convergence. Tangent is defined as the +quotient of sine over cosine. +*) + +inline cic:/CoRN/transc/PowerSeries/Exp_ps.con. + +inline cic:/CoRN/transc/PowerSeries/sin_seq.con. + +inline cic:/CoRN/transc/PowerSeries/sin_ps.con. + +inline cic:/CoRN/transc/PowerSeries/cos_seq.con. + +inline cic:/CoRN/transc/PowerSeries/cos_ps.con. + +inline cic:/CoRN/transc/PowerSeries/Exp_conv'.con. + +inline cic:/CoRN/transc/PowerSeries/Exp_conv.con. + +inline cic:/CoRN/transc/PowerSeries/sin_conv.con. + +inline cic:/CoRN/transc/PowerSeries/cos_conv.con. + +inline cic:/CoRN/transc/PowerSeries/Expon.con. + +inline cic:/CoRN/transc/PowerSeries/Sine.con. + +inline cic:/CoRN/transc/PowerSeries/Cosine.con. + +inline cic:/CoRN/transc/PowerSeries/Tang.con. + +(*#* +Some auxiliary domain results. +*) + +inline cic:/CoRN/transc/PowerSeries/Exp_domain.con. + +inline cic:/CoRN/transc/PowerSeries/sin_domain.con. + +inline cic:/CoRN/transc/PowerSeries/cos_domain.con. + +inline cic:/CoRN/transc/PowerSeries/included_Exp.con. + +inline cic:/CoRN/transc/PowerSeries/included_Sin.con. + +inline cic:/CoRN/transc/PowerSeries/included_Cos.con. + +(*#* +Definition of the logarithm. +*) + +inline cic:/CoRN/transc/PowerSeries/log_defn_lemma.con. + +inline cic:/CoRN/transc/PowerSeries/Logarithm.con. + +(* UNEXPORTED +End Definitions. +*) + +(* UNEXPORTED +Hint Resolve included_Exp included_Sin included_Cos: included. +*) + +(*#* +As most of these functions are total, it makes sense to treat them as setoid functions on the reals. In the case of logarithm and tangent, this is not possible; however, we still define some abbreviations for aesthetical reasons. +*) + +inline cic:/CoRN/transc/PowerSeries/Exp.con. + +inline cic:/CoRN/transc/PowerSeries/Sin.con. + +inline cic:/CoRN/transc/PowerSeries/Cos.con. + +inline cic:/CoRN/transc/PowerSeries/Log.con. + +inline cic:/CoRN/transc/PowerSeries/Tan.con. + diff --git a/matita/contribs/CoRN-Decl/transc/RealPowers.ma b/matita/contribs/CoRN-Decl/transc/RealPowers.ma new file mode 100644 index 000000000..26a378354 --- /dev/null +++ b/matita/contribs/CoRN-Decl/transc/RealPowers.ma @@ -0,0 +1,189 @@ +(**************************************************************************) +(* ___ *) +(* ||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/transc/RealPowers". + +(* $Id: RealPowers.v,v 1.5 2004/04/23 10:01:08 lcf Exp $ *) + +(*#* printing [!] %\ensuremath{\hat{\ }}% #^# *) + +(*#* printing {!} %\ensuremath{\hat{\ }}% #^# *) + +(* INCLUDE +Exponential +*) + +(* UNEXPORTED +Opaque Expon. +*) + +(*#* *Arbitrary Real Powers + +**Powers of Real Numbers + +We now define +$x^y=e^{y\times\log(x)}$#xy=ey*log(x)#, whenever +[x [>] 0], inspired by the rules for manipulating these expressions. +*) + +inline cic:/CoRN/transc/RealPowers/power.con. + +(*#* +This definition yields a well defined, strongly extensional function +which extends the algebraic exponentiation to an integer power and +still has all the good properties of that operation; when [x [=] e] it +coincides with the exponential function. +*) + +inline cic:/CoRN/transc/RealPowers/power_wd.con. + +inline cic:/CoRN/transc/RealPowers/power_strext.con. + +inline cic:/CoRN/transc/RealPowers/power_plus.con. + +inline cic:/CoRN/transc/RealPowers/power_inv.con. + +(* UNEXPORTED +Hint Resolve power_wd power_plus power_inv: algebra. +*) + +inline cic:/CoRN/transc/RealPowers/power_minus.con. + +inline cic:/CoRN/transc/RealPowers/power_nat.con. + +(* UNEXPORTED +Hint Resolve power_minus power_nat: algebra. +*) + +inline cic:/CoRN/transc/RealPowers/power_zero.con. + +inline cic:/CoRN/transc/RealPowers/power_one.con. + +(* UNEXPORTED +Hint Resolve power_zero power_one: algebra. +*) + +(* UNEXPORTED +Opaque nexp_op. +*) + +inline cic:/CoRN/transc/RealPowers/power_int.con. + +(* UNEXPORTED +Hint Resolve power_int: algebra. +*) + +inline cic:/CoRN/transc/RealPowers/Exp_power.con. + +inline cic:/CoRN/transc/RealPowers/mult_power.con. + +inline cic:/CoRN/transc/RealPowers/recip_power.con. + +(* UNEXPORTED +Hint Resolve Exp_power mult_power recip_power: algebra. +*) + +inline cic:/CoRN/transc/RealPowers/div_power.con. + +(* UNEXPORTED +Hint Resolve div_power: algebra. +*) + +inline cic:/CoRN/transc/RealPowers/power_ap_zero.con. + +inline cic:/CoRN/transc/RealPowers/power_mult.con. + +inline cic:/CoRN/transc/RealPowers/power_pos.con. + +(* UNEXPORTED +Hint Resolve power_mult: algebra. +*) + +inline cic:/CoRN/transc/RealPowers/power_recip.con. + +(* UNEXPORTED +Hint Resolve power_recip: algebra. +*) + +inline cic:/CoRN/transc/RealPowers/power_div.con. + +(* UNEXPORTED +Hint Resolve power_div: algebra. +*) + +(* UNEXPORTED +Section Power_Function. +*) + +(*#* **Power Function + +This operation on real numbers gives birth to an analogous operation +on partial functions which preserves continuity. + +%\begin{convention}% Let [F, G : PartIR]. +%\end{convention}% +*) + +inline cic:/CoRN/transc/RealPowers/J.var. + +inline cic:/CoRN/transc/RealPowers/F.var. + +inline cic:/CoRN/transc/RealPowers/G.var. + +inline cic:/CoRN/transc/RealPowers/FPower.con. + +inline cic:/CoRN/transc/RealPowers/FPower_domain.con. + +inline cic:/CoRN/transc/RealPowers/Continuous_power.con. + +(* UNEXPORTED +End Power_Function. +*) + +(* UNEXPORTED +Section More_on_Power_Function. +*) + +(* UNEXPORTED +Opaque Expon Logarithm. +*) + +(*#* From global continuity we can obviously get local continuity: *) + +inline cic:/CoRN/transc/RealPowers/continuous_I_power.con. + +(*#* The rule for differentiation is a must. *) + +(* UNEXPORTED +Transparent Logarithm. +*) + +(* UNEXPORTED +Opaque Logarithm. +*) + +inline cic:/CoRN/transc/RealPowers/Derivative_power.con. + +inline cic:/CoRN/transc/RealPowers/Diffble_power.con. + +(* UNEXPORTED +End More_on_Power_Function. +*) + +(* UNEXPORTED +Hint Resolve Derivative_power: derivate. +*) + diff --git a/matita/contribs/CoRN-Decl/transc/SinCos.ma b/matita/contribs/CoRN-Decl/transc/SinCos.ma new file mode 100644 index 000000000..b52f1f300 --- /dev/null +++ b/matita/contribs/CoRN-Decl/transc/SinCos.ma @@ -0,0 +1,176 @@ +(**************************************************************************) +(* ___ *) +(* ||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/transc/SinCos". + +(* $Id: SinCos.v,v 1.6 2004/04/23 10:01:08 lcf Exp $ *) + +(* INCLUDE +Trigonometric +*) + +(* UNEXPORTED +Section Sum_and_so_on. +*) + +(* UNEXPORTED +Opaque Sine Cosine. +*) + +(* begin hide *) + +inline cic:/CoRN/transc/SinCos/F.con. + +inline cic:/CoRN/transc/SinCos/G.con. + +inline cic:/CoRN/transc/SinCos/F'.con. + +inline cic:/CoRN/transc/SinCos/G'.con. + +(* end hide *) + +inline cic:/CoRN/transc/SinCos/Sin_plus.con. + +inline cic:/CoRN/transc/SinCos/Cos_plus.con. + +(* UNEXPORTED +Opaque Sine Cosine. +*) + +(* UNEXPORTED +Hint Resolve Cos_plus Sin_plus: algebra. +*) + +(*#* As a corollary we get the rule for the tangent of the sum. *) + +inline cic:/CoRN/transc/SinCos/Tan_plus.con. + +(* UNEXPORTED +Transparent Sine Cosine. +*) + +(*#* Sine, cosine and tangent of [[--]x]. *) + +inline cic:/CoRN/transc/SinCos/Cos_inv.con. + +inline cic:/CoRN/transc/SinCos/Sin_inv.con. + +(* UNEXPORTED +Opaque Sine Cosine. +*) + +(* UNEXPORTED +Hint Resolve Cos_inv Sin_inv: algebra. +*) + +inline cic:/CoRN/transc/SinCos/Tan_inv.con. + +(* UNEXPORTED +Transparent Sine Cosine. +*) + +(*#* +The fundamental formulas of trigonometry: $\cos(x)^2+\sin(x)^2=1$#cos(x)2+sin(x)2=1# and, equivalently, $1+\tan(x)^2=\frac1{\cos(x)^2}$#1+tan(x)2=1/(cos(x)2)#. +*) + +(* UNEXPORTED +Hint Resolve Cos_zero: algebra. +*) + +inline cic:/CoRN/transc/SinCos/FFT.con. + +(* UNEXPORTED +Opaque Sine Cosine. +*) + +(* UNEXPORTED +Hint Resolve FFT: algebra. +*) + +inline cic:/CoRN/transc/SinCos/FFT'.con. + +(* UNEXPORTED +End Sum_and_so_on. +*) + +(* UNEXPORTED +Hint Resolve Derivative_Sin Derivative_Cos: derivate. +*) + +(* UNEXPORTED +Hint Resolve Continuous_Sin Continuous_Cos: continuous. +*) + +(* UNEXPORTED +Hint Resolve Sin_zero Cos_zero Tan_zero Sin_plus Cos_plus Tan_plus Sin_inv + Cos_inv Tan_inv FFT FFT': algebra. +*) + +(* UNEXPORTED +Opaque Min Sine Cosine. +*) + +(* UNEXPORTED +Section Basic_Properties. +*) + +(*#* **Basic properties + +We now prove most of the usual trigonometric (in)equalities. + +Sine, cosine and tangent are strongly extensional and well defined. +*) + +inline cic:/CoRN/transc/SinCos/Sin_strext.con. + +inline cic:/CoRN/transc/SinCos/Cos_strext.con. + +inline cic:/CoRN/transc/SinCos/Tan_strext.con. + +inline cic:/CoRN/transc/SinCos/Sin_wd.con. + +inline cic:/CoRN/transc/SinCos/Cos_wd.con. + +inline cic:/CoRN/transc/SinCos/Tan_wd.con. + +(*#* +The sine and cosine produce values in [[-1,1]]. +*) + +inline cic:/CoRN/transc/SinCos/AbsIR_Sin_leEq_One.con. + +inline cic:/CoRN/transc/SinCos/AbsIR_Cos_leEq_One.con. + +inline cic:/CoRN/transc/SinCos/Sin_leEq_One.con. + +inline cic:/CoRN/transc/SinCos/Cos_leEq_One.con. + +(*#* +If the cosine is positive then the sine is in [(-1,1)]. +*) + +inline cic:/CoRN/transc/SinCos/Sin_less_One.con. + +inline cic:/CoRN/transc/SinCos/AbsIR_Sin_less_One.con. + +(* UNEXPORTED +End Basic_Properties. +*) + +(* UNEXPORTED +Hint Resolve Sin_wd Cos_wd Tan_wd: algebra. +*) + diff --git a/matita/contribs/CoRN-Decl/transc/TaylorSeries.ma b/matita/contribs/CoRN-Decl/transc/TaylorSeries.ma new file mode 100644 index 000000000..d29decd12 --- /dev/null +++ b/matita/contribs/CoRN-Decl/transc/TaylorSeries.ma @@ -0,0 +1,260 @@ +(**************************************************************************) +(* ___ *) +(* ||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/transc/TaylorSeries". + +(* $Id: TaylorSeries.v,v 1.7 2004/04/23 10:01:08 lcf Exp $ *) + +(* INCLUDE +PowerSeries +*) + +(* INCLUDE +Taylor +*) + +(*#* *Taylor Series + +We now generalize our work on Taylor's theorem to define the Taylor +series of an infinitely many times differentiable function as a power +series. We prove convergence (always) of the Taylor series and give +criteria for when the sum of this series is the original function. + +**Definitions + +%\begin{convention}% Let [J] be a proper interval and [F] an +infinitely many times differentiable function in [J]. Let [a] be a +point of [J]. +%\end{convention}% +*) + +(* UNEXPORTED +Section Definitions. +*) + +inline cic:/CoRN/transc/TaylorSeries/J.var. + +inline cic:/CoRN/transc/TaylorSeries/pJ.var. + +inline cic:/CoRN/transc/TaylorSeries/F.var. + +inline cic:/CoRN/transc/TaylorSeries/diffF.var. + +inline cic:/CoRN/transc/TaylorSeries/a.var. + +inline cic:/CoRN/transc/TaylorSeries/Ha.var. + +inline cic:/CoRN/transc/TaylorSeries/Taylor_Series'.con. + +(*#* +%\begin{convention}% Assume also that [f] is the sequence of +derivatives of [F]. +%\end{convention}% +*) + +inline cic:/CoRN/transc/TaylorSeries/f.var. + +inline cic:/CoRN/transc/TaylorSeries/derF.var. + +inline cic:/CoRN/transc/TaylorSeries/Taylor_Series.con. + +(* UNEXPORTED +Opaque N_Deriv. +*) + +(*#* Characterizations of the Taylor remainder. *) + +inline cic:/CoRN/transc/TaylorSeries/Taylor_Rem_char.con. + +inline cic:/CoRN/transc/TaylorSeries/abs_Taylor_Rem_char.con. + +(* UNEXPORTED +End Definitions. +*) + +(* UNEXPORTED +Section Convergence_in_IR. +*) + +(*#* **Convergence + +Our interval is now the real line. We begin by proving some helpful +continuity properties, then define a boundedness condition for the +derivatives of [F] that guarantees convergence of its Taylor series to +[F]. +*) + +inline cic:/CoRN/transc/TaylorSeries/H.var. + +inline cic:/CoRN/transc/TaylorSeries/F.var. + +inline cic:/CoRN/transc/TaylorSeries/a.var. + +inline cic:/CoRN/transc/TaylorSeries/Ha.var. + +inline cic:/CoRN/transc/TaylorSeries/f.var. + +inline cic:/CoRN/transc/TaylorSeries/derF.var. + +inline cic:/CoRN/transc/TaylorSeries/Taylor_Series_imp_cont.con. + +inline cic:/CoRN/transc/TaylorSeries/Taylor_Series_lemma_cont.con. + +inline cic:/CoRN/transc/TaylorSeries/Taylor_bnd.con. + +(* begin show *) + +inline cic:/CoRN/transc/TaylorSeries/bndf.var. + +(* end show *) + +(* UNEXPORTED +Opaque nexp_op fac. +*) + +(* begin hide *) + +inline cic:/CoRN/transc/TaylorSeries/H1.con. + +(* UNEXPORTED +Transparent nexp_op. +*) + +inline cic:/CoRN/transc/TaylorSeries/Taylor_Series_conv_lemma1.con. + +inline cic:/CoRN/transc/TaylorSeries/Taylor_Series_conv_lemma2.con. + +(* end hide *) + +(*#* The Taylor series always converges on the realline. *) + +(* UNEXPORTED +Transparent nexp_op. +*) + +(* UNEXPORTED +Opaque nexp_op. +*) + +inline cic:/CoRN/transc/TaylorSeries/Taylor_Series_conv_IR.con. + +(* begin hide *) + +(* UNEXPORTED +Transparent nexp_op. +*) + +inline cic:/CoRN/transc/TaylorSeries/Taylor_majoration_lemma.con. + +(* UNEXPORTED +Opaque N_Deriv fac. +*) + +inline cic:/CoRN/transc/TaylorSeries/Taylor_Series_conv_lemma3.con. + +(* end hide *) + +(*#* +We now prove that, under our assumptions, it actually converges to the +original function. For generality and also usability, however, we +will separately assume convergence. +*) + +(* begin show *) + +inline cic:/CoRN/transc/TaylorSeries/Hf.var. + +(* end show *) + +(* UNEXPORTED +Transparent fac. +*) + +(* UNEXPORTED +Opaque mult. +*) + +inline cic:/CoRN/transc/TaylorSeries/Taylor_Series_conv_to_fun.con. + +(* UNEXPORTED +End Convergence_in_IR. +*) + +(* UNEXPORTED +Section Other_Results. +*) + +(*#* +The condition for the previous lemma is not very easy to prove. We +give some helpful lemmas. +*) + +inline cic:/CoRN/transc/TaylorSeries/Taylor_bnd_trans.con. + +(* begin hide *) + +(* UNEXPORTED +Opaque nexp_op. +*) + +inline cic:/CoRN/transc/TaylorSeries/convergence_lemma.con. + +(* end hide *) + +inline cic:/CoRN/transc/TaylorSeries/bnd_imp_Taylor_bnd.con. + +(*#* +Finally, a uniqueness criterium: two functions [F] and [G] are equal, +provided that their derivatives coincide at a given point and their +Taylor series converge to themselves. +*) + +inline cic:/CoRN/transc/TaylorSeries/F.var. + +inline cic:/CoRN/transc/TaylorSeries/G.var. + +inline cic:/CoRN/transc/TaylorSeries/a.var. + +inline cic:/CoRN/transc/TaylorSeries/f.var. + +inline cic:/CoRN/transc/TaylorSeries/g.var. + +inline cic:/CoRN/transc/TaylorSeries/derF.var. + +inline cic:/CoRN/transc/TaylorSeries/derG.var. + +inline cic:/CoRN/transc/TaylorSeries/bndf.var. + +inline cic:/CoRN/transc/TaylorSeries/bndg.var. + +(* begin show *) + +inline cic:/CoRN/transc/TaylorSeries/Heq.var. + +(* end show *) + +(* begin hide *) + +inline cic:/CoRN/transc/TaylorSeries/Hf.con. + +(* end hide *) + +inline cic:/CoRN/transc/TaylorSeries/Taylor_unique_crit.con. + +(* UNEXPORTED +End Other_Results. +*) + diff --git a/matita/contribs/CoRN-Decl/transc/TrigMon.ma b/matita/contribs/CoRN-Decl/transc/TrigMon.ma new file mode 100644 index 000000000..fd527af54 --- /dev/null +++ b/matita/contribs/CoRN-Decl/transc/TrigMon.ma @@ -0,0 +1,103 @@ +(**************************************************************************) +(* ___ *) +(* ||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/transc/TrigMon". + +(* $Id: TrigMon.v,v 1.9 2004/04/23 10:01:08 lcf Exp $ *) + +(* INCLUDE +Pi +*) + +(* UNEXPORTED +Opaque Sine Cosine. +*) + +(*#* +Sign properties: cosine is positive in +$(-\frac{\pi}2,\frac{\pi}2)$#(-π/2,π/2)#, sine in +$(0,\pi)$#(0,π)# and tangent in $(0,\frac{\pi}2)$#0,π/2)#. +*) + +inline cic:/CoRN/transc/TrigMon/Cos_pos.con. + +inline cic:/CoRN/transc/TrigMon/Sin_pos.con. + +inline cic:/CoRN/transc/TrigMon/Tan_pos.con. + +inline cic:/CoRN/transc/TrigMon/Cos_nonneg.con. + +inline cic:/CoRN/transc/TrigMon/Sin_nonneg.con. + +(*#* Consequences. *) + +inline cic:/CoRN/transc/TrigMon/Abs_Sin_less_One.con. + +inline cic:/CoRN/transc/TrigMon/Abs_Cos_less_One.con. + +(*#* +Sine is (strictly) increasing in [[ [--]Pi[/]Two,Pi[/]Two]]; cosine +is (strictly) decreasing in [[Zero,Pi]]. +*) + +inline cic:/CoRN/transc/TrigMon/Sin_resp_leEq.con. + +inline cic:/CoRN/transc/TrigMon/Cos_resp_leEq.con. + +(* begin hide *) + +inline cic:/CoRN/transc/TrigMon/Cos_resp_less_aux.con. + +inline cic:/CoRN/transc/TrigMon/Cos_resp_less_aux'.con. + +(* end hide *) + +inline cic:/CoRN/transc/TrigMon/Cos_resp_less.con. + +inline cic:/CoRN/transc/TrigMon/Sin_resp_less.con. + +(* UNEXPORTED +Section Tangent. +*) + +(*#* **Derivative of Tangent + +Finally, two formulas for the derivative of the tangent function and +monotonicity properties. +*) + +inline cic:/CoRN/transc/TrigMon/bnd_Cos.con. + +(* UNEXPORTED +Opaque Sine Cosine. +*) + +inline cic:/CoRN/transc/TrigMon/Derivative_Tan_1.con. + +inline cic:/CoRN/transc/TrigMon/Derivative_Tan_2.con. + +inline cic:/CoRN/transc/TrigMon/Tan_resp_less.con. + +inline cic:/CoRN/transc/TrigMon/Tan_resp_leEq.con. + +(* UNEXPORTED +End Tangent. +*) + +(* UNEXPORTED +Hint Resolve Derivative_Tan_1 Derivative_Tan_2: derivate. +*) + diff --git a/matita/contribs/CoRN-Decl/transc/Trigonometric.ma b/matita/contribs/CoRN-Decl/transc/Trigonometric.ma new file mode 100644 index 000000000..3498c20a8 --- /dev/null +++ b/matita/contribs/CoRN-Decl/transc/Trigonometric.ma @@ -0,0 +1,216 @@ +(**************************************************************************) +(* ___ *) +(* ||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/transc/Trigonometric". + +(* $Id: Trigonometric.v,v 1.5 2004/04/23 10:01:08 lcf Exp $ *) + +(* INCLUDE +TaylorSeries +*) + +(*#* *The Trigonometric Functions + +In this section, we explore the properties of the trigonometric functions which we previously defined. +*) + +(* UNEXPORTED +Section Lemmas. +*) + +(*#* First, we need a lemma on mappings. *) + +inline cic:/CoRN/transc/Trigonometric/maps_translation.con. + +(* UNEXPORTED +End Lemmas. +*) + +(* UNEXPORTED +Section Sine_and_Cosine. +*) + +(*#* Sine, cosine and tangent at [Zero]. *) + +inline cic:/CoRN/transc/Trigonometric/Sin_zero.con. + +inline cic:/CoRN/transc/Trigonometric/Cos_zero.con. + +(* UNEXPORTED +Hint Resolve Sin_zero Cos_zero: algebra. +*) + +(* UNEXPORTED +Opaque Sine Cosine. +*) + +inline cic:/CoRN/transc/Trigonometric/Tan_zero.con. + +(* UNEXPORTED +Transparent Sine Cosine. +*) + +(*#* +Continuity of sine and cosine are trivial. +*) + +inline cic:/CoRN/transc/Trigonometric/Continuous_Sin.con. + +inline cic:/CoRN/transc/Trigonometric/Continuous_Cos.con. + +(*#* +The rules for the derivative of the sine and cosine function; we begin by proving that their defining sequences can be expressed in terms of one another. +*) + +inline cic:/CoRN/transc/Trigonometric/cos_sin_seq.con. + +inline cic:/CoRN/transc/Trigonometric/sin_cos_seq.con. + +inline cic:/CoRN/transc/Trigonometric/Derivative_Sin.con. + +inline cic:/CoRN/transc/Trigonometric/Derivative_Cos.con. + +(* UNEXPORTED +Hint Resolve Derivative_Sin Derivative_Cos: derivate. +*) + +(* UNEXPORTED +Hint Resolve Continuous_Sin Continuous_Cos: continuous. +*) + +(* UNEXPORTED +Section Sine_of_Sum. +*) + +(*#* +We now prove the rule for the sine and cosine of the sum. These rules +have to be proved first as functional equalities, which is why we also +state the results in a function form (which we won't do in other +situations). + +%\begin{convention}% Let: + - [F := fun y => Sine[o] (FId{+} [-C-]y)]; + - [G := fun y => (Sine{*} [-C-] (Cos y)) {+} (Cosine{*} [-C-] (Sin y))]. + +%\end{convention}% +*) + +(* begin hide *) + +inline cic:/CoRN/transc/Trigonometric/F.con. + +inline cic:/CoRN/transc/Trigonometric/G.con. + +inline cic:/CoRN/transc/Trigonometric/F'.con. + +inline cic:/CoRN/transc/Trigonometric/G'.con. + +(* end hide *) + +(* UNEXPORTED +Opaque Sine Cosine. +*) + +(* UNEXPORTED +Opaque FAbs. +*) + +(* UNEXPORTED +Transparent FAbs. +*) + +(* UNEXPORTED +Opaque FAbs. +*) + +(* UNEXPORTED +Transparent FAbs. +*) + +(* UNEXPORTED +Opaque FAbs. +*) + +(* UNEXPORTED +Transparent FAbs. +*) + +(* UNEXPORTED +Opaque FAbs. +*) + +(* UNEXPORTED +Transparent FAbs. +*) + +inline cic:/CoRN/transc/Trigonometric/Sin_plus_Taylor_bnd_lft.con. + +(* UNEXPORTED +Opaque FAbs. +*) + +(* UNEXPORTED +Transparent FAbs. +*) + +(* UNEXPORTED +Opaque FAbs. +*) + +(* UNEXPORTED +Transparent FAbs. +*) + +(* UNEXPORTED +Opaque FAbs. +*) + +(* UNEXPORTED +Transparent FAbs. +*) + +(* UNEXPORTED +Opaque FAbs. +*) + +(* UNEXPORTED +Transparent FAbs. +*) + +inline cic:/CoRN/transc/Trigonometric/Sin_plus_Taylor_bnd_rht.con. + +inline cic:/CoRN/transc/Trigonometric/Sin_plus_eq.con. + +inline cic:/CoRN/transc/Trigonometric/Sin_plus_der_lft.con. + +inline cic:/CoRN/transc/Trigonometric/Sin_plus_der_rht.con. + +inline cic:/CoRN/transc/Trigonometric/Sin_plus_fun.con. + +(* UNEXPORTED +End Sine_of_Sum. +*) + +(* UNEXPORTED +Opaque Sine Cosine. +*) + +inline cic:/CoRN/transc/Trigonometric/Cos_plus_fun.con. + +(* UNEXPORTED +End Sine_and_Cosine. +*) +