]> matita.cs.unibo.it Git - helm.git/commitdiff
transcript: we improved the parser/lexer to read the scripts of the standard
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Thu, 4 Sep 2008 16:08:25 +0000 (16:08 +0000)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Thu, 4 Sep 2008 16:08:25 +0000 (16:08 +0000)
            library of coq. Coercion extraction is disabled for now.
contribs/procedural: new root for mma files generated by transcript.
                     We now have the mma files of the cic:/Coq/* objects

394 files changed:
helm/software/components/binaries/transcript/v8Lexer.mll
helm/software/components/binaries/transcript/v8Parser.mly
helm/software/matita/contribs/procedural/CoRN/CoRN.conf.xml [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/CoRN.ma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/Makefile [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/Basics.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CAbGroups.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CAbMonoids.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CFields.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CGroups.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CLogic.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CMonoids.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/COrdAbs.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/COrdCauchy.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/COrdFields.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/COrdFields2.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CPoly_ApZero.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CPoly_Degree.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CPoly_NthCoeff.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CPolynomials.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CRings.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CSemiGroups.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CSetoidFun.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CSetoidInc.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CSetoids.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CSums.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/CVectorSpace.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/Cauchy_COF.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/Expon.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/algebra/ListType.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/complex/AbsCC.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/complex/CComplex.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/complex/Complex_Exponential.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/complex/NRootCC.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/depends [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/devel/loeb/IDA/Ch6.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/devel/loeb/per/csetfun.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/devel/loeb/per/lst2fun.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/fta/CC_Props.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/fta/CPoly_Contin1.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/fta/CPoly_Rev.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/fta/CPoly_Shift.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/fta/FTA.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/fta/FTAreg.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/fta/KeyLemma.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/fta/KneserLemma.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/fta/MainLemma.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/COrdLemmas.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/CalculusTheorems.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/Composition.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/Continuity.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/Derivative.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/DerivativeOps.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/Differentiability.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/FTC.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/FunctSequence.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/FunctSeries.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/FunctSums.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/Integral.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/IntervalFunct.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/MoreFunSeries.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/MoreFunctions.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/MoreIntegrals.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/MoreIntervals.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/NthDerivative.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/PartFunEquality.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/PartInterval.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/Partitions.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/RefLemma.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/RefSepRef.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/RefSeparated.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/RefSeparating.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/Rolle.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/StrongIVT.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/Taylor.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/TaylorLemma.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/ftc/WeakIVT.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/metrics/CMetricSpaces.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/metrics/CPMSTheory.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/metrics/CPseudoMSpaces.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/metrics/ContFunctions.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/metrics/Equiv.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/metrics/IR_CPMSpace.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/metrics/Prod_Sub.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/abgroups/QSposabgroup.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/abgroups/Qabgroup.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/abgroups/Qposabgroup.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/abgroups/Zabgroup.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/fields/Qfield.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/groups/QSposgroup.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/groups/Qgroup.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/groups/Qposgroup.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/groups/Zgroup.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/monoids/Nmonoid.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/monoids/Nposmonoid.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/monoids/QSposmonoid.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/monoids/Qmonoid.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/monoids/Qposmonoid.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/monoids/Zmonoid.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/non_examples/N_no_group.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/non_examples/Npos_no_group.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/non_examples/Npos_no_monoid.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/ordfields/Qordfield.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/reals/Cauchy_IR.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/rings/Qring.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/rings/Zring.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/semigroups/Npossemigroup.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/semigroups/Nsemigroup.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/semigroups/QSpossemigroup.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/semigroups/Qpossemigroup.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/semigroups/Qsemigroup.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/semigroups/Zsemigroup.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/setoids/Npossetoid.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/setoids/Nsetoid.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/setoids/Qpossetoid.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/setoids/Qsetoid.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/setoids/Zsetoid.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/structures/Npossec.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/structures/Nsec.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/structures/Qpossec.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/structures/Qsec.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/model/structures/Zsec.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/preamble.ma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/Bridges_LUB.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/Bridges_iso.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/CMetricFields.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/CPoly_Contin.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/CReals.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/CReals1.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/CSumsReals.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/CauchySeq.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/Cauchy_CReals.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/IVT.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/Intervals.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/Max_AbsIR.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/NRootIR.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/OddPolyRootIR.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/Q_dense.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/Q_in_CReals.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/R_morphism.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/RealFuncts.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/RealLists.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/Series.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/reals/iso_CReals.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/root [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/tactics/AlgReflection.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/tactics/DiffTactics1.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/tactics/DiffTactics2.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/tactics/DiffTactics3.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/tactics/FieldReflection.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/tactics/GroupReflection.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/tactics/Opaque_algebra.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/tactics/RingReflection.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/tactics/Step.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/tactics/Transparent_algebra.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/transc/Exponential.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/transc/InvTrigonom.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/transc/Pi.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/transc/PowerSeries.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/transc/RealPowers.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/transc/SinCos.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/transc/TaylorSeries.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/transc/TrigMon.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/CoRN/transc/Trigonometric.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Arith.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Between.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Bool_nat.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Compare.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Compare_dec.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Div.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Div2.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/EqNat.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Euclid.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Even.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Factorial.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Gt.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Le.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Lt.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Max.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Min.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Minus.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Mult.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Peano_dec.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Plus.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Arith/Wf_nat.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Bool/Bool.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Bool/BoolEq.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Bool/Bvector.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Bool/DecBool.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Bool/IfProp.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Bool/Sumbool.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Bool/Zerob.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Coq.conf.xml [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Coq.ma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Init/Datatypes.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Init/Logic.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Init/Logic_Type.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Init/Notations.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Init/Peano.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Init/Prelude.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Init/Specif.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Init/Wf.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Adalloc.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Addec.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Addr.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Adist.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Allmaps.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Fset.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Lsort.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Map.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Mapaxioms.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Mapc.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Mapcanon.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Mapcard.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Mapfold.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Mapiter.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Maplists.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/IntMap/Mapsubset.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Lists/List.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Lists/ListSet.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Lists/MonoList.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Lists/TheoryList.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/Berardi.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/ChoiceFacts.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/Classical.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/ClassicalChoice.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/ClassicalDescription.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/ClassicalFacts.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/Classical_Pred_Set.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/Classical_Pred_Type.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/Classical_Prop.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/Classical_Type.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/Decidable.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/Diaconescu.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/Eqdep.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/Eqdep_dec.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/Hurkens.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/JMeq.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/ProofIrrelevance.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Logic/RelationalChoice.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Makefile [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/NArith/BinNat.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/NArith/BinPos.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/NArith/NArith.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/NArith/Pnat.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/AddProps.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/Axioms.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/Definitions.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/DiscrAxioms.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/DiscrProps.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/EqAxioms.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/EqParams.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/GeAxioms.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/GeProps.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/GtAxioms.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/GtProps.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/LeAxioms.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/LeProps.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/Leibniz/EqAxioms.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/Leibniz/NSyntax.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/Leibniz/Params.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/LtProps.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/NSyntax.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/Nat/Axioms.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/Nat/NSyntax.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/Nat/NeqDef.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/NeqAxioms.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/NeqDef.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/NeqParams.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/NeqProps.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/OppAxioms.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/OppProps.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/Params.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Num/SubProps.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Alembert.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/AltSeries.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/ArithProp.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Binomial.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Cauchy_prod.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Cos_plus.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Cos_rel.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/DiscrR.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Exp_prop.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Integration.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/MVT.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/NewtonInt.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/PSeries_reg.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/PartSum.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/RIneq.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/RList.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/R_Ifp.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/R_sqr.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/R_sqrt.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Ranalysis.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Ranalysis1.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Ranalysis2.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Ranalysis3.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Ranalysis4.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Raxioms.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rbase.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rbasic_fun.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rcomplete.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rdefinitions.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rderiv.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Reals.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rfunctions.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rgeom.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/RiemannInt.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/RiemannInt_SF.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rlimit.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rpower.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rprod.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rseries.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rsigma.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rsqrt_def.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rtopology.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo_alt.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo_calc.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo_def.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo_fun.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo_reg.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/SeqProp.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/SeqSeries.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/SplitAbsolu.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/SplitRmult.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Reals/Sqrt_reg.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Relations/Newman.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Relations/Operators_Properties.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Relations/Relation_Definitions.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Relations/Relation_Operators.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Relations/Relations.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Relations/Rstar.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Setoids/Setoid.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Classical_sets.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Constructive_sets.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Cpo.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Ensembles.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Finite_sets.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Finite_sets_facts.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Image.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Infinite_sets.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Integers.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Multiset.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Partial_Order.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Permut.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Powerset.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Powerset_Classical_facts.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Powerset_facts.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Relations_1.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Relations_1_facts.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Relations_2.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Relations_2_facts.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Relations_3.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Relations_3_facts.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sets/Uniset.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sorting/Heap.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sorting/Permutation.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Sorting/Sorting.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Wellfounded/Disjoint_Union.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Wellfounded/Inclusion.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Wellfounded/Inverse_Image.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Wellfounded/Lexicographic_Exponentiation.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Wellfounded/Lexicographic_Product.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Wellfounded/Transitive_Closure.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Wellfounded/Union.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Wellfounded/Well_Ordering.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/Wellfounded/Wellfounded.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/BinInt.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Wf_Z.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/ZArith.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/ZArith_base.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/ZArith_dec.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Zabs.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Zbinary.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Zbool.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Zcompare.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Zcomplements.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Zdiv.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Zeven.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Zhints.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Zlogarithm.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Zmin.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Zmisc.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Znat.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Znumtheory.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Zorder.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Zpower.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Zsqrt.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/Zwf.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/ZArith/auxiliary.mma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/preamble.ma [new file with mode: 0644]
helm/software/matita/contribs/procedural/Coq/root [new file with mode: 0644]
helm/software/matita/contribs/procedural/Makefile.common [new file with mode: 0644]

index 5a90aabf75b91769e47c214b7864679f958b8028..57f7d16ae1bff92121e55c2b05bbefc357a99600 100644 (file)
@@ -1,7 +1,7 @@
 {
    module P = V8Parser
    
-   let out t s = () (* prerr_endline (t ^ " " ^ s) *)
+   let out t s = prerr_endline (t ^ " " ^ s)
 }
 
 let QT    = '"'
@@ -19,7 +19,9 @@ rule token = parse
    | "Theorem"     { let s = Lexing.lexeme lexbuf in out "TH" s; P.TH s      }
    | "Definition"  { let s = Lexing.lexeme lexbuf in out "TH" s; P.TH s      }
    | "Fixpoint"    { let s = Lexing.lexeme lexbuf in out "TH" s; P.TH s      }
+   | "CoFixpoint"  { let s = Lexing.lexeme lexbuf in out "TH" s; P.TH s      }
    | "Qed"         { let s = Lexing.lexeme lexbuf in out "QED" s; P.QED s    }
+   | "Save"        { let s = Lexing.lexeme lexbuf in out "QED" s; P.QED s    }
    | "Defined"     { let s = Lexing.lexeme lexbuf in out "QED" s; P.QED s    }
    | "Proof"       { let s = Lexing.lexeme lexbuf in out "PRF" s; P.PROOF s  }
    | "Variable"    { let s = Lexing.lexeme lexbuf in out "VAR" s; P.VAR s    }
@@ -27,11 +29,16 @@ rule token = parse
    | "Hypothesis"  { let s = Lexing.lexeme lexbuf in out "VAR" s; P.VAR s    } 
    | "Hypotheses"  { let s = Lexing.lexeme lexbuf in out "VAR" s; P.VAR s    } 
    | "Axiom"       { let s = Lexing.lexeme lexbuf in out "AX" s; P.AX s      }
+   | "Parameter"   { let s = Lexing.lexeme lexbuf in out "AX" s; P.AX s      }
+   | "Parameters"  { let s = Lexing.lexeme lexbuf in out "AX" s; P.AX s      }
    | "Inductive"   { let s = Lexing.lexeme lexbuf in out "IND" s; P.IND s    }
+   | "CoInductive" { let s = Lexing.lexeme lexbuf in out "IND" s; P.IND s    }
    | "Record"      { let s = Lexing.lexeme lexbuf in out "IND" s; P.IND s    }
+   | "Scheme"      { let s = Lexing.lexeme lexbuf in out "GEN" s; P.GEN s    }
    | "Section"     { let s = Lexing.lexeme lexbuf in out "SEC" s; P.SEC s    }
    | "End"         { let s = Lexing.lexeme lexbuf in out "END" s; P.END s    }
    | "Hint"        { let s = Lexing.lexeme lexbuf in out "UNX" s; P.UNX s    }
+   | "Hints"       { let s = Lexing.lexeme lexbuf in out "UNX" s; P.UNX s    }
    | "Unset"       { let s = Lexing.lexeme lexbuf in out "UNX" s; P.UNX s    }
    | "Print"       { let s = Lexing.lexeme lexbuf in out "UNX" s; P.UNX s    }
    | "Opaque"      { let s = Lexing.lexeme lexbuf in out "UNX" s; P.UNX s    }
@@ -41,16 +48,29 @@ rule token = parse
    | "Declare"     { let s = Lexing.lexeme lexbuf in out "UNX" s; P.UNX s    }
    | "Require"     { let s = Lexing.lexeme lexbuf in out "REQ" s; P.REQ s    }
    | "Export"      { let s = Lexing.lexeme lexbuf in out "XP" s; P.XP s      }
-   | "Import"      { let s = Lexing.lexeme lexbuf in out "IP" s; P.IP s      }
+   | "Import"      { let s = Lexing.lexeme lexbuf in out "XP" s; P.XP s      }
    | "Load"        { let s = Lexing.lexeme lexbuf in out "LOAD" s; P.LOAD s  }
    | "Set"         { let s = Lexing.lexeme lexbuf in out "SET" s; P.SET s    }
+   | "Reset"       { let s = Lexing.lexeme lexbuf in out "SET" s; P.SET s    }
    | "Implicit"    { let s = Lexing.lexeme lexbuf in out "SET" s; P.SET s    }
+   | "Delimit"     { let s = Lexing.lexeme lexbuf in out "SET" s; P.SET s    }
+   | "Bind"        { let s = Lexing.lexeme lexbuf in out "SET" s; P.SET s    }
+   | "Arguments"   { let s = Lexing.lexeme lexbuf in out "SET" s; P.SET s    }
+   | "Open"        { let s = Lexing.lexeme lexbuf in out "SET" s; P.SET s    }
+   | "V7only"      { let s = Lexing.lexeme lexbuf in out "SET" s; P.SET s    }
    | "Notation"    { let s = Lexing.lexeme lexbuf in out "NOT" s; P.NOT s    }
+   | "Reserved"    { let s = Lexing.lexeme lexbuf in out "NOT" s; P.NOT s    }
    | "Infix"       { let s = Lexing.lexeme lexbuf in out "NOT" s; P.NOT s    }
+   | "Grammar"     { let s = Lexing.lexeme lexbuf in out "NOT" s; P.NOT s    }
+   | "Syntax"      { let s = Lexing.lexeme lexbuf in out "NOT" s; P.NOT s    }
+   | "Add" SPC "Morphism"
+      { let s = Lexing.lexeme lexbuf in out "MOR" s; P.MOR s }
+   | "Add"         { let s = Lexing.lexeme lexbuf in out "NOT" s; P.NOT s    }
    | "Identity"    { let s = Lexing.lexeme lexbuf in out "ID" s; P.ID s      }
    | "Coercion"    { let s = Lexing.lexeme lexbuf in out "CO" s; P.COERC s   }
    | "let"         { let s = Lexing.lexeme lexbuf in out "ABBR" s; P.ABBR s  }
    | "in"          { let s = Lexing.lexeme lexbuf in out "IN" s; P.IN s      }
+   | "with"        { let s = Lexing.lexeme lexbuf in out "WITH" s; P.WITH s  }
    | SPC           { let s = Lexing.lexeme lexbuf in out "SPC" s; P.SPC s    }
    | ID            { let s = Lexing.lexeme lexbuf in out "ID" s; P.IDENT s   }
    | RAWID         { let s = Lexing.lexeme lexbuf in out "STR" s; P.STR s    }
@@ -68,5 +88,7 @@ rule token = parse
    | "}"           { let s = Lexing.lexeme lexbuf in out "CC" s; P.CC s      }
    | ";"           { let s = Lexing.lexeme lexbuf in out "SC" s; P.SC s      }
    | ":"           { let s = Lexing.lexeme lexbuf in out "CN" s; P.CN s      }
+   | ","           { let s = Lexing.lexeme lexbuf in out "CM" s; P.CM s      }
+   | ".."          { let s = Lexing.lexeme lexbuf in out "SPEC" s; P.EXTRA s }
    | _             { let s = Lexing.lexeme lexbuf in out "SPEC" s; P.EXTRA s }
    | eof           { let s = Lexing.lexeme lexbuf in out "EOF" s; P.EOF      }
index 65372d9141c153cc936d046f8810afcafdec66c9..52456c5594d761957d7d3576683952dd975b3ddb 100644 (file)
@@ -26,7 +26,7 @@
 %{
    module T = Types
    
-   let out t s = () (* prerr_endline ("-- " ^ t ^ " " ^ s) *)
+   let out t s = prerr_endline ("-- " ^ t ^ " " ^ s)
 
    let trim = HExtlib.trim_blanks
 
         | "Definition" -> Some `Definition
         | "Fixpoint"   -> Some `Definition
         | "Let"        -> Some `Definition
+       | "Scheme"     -> Some `Theorem
         | _            -> assert false
+
+   let mk_morphism ext =
+      let generate s = T.Inline (false, T.Con, ext ^ s, "", Some `Theorem) in
+      List.rev_map generate ["2"; "1"]
+
 %}
-   %token <string> SPC STR IDENT INT EXTRA AC OP CP OC CC OQ CQ DEF FS COE CN SC
-   %token <string> ABBR IN LET TH PROOF QED VAR AX IND SEC END UNX REQ XP IP SET NOT LOAD ID COERC
+   %token <string> SPC STR IDENT INT EXTRA AC OP CP OC CC OQ CQ DEF FS COE CN SC CM
+   %token <string> WITH ABBR IN LET TH PROOF QED VAR AX IND GEN SEC END UNX REQ XP SET NOT LOAD ID COERC MOR
    %token EOF
-   
+
    %start items
    %type <Types.items> items
 %%
+/* SPACED TOKENS ************************************************************/
+   
+   ident: xident spcs { $1 ^ $2 };
+   fs: FS spcs { $1 ^ $2 };
+   mor: MOR spcs { $1 ^ $2 };
+   th: TH spcs { $1 ^ $2 };
+   xlet: LET spcs { $1 ^ $2 };
+   proof: PROOF spcs { $1 ^ $2 };
+   qed: QED spcs { $1 ^ $2 };
+   gen: GEN spcs { $1 ^ $2 };
+   sec: SEC spcs { $1 ^ $2 };
+   xend: END spcs { $1 ^ $2 };
+   unx: UNX spcs { $1 ^ $2 };
+   def: DEF spcs { $1 ^ $2 };
+   op: OP spcs { $1 ^ $2 };
+   abbr: ABBR spcs { $1 ^ $2 };
+   var: VAR spcs { $1 ^ $2 };
+   ax: AX spcs { $1 ^ $2 };
+   req: REQ spcs { $1 ^ $2 };
+   load: LOAD spcs { $1 ^ $2 };
+   xp: XP spcs { $1 ^ $2 };
+   ind: IND spcs { $1 ^ $2 };
+   set: SET spcs { $1 ^ $2 };
+   notation: NOT spcs { $1 ^ $2 };
+   oc: OC spcs { $1 ^ $2 };
+   coe: COE spcs { $1 ^ $2 };
+   cn: CN spcs { $1 ^ $2 };
+   sc: SC spcs { $1 ^ $2 };
+   str: STR spcs { $1 ^ $2 };
+   id: ID spcs { $1 ^ $2 };
+   coerc: COERC spcs { $1 ^ $2 };
+   cm: CM spcs { $1 ^ $2 } | { "" }
+   wh: WITH spcs { $1 ^ $2 };
+
+/* SPACES *******************************************************************/
+
    comment:
       | OQ verbatims CQ { $1 ^ $2 ^ $3 }
    ;
      |           { ""      }
      | SPC rspcs { $1 ^ $2 }
    ;
-   xident:
-      | IDENT { $1 }
+
+/* IDENTIFIERS **************************************************************/
+
+   outer_keyword:
       | LET   { $1 }
       | TH    { $1 }
-      | QED   { $1 }
-      | PROOF { $1 }
       | VAR   { $1 }
       | AX    { $1 }
       | IND   { $1 }
+      | GEN   { $1 }
       | SEC   { $1 }
       | END   { $1 }
       | UNX   { $1 }
       | REQ   { $1 }
       | LOAD  { $1 }
+      | SET   { $1 }
       | NOT   { $1 }
       | ID    { $1 }
       | COERC { $1 }
+      | MOR   { $1 }
+   ;
+   inner_keyword:
+      | XP    { $1 }
+   ;
+   xident:
+      | IDENT         { $1 }
+      | outer_keyword { $1 }
+      | WITH          { $1 }
+   ;
+   qid:
+      | xident { [$1]            }
+      | qid AC { strip1 $2 :: $1 }
    ;
-   fs: FS spcs { $1 ^ $2 };
-   ident: xident spcs { $1 ^ $2 };
-   th: TH spcs { $1 ^ $2 };
-   xlet: LET spcs { $1 ^ $2 };
-   proof: PROOF spcs { $1 ^ $2 };
-   qed: QED spcs { $1 ^ $2 };
-   sec: SEC spcs { $1 ^ $2 };
-   xend: END spcs { $1 ^ $2 };
-   unx: UNX spcs { $1 ^ $2 };
-   def: DEF spcs { $1 ^ $2 };
-   op: OP spcs { $1 ^ $2 };
-   abbr: ABBR spcs { $1 ^ $2 };
-   var: VAR spcs { $1 ^ $2 };
-   ax: AX spcs { $1 ^ $2 };
-   req: REQ spcs { $1 ^ $2 };
-   load: LOAD spcs { $1 ^ $2 };
-   xp: XP spcs { $1 ^ $2 };
-   ip: IP spcs { $1 ^ $2 };
-   ind: IND spcs { $1 ^ $2 };
-   set: SET spcs { $1 ^ $2 };
-   notation: NOT spcs { $1 ^ $2 };
-   oc: OC spcs { $1 ^ $2 };
-   coe: COE spcs { $1 ^ $2 };
-   cn: CN spcs { $1 ^ $2 };
-   sc: SC spcs { $1 ^ $2 };
-   str: STR spcs { $1 ^ $2 };
-   id: ID spcs { $1 ^ $2 };
-   coerc: COERC spcs { $1 ^ $2 };
-
    idents:
-      | ident        { [$1]     }
-      | ident idents { $1 :: $2 }
+      | ident           { [$1]     }
+      | ident cm idents { $1 :: $3 }
+   ;
+
+/* PLAIN SKIP ***************************************************************/
+
+   plain_skip:
+      | IDENT           { $1 }
+      | inner_keyword   { $1 }
+      | STR             { $1 }
+      | INT             { $1 }
+      | COE             { $1 }
+      | OC              { $1 }
+      | CC              { $1 }
+      | SC              { $1 }
+      | CN              { $1 }
+      | CM              { $1 }
+      | EXTRA           { $1 }
+   ;
+   inner_skip:
+      | plain_skip     { $1 }
+      | outer_keyword  { $1 }
+      | AC             { $1 }
+      | DEF            { $1 }
+      | PROOF          { $1 }
+      | QED            { $1 }
+      | FS             { $1 }
+      | WITH           { $1 }
+   ;
+
+/* LEFT SKIP ****************************************************************/
+
+   rlskip:
+      | plain_skip       { $1, []                   }
+      | abbr li_skips IN { $1 ^ fst $2 ^ $3, snd $2 }
+      | op ocp_skips CP  { $1 ^ fst $2 ^ $3, snd $2 }
+      | IN               { $1, []                   }
+      | CP               { $1, []                   }
+   ;
+   xlskip:
+      | outer_keyword { $1, [] }
+      | AC            { $1, [] }
+      | WITH          { $1, [] }
+      | rlskip        { $1     }
+   ;
+   xlskips:
+      | xlskip spcs         { fst $1 ^ $2, snd $1                   }
+      | xlskip spcs xlskips { fst $1 ^ $2 ^ fst $3, snd $1 @ snd $3 }
+   ;
+   lskips:
+      | rlskip spcs         { fst $1 ^ $2, snd $1                   }
+      | rlskip spcs xlskips { fst $1 ^ $2 ^ fst $3, snd $1 @ snd $3 }
+   ;
+   opt_lskips:
+      | lskips { $1     }
+      |        { "", [] }
+   ;
+
+/* GENERAL SKIP *************************************************************/ 
+
+   rskip:
+      | rlskip { $1     }
+      | DEF    { $1, [] }
+   ;
+   xskip:
+      | outer_keyword { $1, [] }
+      | AC            { $1, [] }
+      | WITH          { $1, [] }
+      | rskip         { $1     }
+   ;
+   xskips:
+      | xskip spcs        { fst $1 ^ $2, snd $1                   }
+      | xskip spcs xskips { fst $1 ^ $2 ^ fst $3, snd $1 @ snd $3 }
+   ;
+   skips:
+      | rskip spcs        { fst $1 ^ $2, snd $1                   }
+      | rskip spcs xskips { fst $1 ^ $2 ^ fst $3, snd $1 @ snd $3 }
+   ;
+
+/* ABBREVIATION SKIP ********************************************************/
+
+   li_skip:
+      | inner_skip       { $1, []                   }
+      | abbr li_skips IN { $1 ^ fst $2 ^ $3, snd $2 }
+      | op ocp_skips CP  { $1 ^ fst $2 ^ $3, snd $2 }
+   ;
+   li_skips:
+      | li_skip spcs          { fst $1 ^ $2, snd $1                   }
+      | li_skip spcs li_skips { fst $1 ^ $2 ^ fst $3, snd $1 @ snd $3 }
    ;
+
+/* PARENTETIC SKIP **********************************************************/
+
+   ocp_skip:
+      | inner_skip       { $1, []                   }
+      | abbr li_skips IN { $1 ^ fst $2 ^ $3, snd $2 }
+      | op ocp_skips CP  { $1 ^ fst $2 ^ $3, snd $2 }
+      | IN               { $1, []                   }
+   ;
+   ocp_skips:
+      | ocp_skip spcs           { fst $1 ^ $2, snd $1                   }
+      | ocp_skip spcs ocp_skips { fst $1 ^ $2 ^ fst $3, snd $1 @ snd $3 }
+   ;
+
+/* VERBATIM SKIP ************************************************************/
    
+   verbatim:
+      | comment        { $1 }
+      | inner_skip     { $1 }
+      | ABBR           { $1 }
+      | IN             { $1 }
+      | OP             { $1 }
+      | CP             { $1 }
+      | SPC            { $1 }
+   ;
+   verbatims:
+      |                    { ""      }
+      | verbatim verbatims { $1 ^ $2 }
+   ;   
+
+/* PROOF STEPS **************************************************************/
+
+   step:
+      | macro_step   { $1     }
+      | skips FS     { snd $1 }
+   ;
+   steps:
+      | step spcs       { $1      }
+      | step spcs steps { $1 @ $3 }
+   ;
+   just:
+      | steps qed                   { $1          }
+      | proof fs steps qed          { $3          }
+      | proof skips                 { snd $2      }
+      | proof wh skips fs steps qed { snd $3 @ $5 }
+   ;
+   macro_step:
+      | th ident opt_lskips def xskips FS
+         { out "TH" $2;
+          [T.Inline (false, T.Con, trim $2, "", mk_flavour $1)]
+        }
+      | th ident lskips fs just FS 
+         { out "TH" $2;
+          $5 @ [T.Inline (false, T.Con, trim $2, "", mk_flavour $1)]
+        }
+      | gen ident def xskips FS
+         { out "TH" $2;
+          [T.Inline (false, T.Con, trim $2, "", mk_flavour $1)]
+        }      
+      | mor ident cn ident fs just FS
+         { out "MOR" $4; $6 @ mk_morphism (trim $4)                 }
+      | xlet ident opt_lskips def xskips FS
+         { out "TH" $2;
+          [T.Inline (true, T.Con, trim $2, "", mk_flavour $1)]
+        }
+      | xlet ident lskips fs just FS 
+         { out "TH" $2;
+          $5 @ [T.Inline (true, T.Con, trim $2, "", mk_flavour $1)]
+        }
+      | var idents cn xskips FS
+         { out "VAR" (cat $2); mk_vars true $2                      }
+      | ax idents cn xskips FS
+         { out "AX" (cat $2); mk_vars false $2                      }
+      | ind ident skips FS
+         { out "IND" $2;
+          T.Inline (false, T.Ind, trim $2, "", None) :: snd $3
+        }
+      | sec ident FS
+         { out "SEC" $2; [T.Section (true, trim $2, $1 ^ $2)]       }
+      | xend ident FS
+         { out "END" $2; [T.Section (false, trim $2, $1 ^ $2)]      }
+      | unx xskips FS
+         { out "UNX" (fst $2); [T.Unexport ($1 ^ fst $2 ^ trim $3)] }
+      | req xp ident FS
+         { out "REQ" $3; [T.Include (trim $3)]                      }
+      | req ident FS
+         { out "REQ" $2; [T.Include (trim $2)]                      } 
+      | load str FS
+         { out "REQ" $2; [T.Include (strip2 (trim $2))]             }
+      | coerc qid spcs skips FS
+         { out "COERCE" (hd $2); coercion (hd $2)                   }
+      | id coerc qid spcs skips FS
+         { out "COERCE" (hd $3); coercion (hd $3)                   }
+      | th ident error 
+         { out "ERROR" $2; failwith ("macro_step " ^ $2)            }
+      | ind ident error 
+         { out "ERROR" $2; failwith ("macro_step " ^ $2)            }
+      | var idents error 
+         { let vs = cat $2 in
+          out "ERROR" vs; failwith ("macro_step " ^ vs)            }
+      | ax idents error 
+         { let vs = cat $2 in
+          out "ERROR" vs; failwith ("macro_step " ^ vs)            }
+   ;
+
+/* VERNACULAR ITEMS *********************************************************/
+
+   item:
+      | OQ verbatims CQ       { [T.Comment $2]                       }
+      | macro_step            { $1                                   }
+      | set xskips FS         { [T.Unexport ($1 ^ fst $2 ^ trim $3)] }
+      | notation xskips FS    { notation ($1 ^ fst $2 ^ trim $3)     }
+      | error                 { out "ERROR" "item"; failwith "item"  }
+    ;
+    items:
+      | rspcs EOF        { []      }
+      | rspcs item items { $2 @ $3 }
+    ;
+
+
+/*
    cnot:
       | EXTRA { $1 }
       | INT   { $1 }
       | COE              { $1           }
       | STR              { $1           }   
       | abbr extends0 IN { $1 ^ $2 ^ $3 }
-      | op extends1 CP   { $1 ^ $2 ^ $3 }
-      
+      | op extends1 CP   { $1 ^ $2 ^ $3 }      
    ;
    strict:
       | xstrict { $1 }
       | extend1 spcs          { $1 ^ $2      }
       | extend1 spcs extends1 { $1 ^ $2 ^ $3 }
    ;
+   unexport_ff:
+      | IDENT          { $1 }
+      | AC             { $1 }
+      | STR            { $1 }
+      | OP             { $1 }
+      | ABBR           { $1 }
+      | IN             { $1 }
+      | CP             { $1 }
+      | SET            { $1 }
+   ;   
    unexport_rr:
-      | AC    { $1 }
-      | INT   { $1 }
-      | IDENT { $1 }
-      | EXTRA { $1 }
-      | CN    { $1 }
-      | COE   { $1 }
-      | STR   { $1 }   
-      | OP    { $1 }
-      | ABBR  { $1 }
-      | IN    { $1 }
-      | CP    { $1 }
-      | DEF   { $1 }
-      | SET   { $1 }
-      | NOT   { $1 }
-      | LOAD  { $1 }
-      | ID    { $1 } 
-      | COERC { $1 } 
+      | unexport_ff { $1 }
+      | INT         { $1 }
+      | EXTRA       { $1 }
+      | CN          { $1 }
+      | COE         { $1 }
+      | DEF         { $1 }
    ;
    unexport_r:
-      | unexport_rr  { $1, []                   }
-      | oc fields CC { $1 ^ fst $2 ^ $3, snd $2 }
+      | unexport_rr       { $1, []                   }
+      | oc fields CC      { $1 ^ fst $2 ^ $3, snd $2 }
+      | oc unexport_ff CC { $1, []                   }
    ;
    unexports_r:
       | unexport_r spcs             { fst $1 ^ $2, snd $1                   }
-      | unexport_r spcs unexports_r { fst $1 ^ $2 ^ fst $3, snd $1 @ snd $3 } 
+      | unexport_r spcs unexports_r { fst $1 ^ $2 ^ fst $3, snd $1 @ snd $3 }
    ;
    field: 
-      | ident cn unexports_r  
+      | ident cn unexports_r
+         { $1 ^ $2 ^ fst $3, snd $3                      }
+      | ident def unexports_r
          { $1 ^ $2 ^ fst $3, snd $3                      }
       | ident coe unexports_r 
          { $1 ^ $2 ^ fst $3, snd $3 @ coercion (trim $1) }
       | unexport_r { $1     }
       | SC         { $1, [] }
       | CC         { $1, [] }
+      | IP         { $1, [] }
+      | LET        { $1, [] }       
+      | VAR        { $1, [] }
+      
    ;   
    unexports:
       | unexport spcs           { fst $1 ^ $2, snd $1                   }
       | unexport spcs unexports { fst $1 ^ $2 ^ fst $3, snd $1 @ snd $3 }
    ;
    verbatim:
-      | unexport_rr { $1 }
-      | OC          { $1 }
-      | CC          { $1 }
-      | SC          { $1 }
-      | TH          { $1 }       
-      | LET         { $1 }       
-      | VAR         { $1 }
-      | AX          { $1 }
-      | IND         { $1 }
-      | SEC         { $1 }
-      | END         { $1 }
-      | UNX         { $1 }
-      | REQ         { $1 } 
-      | XP          { $1 } 
-      | IP          { $1 } 
-      | QED         { $1 }
-      | PROOF       { $1 }
-      | FS          { $1 }
-      | SPC         { $1 } 
+      | unexport_rr    { $1 }
+      | reserved_ident { $1 }
+      | comment        { $1 }
+      | OC             { $1 }
+      | CC             { $1 }
+      | SC             { $1 }
+      | XP             { $1 } 
+      | IP             { $1 } 
+      | FS             { $1 }
+      | SPC            { $1 }
    ;
    verbatims:
       |                    { ""      }
       | step spcs       { []      }
       | step spcs steps { $1 @ $3 }
    ;
-   
-   qid:
-      | xident { [$1]            }
-      | qid AC { strip1 $2 :: $1 }
-   ;
-   
+      
    macro_step:
       | th ident restricts fs proof FS steps qed FS 
          { out "TH" $2;
          { out "TH" $2;
           [T.Inline (false, T.Con, trim $2, "", mk_flavour $1)]
         }
+      | gen ident def restricts FS
+         { out "TH" $2;
+          [T.Inline (false, T.Con, trim $2, "", mk_flavour $1)]
+        }      
       | xlet ident restricts fs proof FS steps qed FS 
          { out "LET" $2;
           $7 @ [T.Inline (true, T.Con, trim $2, "", mk_flavour $1)]
          { out "SEC" $2; [T.Section (true, trim $2, $1 ^ $2)]       }
       | xend ident FS
          { out "END" $2; [T.Section (false, trim $2, $1 ^ $2)]      }
-      | unx unexports FS 
+      | unx unexports FS
          { out "UNX" (fst $2); [T.Unexport ($1 ^ fst $2 ^ trim $3)] }
       | req xp ident FS
          { out "REQ" $3; [T.Include (trim $3)]                      }
       | rspcs EOF        { []      }
       | rspcs item items { $2 @ $3 }
     ;
+*/
diff --git a/helm/software/matita/contribs/procedural/CoRN/CoRN.conf.xml b/helm/software/matita/contribs/procedural/CoRN/CoRN.conf.xml
new file mode 100644 (file)
index 0000000..7fb45b3
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<helm_registry>
+  <section name="package">      
+    <key name="input_name">CoRN</key>
+    <key name="output_name">CoRN</key>
+    <key name="input_base_uri">cic:/CoRN</key>
+    <key name="output_base_uri">cic:/matita/procedural/CoRN</key>
+    <key name="input_path">/projects/helm/exportation/CoRN</key>
+    <key name="output_path">contribs/procedural/CoRN</key>
+    <key name="input_type">.v</key>
+    <key name="output_type">procedural</key>
+<!--
+    <key name="coercion">Z_of_nat cic:/Coq/ZArith/BinInt/Z_of_nat.con</key>
+    <key name="coercion">Zpos cic:/Coq/ZArith/BinInt/Z.ind#xpointer(1/1/2)</key>
+    <key name="coercion">nat_of_P cic:/Coq/NArith/BinPos/nat_of_P.con</key>
+-->  
+  </section>
+</helm_registry>
diff --git a/helm/software/matita/contribs/procedural/CoRN/CoRN.ma b/helm/software/matita/contribs/procedural/CoRN/CoRN.ma
new file mode 100644 (file)
index 0000000..36608f1
--- /dev/null
@@ -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 *********************)
+
+include "preamble.ma".
+
+(* From algebra/Basics ****************************************************)
+
+(* NOTATION
+Notation Pair := (pair (B:=_)).
+*)
+
+(* NOTATION
+Notation Proj1 := (proj1 (B:=_)).
+*)
+
+(* NOTATION
+Notation Proj2 := (proj2 (B:=_)).
+*)
+
+(* COERCION
+cic:/Coq/ZArith/BinInt/Z_of_nat.con
+*)
+
+(* From algebra/CAbGroups *************************************************)
+
+(* COERCION
+cic:/CoRN/algebra/CAbGroups/cag_crr.con
+*)
+
+(* From algebra/CAbMonoids ************************************************)
+
+(* COERCION
+cic:/CoRN/algebra/CAbMonoids/cam_crr.con
+*)
+
+(* From algebra/CFields ***************************************************)
+
+(* COERCION
+cic:/CoRN/algebra/CFields/cf_crr.con
+*)
+
+(* 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
+cic:/CoRN/algebra/CGroups/cg_crr.con
+*)
+
+(* 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
+cic:/CoRN/algebra/CMonoids/cm_crr.con
+*)
+
+(* NOTATION
+Notation Zero := (cm_unit _).
+*)
+
+(* From algebra/COrdAbs ***************************************************)
+
+(* NOTATION
+Notation ZeroR := (Zero:R).
+*)
+
+(* NOTATION
+Notation AbsBig := (absBig _).
+*)
+
+(* From algebra/COrdCauchy ************************************************)
+
+(* COERCION
+cic:/CoRN/algebra/COrdCauchy/CS_seq.con
+*)
+
+(* From algebra/COrdFields ************************************************)
+
+(* COERCION
+cic:/CoRN/algebra/COrdFields/cof_crr.con
+*)
+
+(* 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
+cic:/CoRN/algebra/CRings/cr_crr.con
+*)
+
+(* 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
+cic:/CoRN/algebra/CSemiGroups/csg_crr.con
+*)
+
+(* 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
+cic:/CoRN/algebra/CSetoidFun/bpfpfun.con
+*)
+
+(* NOTATION
+Notation BDom := (bpfdom _ _).
+*)
+
+(* COERCION
+cic:/CoRN/algebra/CSetoidFun/pfpfun.con
+*)
+
+(* 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
+cic:/CoRN/algebra/CSetoids/cs_crr.con
+*)
+
+(* 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
+cic:/CoRN/algebra/CSetoids/csp_pred.con
+*)
+
+(* COERCION
+cic:/CoRN/algebra/CSetoids/csp'_pred.con
+*)
+
+(* COERCION
+cic:/CoRN/algebra/CSetoids/csr_rel.con
+*)
+
+(* COERCION
+cic:/CoRN/algebra/CSetoids/Ccsr_rel.con
+*)
+
+(* COERCION
+cic:/CoRN/algebra/CSetoids/csf_fun.con
+*)
+
+(* COERCION
+cic:/CoRN/algebra/CSetoids/csbf_fun.con
+*)
+
+(* COERCION
+cic:/CoRN/algebra/CSetoids/un_op_fun.con
+*)
+
+(* COERCION
+cic:/CoRN/algebra/CSetoids/bin_op_bin_fun.con
+*)
+
+(* COERCION
+cic:/CoRN/algebra/CSetoids/outer_op_bin_fun.con
+*)
+
+(* COERCION
+cic:/CoRN/algebra/CSetoids/scs_elem.con
+*)
+
+(* From algebra/CVectorSpace **********************************************)
+
+(* COERCION
+cic:/CoRN/algebra/CVectorSpace/vs_vs.con
+*)
+
+(* 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
+cic:/CoRN/fta/CC_Props/CC_seq.con
+*)
+
+(* From fta/FTAreg ********************************************************)
+
+(* COERCION
+cic:/CoRN/fta/FTAreg/z_el.con
+*)
+
+(* COERCION
+cic:/CoRN/fta/FTAreg/Kntup.con
+*)
+
+(* From ftc/FTC ***********************************************************)
+
+(* NOTATION
+Notation "[-S-] F" := (Fprim F) (at level 20).
+*)
+
+(* From ftc/Integral ******************************************************)
+
+(* NOTATION
+Notation Integral := (integral _ _ Hab).
+*)
+
+(* From ftc/MoreIntervals *************************************************)
+
+(* COERCION
+cic:/CoRN/ftc/MoreIntervals/iprop.con
+*)
+
+(* From ftc/Partitions ****************************************************)
+
+(* COERCION
+cic:/CoRN/ftc/Partitions/Pts.con
+*)
+
+(* 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
+cic:/CoRN/metrics/CMetricSpaces/scms_crr.con
+*)
+
+(* From metrics/CPseudoMSpaces ********************************************)
+
+(* COERCION
+cic:/CoRN/metrics/CPseudoMSpaces/cms_crr.con
+*)
+
+(* 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 "{<Q}" := Qlt (no associativity, at level 90).
+*)
+
+(* NOTATION
+Infix "{+Q}" := Qplus (no associativity, at level 85).
+*)
+
+(* NOTATION
+Infix "{*Q}" := Qmult (no associativity, at level 80).
+*)
+
+(* NOTATION
+Notation "{-Q}" := Qopp (at level 1, left associativity).
+*)
+
+(* COERCION
+cic:/CoRN/model/structures/Qsec/inject_Z.con
+*)
+
+(* From model/structures/Zsec *********************************************)
+
+(* NOTATION
+Infix "{#Z}" := ap_Z (no associativity, at level 90).
+*)
+
+(* COERCION
+cic:/Coq/ZArith/BinInt/Z.ind#xpointer(1/1/2)
+*)
+
+(* From reals/Bridges_LUB *************************************************)
+
+(* NOTATION
+Notation "( p , q )" := (pairT p q).
+*)
+
+(* From reals/CMetricFields ***********************************************)
+
+(* COERCION
+cic:/CoRN/reals/CMetricFields/cmf_crr.con
+*)
+
+(* NOTATION
+Notation MAbs := (cmf_abs _).
+*)
+
+(* COERCION
+cic:/CoRN/reals/CMetricFields/MCS_seq.con
+*)
+
+(* From reals/CReals ******************************************************)
+
+(* COERCION
+cic:/CoRN/reals/CReals/crl_crr.con
+*)
+
+(* From reals/CauchySeq ***************************************************)
+
+(* NOTATION
+Notation PartIR := (PartFunct IR).
+*)
+
+(* NOTATION
+Notation ProjIR1 := (prj1 IR _ _ _).
+*)
+
+(* NOTATION
+Notation ProjIR2 := (prj2 IR _ _ _).
+*)
+
+(* NOTATION
+Notation ZeroR := (Zero:IR).
+*)
+
+(* NOTATION
+Notation OneR := (One:IR).
+*)
+
+(* From reals/Cauchy_CReals ***********************************************)
+
+(* NOTATION
+Notation "'R_COrdField''" := (R_COrdField F).
+*)
+
+(* From reals/Intervals ***************************************************)
+
+(* NOTATION
+Notation Compact := (compact _ _).
+*)
+
+(* NOTATION
+Notation FRestr := (Frestr (compact_wd _ _ _)).
+*)
+
+(* From reals/Q_dense *****************************************************)
+
+(* COERCION
+cic:/CoRN/reals/Q_dense/pair_crr.con
+*)
+
+(* NOTATION
+Notation "( A , B )" := (pairT A B).
+*)
+
+(* From reals/Q_in_CReals *************************************************)
+
+(* COERCION
+cic:/Coq/NArith/BinPos/nat_of_P.con
+*)
+
+(* From reals/R_morphism **************************************************)
+
+(* COERCION
+cic:/CoRN/reals/R_morphism/map.con
+*)
+
+(* From tactics/FieldReflection *******************************************)
+
+(* NOTATION
+Notation II := (interpF F val unop binop pfun).
+*)
+
+(* From tactics/GroupReflection *******************************************)
+
+(* NOTATION
+Notation II := (interpG G val unop binop pfun).
+*)
+
+(* From tactics/RingReflection ********************************************)
+
+(* NOTATION
+Notation II := (interpR R val unop binop pfun).
+*)
+
+(* From transc/RealPowers *************************************************)
+
+(* NOTATION
+Notation "x [!] y [//] Hy" := (power x y Hy) (at level 20).
+*)
+
+(* NOTATION
+Notation "F {!} G" := (FPower F G) (at level 20).
+*)
+
+(* From devel/loeb/per/lst2fun ********************************************)
+
+(* COERCION
+cic:/CoRN/devel/loeb/per/lst2fun/F_crr.con
+*)
+
+(* COERCION
+cic:/CoRN/devel/loeb/per/lst2fun/to_nat.con
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/Makefile b/helm/software/matita/contribs/procedural/CoRN/Makefile
new file mode 100644 (file)
index 0000000..f558b61
--- /dev/null
@@ -0,0 +1,3 @@
+DEVEL = CoRN
+
+include ../Makefile.common
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/Basics.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/Basics.mma
new file mode 100644 (file)
index 0000000..2796abc
--- /dev/null
@@ -0,0 +1,334 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Basics.v,v 1.7 2004/04/09 15:58:31 lcf Exp $ *)
+
+(*#* printing alpha %\ensuremath{\alpha}% #&alpha;# *)
+
+(*#* printing beta %\ensuremath{\beta}% #&beta;# *)
+
+(*#* printing delta %\ensuremath{\delta}% #&delta;# *)
+
+(*#* printing eps %\ensuremath{\varepsilon}% #&epsilon;# *)
+
+(*#* printing phi %\ensuremath{\phi}% #&phi;# *)
+
+(*#* printing eta %\ensuremath{\eta}% #&eta;# *)
+
+(*#* printing omega %\ensuremath{\omega}% #&omega;# *)
+
+(*#* printing nat %\ensuremath{\mathbb N}% #<b>N</b># *)
+
+(*#* printing Z %\ensuremath{\mathbb Z}% #<b>Z</b># *)
+
+include "algebra/ListType.ma".
+
+(*#* *Basics
+This is random stuff that should be in the Coq basic library.
+*)
+
+inline procedural "cic:/CoRN/algebra/Basics/lt_le_dec.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/lt_z_two.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/le_pred.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/lt_mult_right.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/le_mult_right.con" as lemma.
+
+(*#* The power function does not exist in the standard library *)
+
+inline procedural "cic:/CoRN/algebra/Basics/power.con" as definition.
+
+(*#* Factorial function. Does not exist in Arith.
+Needed for special operations on polynomials. *)
+
+inline procedural "cic:/CoRN/algebra/Basics/fac.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/Basics/nat_fac_gtzero.con" as lemma.
+
+(* needed for computational behavior of "Inversion" tactic *)
+
+(* UNEXPORTED
+Transparent sym_eq.
+*)
+
+(* UNEXPORTED
+Transparent f_equal.
+*)
+
+(* NOTATION
+Notation Pair := (pair (B:=_)).
+*)
+
+(* NOTATION
+Notation Proj1 := (proj1 (B:=_)).
+*)
+
+(* NOTATION
+Notation Proj2 := (proj2 (B:=_)).
+*)
+
+(* 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 procedural "cic:/CoRN/algebra/Basics/not_r_sumbool_rec.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/not_l_sumbool_rec.con" as lemma.
+
+(* 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 *)
+
+(* COERCION
+cic:/Coq/ZArith/BinInt/Z_of_nat.con
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/Basics/POS_anti_convert.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/NEG_anti_convert.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/lt_O_positive_to_nat.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/anti_convert_pred_convert.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/p_is_some_anti_convert.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/convert_is_POS.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/min_convert_is_NEG.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/inject_nat_convert.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/Z_exh.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/nats_Z_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/pred_succ_Z_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/Zmult_minus_distr_r.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/Zodd_Zeven_min1.con" as lemma.
+
+(* begin hide *)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(* UNEXPORTED
+Unset Strict Implicit.
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/Basics/caseZ_diff.con" as definition.
+
+(* begin hide *)
+
+(* UNEXPORTED
+Set Strict Implicit.
+*)
+
+(* UNEXPORTED
+Unset Implicit Arguments.
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/Basics/caseZ_diff_O.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/caseZ_diff_Pos.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/caseZ_diff_Neg.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/proper_caseZ_diff.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/diff_Z_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/Zlt_reg_mult_l.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/Zlt_opp.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/Zlt_conv_mult_l.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/Zgt_not_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/Zmult_absorb.con" as lemma.
+
+(* UNEXPORTED
+Section Well_foundedT
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/Basics/Well_foundedT/A.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/Basics/Well_foundedT/R.var
+*)
+
+(*#* The accessibility predicate is defined to be non-informative *)
+
+inline procedural "cic:/CoRN/algebra/Basics/Acc.ind".
+
+(* UNEXPORTED
+End Well_foundedT
+*)
+
+(* UNEXPORTED
+Section AccT
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/Basics/AccT/A.var
+*)
+
+inline procedural "cic:/CoRN/algebra/Basics/well_founded.con" as definition.
+
+(* UNEXPORTED
+End AccT
+*)
+
+(* UNEXPORTED
+Implicit Arguments Acc [A].
+*)
+
+(* UNEXPORTED
+Section IndT
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/Basics/IndT/A.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/Basics/IndT/R.var
+*)
+
+(* UNEXPORTED
+Section AccIter
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/Basics/IndT/AccIter/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/Basics/IndT/AccIter/F.var
+*)
+
+inline procedural "cic:/CoRN/algebra/Basics/Acc_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Basics/Acc_iter.con" as definition.
+
+(* UNEXPORTED
+End AccIter
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/Basics/IndT/Rwf.var
+*)
+
+inline procedural "cic:/CoRN/algebra/Basics/well_founded_induction_type.con" as theorem.
+
+(* UNEXPORTED
+End IndT
+*)
+
+(* UNEXPORTED
+Section InductionT
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/Basics/InductionT/A.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/Basics/InductionT/f.var
+*)
+
+inline procedural "cic:/CoRN/algebra/Basics/ltof.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/Basics/well_founded_ltof.con" as theorem.
+
+inline procedural "cic:/CoRN/algebra/Basics/induction_ltof2T.con" as theorem.
+
+(* UNEXPORTED
+End InductionT
+*)
+
+(* UNEXPORTED
+Section InductionTT
+*)
+
+inline procedural "cic:/CoRN/algebra/Basics/lt_wf_rect.con" as lemma.
+
+(* UNEXPORTED
+End InductionTT
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/CAbGroups.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CAbGroups.mma
new file mode 100644 (file)
index 0000000..61aa193
--- /dev/null
@@ -0,0 +1,338 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+include "algebra/CGroups.ma".
+
+(* UNEXPORTED
+Section Abelian_Groups
+*)
+
+(*#*
+* Abelian Groups
+Now we introduce commutativity and add some results.
+*)
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/is_CAbGroup.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/CAbGroup.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CAbGroups/cag_crr.con
+*)
+
+(* UNEXPORTED
+Section AbGroup_Axioms
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Abelian_Groups/AbGroup_Axioms/G.var
+*)
+
+(*#*
+%\begin{convention}% Let [G] be an Abelian Group.
+%\end{convention}%
+*)
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/CAbGroup_is_CAbGroup.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/cag_commutes.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/cag_commutes_unfolded.con" as lemma.
+
+(* UNEXPORTED
+End AbGroup_Axioms
+*)
+
+(* UNEXPORTED
+Section SubCAbGroups
+*)
+
+(*#*
+** Subgroups of an Abelian Group
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Abelian_Groups/SubCAbGroups/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Abelian_Groups/SubCAbGroups/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Abelian_Groups/SubCAbGroups/Punit.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Abelian_Groups/SubCAbGroups/op_pres_P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Abelian_Groups/SubCAbGroups/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 procedural "cic:/CoRN/algebra/CAbGroups/Abelian_Groups/SubCAbGroups/subcrr.con" "Abelian_Groups__SubCAbGroups__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/isabgrp_scrr.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/Build_SubCAbGroup.con" as definition.
+
+(* UNEXPORTED
+End SubCAbGroups
+*)
+
+(* UNEXPORTED
+Section Various
+*)
+
+(*#*
+** Basic properties of Abelian groups
+*)
+
+(* UNEXPORTED
+Hint Resolve cag_commutes_unfolded: algebra.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Abelian_Groups/Various/G.var
+*)
+
+(*#*
+%\begin{convention}% Let [G] be an Abelian Group.
+%\end{convention}%
+*)
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/cag_op_inv.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cag_op_inv: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/assoc_1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/minus_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/op_lft_resp_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/cag_ap_cancel_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/plus_cancel_ap_lft.con" as lemma.
+
+(* 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].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Nice_Char/S.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Nice_Char/unit.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Nice_Char/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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Nice_Char/plus_lext.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Nice_Char/plus_lunit.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Nice_Char/plus_comm.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Nice_Char/plus_assoc.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Nice_Char/inv.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Nice_Char/inv_inv.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/plus_rext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/plus_runit.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/plus_is_fun.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/inv_inv'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/plus_fun.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/Build_CSemiGroup'.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/Build_CMonoid'.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/Build_CGroup'.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/Build_CAbGroup'.con" as definition.
+
+(* UNEXPORTED
+End Nice_Char
+*)
+
+(*#* ** Iteration
+
+For reflection the following is needed; hopefully it is also useful.
+*)
+
+(* UNEXPORTED
+Section Group_Extras
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbGroups/Group_Extras/G.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/nmult.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/nmult_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/nmult_one.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/nmult_Zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/nmult_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/nmult_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/nmult_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/nmult_plus'.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nmult_wd nmult_Zero nmult_inv nmult_plus nmult_plus': algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/zmult.con" as definition.
+
+(*
+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 procedural "cic:/CoRN/algebra/CAbGroups/zmult_char.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/zmult_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/zmult_one.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/zmult_min_one.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/zmult_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/zmult_Zero.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zmult_zero: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/zmult_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/zmult_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbGroups/zmult_plus'.con" as lemma.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/algebra/CAbMonoids.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CAbMonoids.mma
new file mode 100644 (file)
index 0000000..b1bce83
--- /dev/null
@@ -0,0 +1,109 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+include "algebra/CMonoids.ma".
+
+(* UNEXPORTED
+Section Abelian_Monoids
+*)
+
+(*#*
+* Abelian Monoids
+Now we introduce commutativity and add some results.
+*)
+
+inline procedural "cic:/CoRN/algebra/CAbMonoids/is_CAbMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CAbMonoids/CAbMonoid.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CAbMonoids/cam_crr.con
+*)
+
+(* UNEXPORTED
+Section AbMonoid_Axioms
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbMonoids/Abelian_Monoids/AbMonoid_Axioms/M.var
+*)
+
+(*#*
+%\begin{convention}% Let [M] be an abelian monoid.
+%\end{convention}%
+*)
+
+inline procedural "cic:/CoRN/algebra/CAbMonoids/CAbMonoid_is_CAbMonoid.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbMonoids/cam_commutes.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbMonoids/cam_commutes_unfolded.con" as lemma.
+
+(* UNEXPORTED
+End AbMonoid_Axioms
+*)
+
+(* UNEXPORTED
+Section SubCAbMonoids
+*)
+
+(*#*
+** Subgroups of an Abelian Monoid
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbMonoids/Abelian_Monoids/SubCAbMonoids/M.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbMonoids/Abelian_Monoids/SubCAbMonoids/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbMonoids/Abelian_Monoids/SubCAbMonoids/Punit.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CAbMonoids/Abelian_Monoids/SubCAbMonoids/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 procedural "cic:/CoRN/algebra/CAbMonoids/Abelian_Monoids/SubCAbMonoids/subcrr.con" "Abelian_Monoids__SubCAbMonoids__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CAbMonoids/isabgrp_scrr.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CAbMonoids/Build_SubCAbMonoid.con" as definition.
+
+(* UNEXPORTED
+End SubCAbMonoids
+*)
+
+(* UNEXPORTED
+End Abelian_Monoids
+*)
+
+(* UNEXPORTED
+Hint Resolve cam_commutes_unfolded: algebra.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/CFields.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CFields.mma
new file mode 100644 (file)
index 0000000..5cc4834
--- /dev/null
@@ -0,0 +1,607 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CFields.v,v 1.12 2004/04/23 10:00:52 lcf Exp $ *)
+
+(*#* printing [/] %\ensuremath{/}% #/# *)
+
+(*#* printing [//] %\ensuremath\ddagger% #&Dagger;# *)
+
+(*#* printing {/} %\ensuremath{/}% #/# *)
+
+(*#* printing {1/} %\ensuremath{\frac1\cdot}% #1/# *)
+
+(*#* printing [/]?[//] %\ensuremath{/?\ddagger}% #/?&Dagger;# *)
+
+include "algebra/CRings.ma".
+
+(* 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 procedural "cic:/CoRN/algebra/CFields/is_CField.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CFields/CField.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CFields/cf_crr.con
+*)
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CFields/f_rcpcl'.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CFields/f_rcpcl.con" as definition.
+
+(* 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 procedural "cic:/CoRN/algebra/CFields/cf_div.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments cf_div [F].
+*)
+
+(* NOTATION
+Notation "x [/] y [//] Hy" := (cf_div x y Hy) (at level 80).
+*)
+
+(*#*
+%\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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CFields/Field_axioms/F.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/CField_is_CField.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/rcpcl_is_inverse.con" as lemma.
+
+(* UNEXPORTED
+End Field_axioms
+*)
+
+(* UNEXPORTED
+Section Field_basics
+*)
+
+(*#* ** Field basics
+%\begin{convention}% Let [F] be a field.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CFields/Field_basics/F.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/rcpcl_is_inverse_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/field_mult_inv.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve field_mult_inv: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/field_mult_inv_op.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CFields/Field_multiplication/F.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/mult_resp_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/mult_lft_resp_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/mult_rht_resp_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/mult_resp_neq_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/mult_resp_neq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/mult_eq_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/mult_cancel_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/mult_cancel_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/square_eq_aux.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/square_eq_weak.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/cond_square_eq.con" as lemma.
+
+(* UNEXPORTED
+End Field_multiplication
+*)
+
+(* UNEXPORTED
+Section x_square
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/x_xminone.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/square_id.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CFields/Rcpcl_properties/F.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/inv_one.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/f_rcpcl_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/f_rcpcl_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/f_rcpcl_resp_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/f_rcpcl_f_rcpcl.con" as lemma.
+
+(* UNEXPORTED
+End Rcpcl_properties
+*)
+
+(* UNEXPORTED
+Section MultipGroup
+*)
+
+(*#*
+** The multiplicative group of nonzeros of a field.
+%\begin{convention}% Let [F] be a field
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CFields/MultipGroup/F.var
+*)
+
+(*#*
+The multiplicative monoid of NonZeros.
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/NonZeroMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CFields/fmg_cs_inv.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CFields/plus_nonzeros_eq_mult_dom.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/cfield_to_mult_cgroup.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CFields/Div_properties/F.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/div_prop.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/div_1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/div_1'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/div_1''.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve div_1: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/x_div_x.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve x_div_x: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/x_div_one.con" as lemma.
+
+(*#*
+The next lemma says $x\cdot\frac{y}{z} = \frac{x\cdot y}{z}$
+#x.(y/z) = (x.y)/z#.
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/x_mult_y_div_z.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve x_mult_y_div_z: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/div_wd.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/algebra/CFields/div_div.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/div_resp_ap_zero_rev.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/div_resp_ap_zero.con" as lemma.
+
+(*#*
+The next lemma says $\frac{x}{\frac{y}{z}} = \frac{x\cdot z}{y}$
+#[x/(y/z) = (x.z)/y]#
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/div_div2.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/algebra/CFields/mult_of_divs.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/div_dist.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/div_dist'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/div_semi_sym.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve div_semi_sym: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/eq_div.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/div_strext.con" as lemma.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CFields/Mult_Cancel_Ap_Zero/F.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/mult_cancel_ap_zero_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/mult_cancel_ap_zero_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/recip_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/recip_resp_ap.con" as lemma.
+
+(* 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}% #<i>partial</i># 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CFields/CField_Ops/X.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CFields/CField_Ops/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CFields/CField_Ops/G.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/algebra/CFields/CField_Ops/P.con" "CField_Ops__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CFields/CField_Ops/Q.con" "CField_Ops__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+Section Part_Function_Recip
+*)
+
+(*#*
+Some auxiliary notions are helpful in defining the domain.
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/CField_Ops/Part_Function_Recip/R.con" "CField_Ops__Part_Function_Recip__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CFields/CField_Ops/Part_Function_Recip/Ext2R.con" "CField_Ops__Part_Function_Recip__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CFields/part_function_recip_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/part_function_recip_pred_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/Frecip.con" as definition.
+
+(* UNEXPORTED
+End Part_Function_Recip
+*)
+
+(* UNEXPORTED
+Section Part_Function_Div
+*)
+
+(*#*
+For division things work out almost in the same way.
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/CField_Ops/Part_Function_Div/R.con" "CField_Ops__Part_Function_Div__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CFields/CField_Ops/Part_Function_Div/Ext2R.con" "CField_Ops__Part_Function_Div__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CFields/part_function_div_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/part_function_div_pred_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/Fdiv.con" as definition.
+
+(* UNEXPORTED
+End Part_Function_Div
+*)
+
+(*#*
+%\begin{convention}% Let [R:X->CProp].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CFields/CField_Ops/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CFields/included_FRecip.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/included_FRecip'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/included_FDiv.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/included_FDiv'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CFields/included_FDiv''.con" as lemma.
+
+(* UNEXPORTED
+End CField_Ops
+*)
+
+(* UNEXPORTED
+Implicit Arguments Frecip [X].
+*)
+
+(* NOTATION
+Notation "{1/} x" := (Frecip x) (at level 2, right associativity).
+*)
+
+(* UNEXPORTED
+Implicit Arguments Fdiv [X].
+*)
+
+(* NOTATION
+Infix "{/}" := Fdiv (at level 41, no associativity).
+*)
+
+(* UNEXPORTED
+Hint Resolve included_FRecip included_FDiv : included.
+*)
+
+(* UNEXPORTED
+Hint Immediate included_FRecip' included_FDiv' included_FDiv'' : included.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/CGroups.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CGroups.mma
new file mode 100644 (file)
index 0000000..e7cc279
--- /dev/null
@@ -0,0 +1,431 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CGroups.v,v 1.9 2004/04/23 10:00:52 lcf Exp $ *)
+
+(*#* printing [-] %\ensuremath-% #&minus;# *)
+
+(*#* printing [--] %\ensuremath-% #&minus;# *)
+
+(*#* printing {-} %\ensuremath-% #&minus;# *)
+
+(*#* printing {--} %\ensuremath-% #&minus;# *)
+
+include "algebra/CMonoids.ma".
+
+(* Begin_SpecReals *)
+
+(*#*
+* Groups
+** Definition of the notion of Group
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/is_inverse.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments is_inverse [S].
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/is_CGroup.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CGroups/CGroup.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CGroups/cg_crr.con
+*)
+
+(* End_SpecReals *)
+
+(* Begin_SpecReals *)
+
+(* UNEXPORTED
+Implicit Arguments cg_inv [c].
+*)
+
+(* NOTATION
+Notation "[--] x" := (cg_inv x) (at level 2, right associativity).
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_minus.con" as definition.
+
+(*#*
+%\begin{nameconvention}%
+In the names of lemmas, we will denote [[--] ] with [inv],
+and [ [-] ] with [minus].
+%\end{nameconvention}%
+*)
+
+(* UNEXPORTED
+Implicit Arguments cg_minus [G].
+*)
+
+(* NOTATION
+Infix "[-]" := cg_minus (at level 50, left associativity).
+*)
+
+(* End_SpecReals *)
+
+(*#*
+** Group axioms
+%\begin{convention}% Let [G] be a group.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+Section CGroup_axioms
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CGroups/CGroup_axioms/G.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_inverse.con" as lemma.
+
+(* UNEXPORTED
+End CGroup_axioms
+*)
+
+(*#*
+** Group basics
+General properties of groups.
+%\begin{convention}% Let [G] be a group.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+Section CGroup_basics
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CGroups/CGroup_basics/G.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_rht_inv_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_lft_inv_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_minus_correct.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cg_rht_inv_unfolded cg_lft_inv_unfolded cg_minus_correct:
+  algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_inverse'.con" as lemma.
+
+(* Hints for Auto *)
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_minus_unfolded.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cg_minus_unfolded: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_minus_wd.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cg_minus_wd: algebra_c.
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_minus_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_minus_is_csetoid_bin_op.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CGroups/grp_inv_assoc.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve grp_inv_assoc: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_inv_unique.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_inv_inv.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cg_inv_inv: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_cancel_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_cancel_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_inv_unique'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_inv_unique_2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_zero_inv.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cg_zero_inv: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_inv_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_inv_op.con" as lemma.
+
+(*#*
+Useful for interactive proof development.
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/x_minus_x.con" as lemma.
+
+(*#*
+** Sub-groups
+%\begin{convention}% Let [P] be a predicate on [G] containing
+[Zero] and closed under [[+]] and [[--] ].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+Section SubCGroups
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/Punit.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/op_pres_P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/inv_pres_P.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/subcrr.con" "CGroup_basics__SubCGroups__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CGroups/CGroup_basics/SubCGroups/subinv.con" "CGroup_basics__SubCGroups__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CGroups/isgrp_scrr.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/Build_SubCGroup.con" as definition.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CGroups/Assoc_properties/G.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/assoc_2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/zero_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_cancel_mixed.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/plus_resp_eq.con" as lemma.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CGroups/cgroups_apartness/G.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_add_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/op_rht_resp_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/cg_ap_cancel_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/plus_cancel_ap_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/minus_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/zero_minus_apart.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/inv_resp_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/inv_resp_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/minus_resp_ap_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/minus_resp_ap_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/minus_cancel_ap_rht.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CGroups/CGroup_Ops/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CGroups/CGroup_Ops/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CGroups/CGroup_Ops/F'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/algebra/CGroups/CGroup_Ops/P.con" "CGroup_Ops__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CGroups/CGroup_Ops/Q.con" "CGroup_Ops__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+Section Part_Function_Inv
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/part_function_inv_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/Finv.con" as definition.
+
+(* UNEXPORTED
+End Part_Function_Inv
+*)
+
+(* UNEXPORTED
+Section Part_Function_Minus
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/part_function_minus_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/Fminus.con" as definition.
+
+(* UNEXPORTED
+End Part_Function_Minus
+*)
+
+(*#*
+%\begin{convention}% Let [R:G->CProp].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CGroups/CGroup_Ops/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CGroups/included_FInv.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/included_FInv'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/included_FMinus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/included_FMinus'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CGroups/included_FMinus''.con" as lemma.
+
+(* UNEXPORTED
+End CGroup_Ops
+*)
+
+(* UNEXPORTED
+Implicit Arguments Finv [G].
+*)
+
+(* NOTATION
+Notation "{--} x" := (Finv x) (at level 2, right associativity).
+*)
+
+(* UNEXPORTED
+Implicit Arguments Fminus [G].
+*)
+
+(* NOTATION
+Infix "{-}" := Fminus (at level 50, left associativity).
+*)
+
+(* UNEXPORTED
+Hint Resolve included_FInv included_FMinus : included.
+*)
+
+(* UNEXPORTED
+Hint Immediate included_FInv' included_FMinus' included_FMinus'' : included.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/CLogic.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CLogic.mma
new file mode 100644 (file)
index 0000000..4c77e6b
--- /dev/null
@@ -0,0 +1,633 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $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% #&hArr;# *)
+
+(*#* printing CFalse %\ensuremath\bot% #&perp;# *)
+
+(*#* printing False %\ensuremath\bot% #&perp;# *)
+
+(*#* printing CTrue %\ensuremath\top% *)
+
+(*#* printing True %\ensuremath\top% *)
+
+(*#* printing or %\ensuremath{\mathrel\vee}% *)
+
+(*#* printing and %\ensuremath{\mathrel\wedge}% *)
+
+include "algebra/Basics.ma".
+
+(*#* *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 procedural "cic:/CoRN/algebra/CLogic/CProp.con" as definition.
+
+(* UNEXPORTED
+Section Basics
+*)
+
+(*#* ** Basics
+Here we treat conversion from [Prop] to [CProp] and vice versa,
+and some basic connectives in [CProp].
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/Not.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/CAnd.ind".
+
+inline procedural "cic:/CoRN/algebra/CLogic/Iff.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/CFalse.ind".
+
+inline procedural "cic:/CoRN/algebra/CLogic/CTrue.ind".
+
+inline procedural "cic:/CoRN/algebra/CLogic/proj1_sigT.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/proj2_sigT.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/sig2T.ind".
+
+inline procedural "cic:/CoRN/algebra/CLogic/proj1_sig2T.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/proj2a_sig2T.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/proj2b_sig2T.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/toCProp.ind".
+
+inline procedural "cic:/CoRN/algebra/CLogic/toCProp_e.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/CNot.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Ccontrapos'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/COr.ind".
+
+(*#* 
+Some lemmas to make it possible to use [Step] when reasoning with
+biimplications.*)
+
+(* NOTATION
+Infix "IFF" := Iff (at level 60, right associativity).
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/Iff_left.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Iff_right.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Iff_refl.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Iff_sym.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Iff_trans.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Iff_imp_imp.con" as lemma.
+
+(* 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 *)
+
+(* NOTATION
+Infix "or" := COr (at level 85, right associativity).
+*)
+
+(* NOTATION
+Infix "and" := CAnd (at level 80, right associativity).
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/CLogic/not_r_cor_rect.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/not_l_cor_rect.con" as lemma.
+
+(* begin hide *)
+
+(* 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.
+*)
+
+(* 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#.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CLogic/Choice/P.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/choice.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/algebra/CLogic/CNot_Not_or.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/CdeMorgan_ex_all.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CLogic/CRelation_Definition/A.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/Crelation.con" as definition.
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CLogic/CRelation_Definition/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/Creflexive.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Ctransitive.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Csymmetric.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Cequiv.con" as definition.
+
+(* UNEXPORTED
+End CRelation_Definition
+*)
+
+(* UNEXPORTED
+Section TRelation_Definition
+*)
+
+(*#* ** [Prop]-valued Relations
+Analogous.
+
+%\begin{convention}% Let [A:Type] and [R:Trelation].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CLogic/TRelation_Definition/A.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/Trelation.con" as definition.
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CLogic/TRelation_Definition/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/Treflexive.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Ttransitive.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Tsymmetric.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Tequiv.con" as definition.
+
+(* UNEXPORTED
+End TRelation_Definition
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/eqs.ind".
+
+(* UNEXPORTED
+Section le_odd
+*)
+
+(*#* ** The relation [le], [lt], [odd] and [even] in [CProp]
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/Cle.ind".
+
+inline procedural "cic:/CoRN/algebra/CLogic/Cnat_double_ind.con" as theorem.
+
+inline procedural "cic:/CoRN/algebra/CLogic/my_Cle_ind.con" as theorem.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Cle_n_S.con" as theorem.
+
+inline procedural "cic:/CoRN/algebra/CLogic/toCle.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve toCle.
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/Cle_to.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Clt.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/toCProp_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Clt_to.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Cle_le_S_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Cnat_total_order.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Codd.ind".
+
+inline procedural "cic:/CoRN/algebra/CLogic/Codd_even_to.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Codd_to.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Ceven_to.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/to_Codd_even.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/to_Codd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/to_Ceven.con" as lemma.
+
+(* UNEXPORTED
+End le_odd
+*)
+
+(* UNEXPORTED
+Section Misc
+*)
+
+(*#* **Miscellaneous
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/CZ_exh.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Cnats_Z_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Cdiff_Z_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Cpred_succ_Z_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/not_r_sum_rec.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/not_l_sum_rec.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/algebra/CLogic/nat_less_n_pred.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/nat_less_n_pred'.con" as definition.
+
+(* 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 procedural "cic:/CoRN/algebra/CLogic/even_plus_n_n.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/even_or_odd_plus.con" as lemma.
+
+(*#* Finally, we prove that an arbitrary natural number can be written in some canonical way.
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/even_or_odd_plus_gt.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/algebra/CLogic/Clt_le_weak.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/lt_5.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/lt_8.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/pred_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/lt_10.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/lt_pred'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/le_1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/le_2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/plus_eq_one_imp_eq_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/not_not_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/plus_pred_pred_plus.con" as lemma.
+
+(*#* We now prove some properties of functions on the natural numbers.
+
+%\begin{convention}% Let [H:nat->nat].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CLogic/Natural_Numbers/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 procedural "cic:/CoRN/algebra/CLogic/nat_local_mon_imp_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/nat_local_mon_imp_mon_le.con" as lemma.
+
+(*#* A strictly increasing function is injective: *)
+
+inline procedural "cic:/CoRN/algebra/CLogic/nat_mon_imp_inj.con" as lemma.
+
+(*#* And (not completely trivial) a function that preserves [lt] also preserves [le]. *)
+
+inline procedural "cic:/CoRN/algebra/CLogic/nat_mon_imp_mon'.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/algebra/CLogic/mon_fun_covers.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/weird_mon_covers.con" as lemma.
+
+(* UNEXPORTED
+End Natural_Numbers
+*)
+
+(*#*
+Useful for the Fundamental Theorem of Algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/kseq_prop.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/algebra/CLogic/even_induction.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/odd_induction.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/four_induction.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/nat_complete_double_induction.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/odd_double_ind.con" as lemma.
+
+(*#* For subsetoid predicates in the natural numbers we can eliminate
+disjunction (and existential quantification) as follows.
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/finite_or_elim.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/str_finite_or_elim.con" as lemma.
+
+(* UNEXPORTED
+End Predicates_to_CProp
+*)
+
+(* UNEXPORTED
+Section Predicates_to_Prop
+*)
+
+(*#* Finally, analogous results for [Prop]-valued predicates are presented for
+completeness's sake.
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/even_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/odd_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/nat_complete_double_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/four_ind.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/algebra/CLogic/Zlts.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CLogic/toCProp_Zlt.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/CZlt_to.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Zsgn_1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Zsgn_2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Zsgn_3.con" as lemma.
+
+(*#* The following have unusual names, in line with the series of lemmata in
+fast_integers.v.
+*)
+
+inline procedural "cic:/CoRN/algebra/CLogic/ZL4'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/ZL9.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Zsgn_4.con" as theorem.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Zsgn_5.con" as theorem.
+
+inline procedural "cic:/CoRN/algebra/CLogic/nat_nat_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/S_predn.con" as theorem.
+
+inline procedural "cic:/CoRN/algebra/CLogic/absolu_1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/absolu_2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Zgt_mult_conv_absorb_l.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Zgt_mult_reg_absorb_l.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CLogic/Zmult_Sm_Sn.con" as lemma.
+
+(* NOTATION
+Notation ProjT1 := (proj1_sigT _ _).
+*)
+
+(* NOTATION
+Notation ProjT2 := (proj2_sigT _ _).
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/CMonoids.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CMonoids.mma
new file mode 100644 (file)
index 0000000..895ecbd
--- /dev/null
@@ -0,0 +1,185 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CMonoids.v,v 1.3 2004/04/07 15:07:57 lcf Exp $ *)
+
+(*#* printing Zero %\ensuremath{\mathbf0}% #0# *)
+
+include "algebra/CSemiGroups.ma".
+
+(* Begin_SpecReals *)
+
+(*#*
+* Monoids %\label{section:monoids}%
+** Definition of monoids
+*)
+
+inline procedural "cic:/CoRN/algebra/CMonoids/is_rht_unit.con" as definition.
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CMonoids/is_lft_unit.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments is_lft_unit [S].
+*)
+
+(* Begin_SpecReals *)
+
+(* UNEXPORTED
+Implicit Arguments is_rht_unit [S].
+*)
+
+inline procedural "cic:/CoRN/algebra/CMonoids/is_CMonoid.ind".
+
+inline procedural "cic:/CoRN/algebra/CMonoids/CMonoid.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CMonoids/cm_crr.con
+*)
+
+(*#*
+%\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.
+*)
+
+(* NOTATION
+Notation Zero := (cm_unit _).
+*)
+
+inline procedural "cic:/CoRN/algebra/CMonoids/nonZeroP.con" as definition.
+
+(* End_SpecReals *)
+
+(* UNEXPORTED
+Implicit Arguments nonZeroP [M].
+*)
+
+(*#*
+** Monoid axioms
+%\begin{convention}% Let [M] be a monoid.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+Section CMonoid_axioms
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CMonoids/CMonoid_axioms/M.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CMonoids/CMonoid_is_CMonoid.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CMonoids/cm_rht_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CMonoids/cm_lft_unit.con" as lemma.
+
+(* UNEXPORTED
+End CMonoid_axioms
+*)
+
+(*#*
+** Monoid basics
+%\begin{convention}% Let [M] be a monoid.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+Section CMonoid_basics
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CMonoids/CMonoid_basics/M.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CMonoids/cm_rht_unit_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CMonoids/cm_lft_unit_unfolded.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cm_rht_unit_unfolded cm_lft_unit_unfolded: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CMonoids/cm_unit_unique_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CMonoids/cm_unit_unique_rht.con" as lemma.
+
+(* Begin_SpecReals *)
+
+(*#*
+The proof component of the monoid is irrelevant.
+*)
+
+inline procedural "cic:/CoRN/algebra/CMonoids/is_CMonoid_proof_irr.con" as lemma.
+
+(* End_SpecReals *)
+
+(*#*
+** Submonoids
+%\begin{convention}%
+Let [P] a predicate on [M] containing [Zero] and closed under [[+]].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+Section SubCMonoids
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CMonoids/CMonoid_basics/SubCMonoids/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CMonoids/CMonoid_basics/SubCMonoids/Punit.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CMonoids/CMonoid_basics/SubCMonoids/op_pres_P.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CMonoids/CMonoid_basics/SubCMonoids/subcrr.con" "CMonoid_basics__SubCMonoids__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CMonoids/ismon_scrr.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CMonoids/Build_SubCMonoid.con" as definition.
+
+(* UNEXPORTED
+End SubCMonoids
+*)
+
+(* UNEXPORTED
+End CMonoid_basics
+*)
+
+(* UNEXPORTED
+Hint Resolve cm_rht_unit_unfolded cm_lft_unit_unfolded: algebra.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/COrdAbs.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/COrdAbs.mma
new file mode 100644 (file)
index 0000000..88fc8cb
--- /dev/null
@@ -0,0 +1,162 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+include "algebra/COrdFields2.ma".
+
+(*#*
+** Properties of [AbsSmall]
+*)
+
+(* Begin_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments AbsSmall [R].
+*)
+
+(* End_SpecReals *)
+
+(* UNEXPORTED
+Section AbsSmall_properties
+*)
+
+(*#*
+%\begin{convention}% Let [R] be an ordered field.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdAbs/AbsSmall_properties/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_wdr.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_wdr_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_wdl.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_wdl_unfolded.con" as lemma.
+
+(* UNEXPORTED
+Declare Left Step AbsSmall_wdl_unfolded.
+*)
+
+(* UNEXPORTED
+Declare Right Step AbsSmall_wdr_unfolded.
+*)
+
+(* begin hide *)
+
+(* NOTATION
+Notation ZeroR := (Zero:R).
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_leEq_trans.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/zero_AbsSmall.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_trans.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/leEq_imp_AbsSmall.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/inv_resp_AbsSmall.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_eps_div_two.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_x_plus_delta.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_x_minus_delta.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_x_plus_eps_div2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_x_minus_eps_div2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_intermediate.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_eps_div2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_cancel_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsSmall_approach_zero.con" as lemma.
+
+(* UNEXPORTED
+End AbsSmall_properties
+*)
+
+(* UNEXPORTED
+Declare Left Step AbsSmall_wdl_unfolded.
+*)
+
+(* UNEXPORTED
+Declare Right Step AbsSmall_wdr_unfolded.
+*)
+
+(*#* ** Properties of [AbsBig] *)
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/absBig.con" as definition.
+
+(* NOTATION
+Notation AbsBig := (absBig _).
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsBigSmall_minus.con" as lemma.
+
+(* UNEXPORTED
+Section absBig_wd_properties
+*)
+
+(*#*
+%\begin{convention}% Let [R] be an ordered field.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdAbs/absBig_wd_properties/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsBig_wdr.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsBig_wdl.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsBig_wdr_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdAbs/AbsBig_wdl_unfolded.con" as lemma.
+
+(* UNEXPORTED
+End absBig_wd_properties
+*)
+
+(* UNEXPORTED
+Declare Left Step AbsBig_wdl_unfolded.
+*)
+
+(* UNEXPORTED
+Declare Right Step AbsBig_wdr_unfolded.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/COrdCauchy.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/COrdCauchy.mma
new file mode 100644 (file)
index 0000000..e305a69
--- /dev/null
@@ -0,0 +1,308 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+include "algebra/COrdAbs.ma".
+
+(* Begin_SpecReals *)
+
+(* UNEXPORTED
+Section OrdField_Cauchy
+*)
+
+(*#* **Cauchy sequences
+%\begin{convention}% Let [R] be an ordered field.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdCauchy/OrdField_Cauchy/R.var
+*)
+
+(* begin hide *)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(* UNEXPORTED
+Unset Strict Implicit.
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/Cauchy_prop.con" as definition.
+
+(* 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 procedural "cic:/CoRN/algebra/COrdCauchy/CauchySeq.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/COrdCauchy/CS_seq.con
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/SeqLimit.con" as definition.
+
+(* 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 procedural "cic:/CoRN/algebra/COrdCauchy/CS_seq_bounded.con" as theorem.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/CS_seq_const.con" as lemma.
+
+(*#*
+%\begin{convention}% Assume [f] and [g] are Cauchy sequences on [R].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdCauchy/OrdField_Cauchy/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdCauchy/OrdField_Cauchy/g.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdCauchy/OrdField_Cauchy/Hf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdCauchy/OrdField_Cauchy/Hg.var
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/CS_seq_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/CS_seq_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/CS_seq_mult.con" as lemma.
+
+(*#*
+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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdCauchy/OrdField_Cauchy/e.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdCauchy/OrdField_Cauchy/He.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdCauchy/OrdField_Cauchy/N.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdCauchy/OrdField_Cauchy/f_bnd.var
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/CS_seq_recip_def.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/CS_seq_recip_seq.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/CS_seq_recip.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/algebra/COrdCauchy/maj_upto_eps.con" as lemma.
+
+(* UNEXPORTED
+Section Mult_AbsSmall
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdCauchy/Mult_AbsSmall/R.var
+*)
+
+(*#*
+** [AbsSmall] revisited
+%\begin{convention}% Let [R] be an ordered field.
+%\end{convention}%
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/mult_AbsSmall'_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/mult_AbsSmall_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/mult_AbsSmall_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/mult_AbsSmall.con" as lemma.
+
+(* UNEXPORTED
+End Mult_AbsSmall
+*)
+
+(* UNEXPORTED
+Section Mult_Continuous
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdCauchy/Mult_Continuous/R.var
+*)
+
+(*#*
+** Multiplication is continuous
+%\begin{convention}% Let [R] be an ordered field.
+%\end{convention}%
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/smaller.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/estimate_abs.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/mult_contin.con" as lemma.
+
+(*#* Addition is also continuous. *)
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/plus_contin.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdCauchy/Monotonous_functions/R.var
+*)
+
+(*#*
+We begin by characterizing the preservation of less (less or equal)
+in terms of preservation of less or equal (less).
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/resp_less_char'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/resp_less_char.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/resp_leEq_char'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/resp_leEq_char.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/algebra/COrdCauchy/local_mon_imp_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/local_mon_imp_mon'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/local_mon'_imp_mon'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/mon_imp_mon'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/mon_imp_inj.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/local_mon_imp_mon_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/local_mon_imp_mon'_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/local_mon'_imp_mon'_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/local_mon'_imp_mon'2_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/mon_imp_mon'_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/mon_imp_inj_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/local_mon_imp_mon_le.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/local_mon_imp_mon'_le.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/local_mon'_imp_mon'_le.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/local_mon'_imp_mon'2_le.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/mon_imp_mon'_le.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/mon_imp_inj_le.con" as lemma.
+
+(*#*
+A similar result for %{\em %partial%}% functions.
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdCauchy/part_mon_imp_mon'.con" as lemma.
+
+(* UNEXPORTED
+End Monotonous_functions
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/COrdFields.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/COrdFields.mma
new file mode 100644 (file)
index 0000000..19c308f
--- /dev/null
@@ -0,0 +1,755 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: COrdFields.v,v 1.6 2004/04/23 10:00:52 lcf Exp $ *)
+
+(*#* printing [<] %\ensuremath<% #&lt;# *)
+
+(*#* printing [<=] %\ensuremath{\leq}% #&le;# *)
+
+(*#* printing [>] %\ensuremath>% #&gt;# *)
+
+(*#* 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 "tactics/FieldReflection.ma".
+
+(* ORDERED FIELDS *)
+
+(*#*
+* Ordered Fields
+** Definition of the notion of ordered field
+*)
+
+(* Begin_SpecReals *)
+
+inline procedural "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 procedural "cic:/CoRN/algebra/COrdFields/is_COrdField.ind".
+
+inline procedural "cic:/CoRN/algebra/COrdFields/COrdField.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/COrdFields/cof_crr.con
+*)
+
+(*#*
+%\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].
+*)
+
+(* NOTATION
+Infix "[<]" := cof_less (at level 70, no associativity).
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/greater.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments greater [F].
+*)
+
+(* NOTATION
+Infix "[>]" := greater (at level 70, no associativity).
+*)
+
+(* End_SpecReals *)
+
+(*#*
+Less or equal is defined as ``not greater than''.
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/leEq.con" as definition.
+
+(*#*
+%\begin{nameconvention}%
+In the names of lemmas, [ [<=] ] is written as [leEq] and
+[Zero [<=] ] is written as [nonneg].
+%\end{nameconvention}%
+*)
+
+(* UNEXPORTED
+Implicit Arguments leEq [F].
+*)
+
+(* NOTATION
+Infix "[<=]" := leEq (at level 70, no associativity).
+*)
+
+(* UNEXPORTED
+Section COrdField_axioms
+*)
+
+(*#*
+** Ordered field axioms
+%\begin{convention}%
+Let [F] be a field.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdFields/COrdField_axioms/F.var
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/COrdField_is_COrdField.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/less_strorder.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/less_transitive_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/less_antisymmetric_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/less_irreflexive.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/less_irreflexive_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/plus_resp_less_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/mult_resp_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/less_conf_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/less_wdr.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/less_wdl.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdFields/OrdField_basics/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/less_imp_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/Greater_imp_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/ap_imp_less.con" as lemma.
+
+(*#*
+Now properties which can be derived.
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/less_cotransitive.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/less_cotransitive_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_ap_zero.con" as lemma.
+
+(* Main characterization of less *)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/leEq_not_eq.con" as lemma.
+
+(* UNEXPORTED
+End OrdField_basics
+*)
+
+(*#**********************************)
+
+(* UNEXPORTED
+Section Basic_Properties_of_leEq
+*)
+
+(*#**********************************)
+
+(*#* ** Basic properties of [ [<=] ]
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdFields/Basic_Properties_of_leEq/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/leEq_wdr.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/leEq_wdl.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/leEq_reflexive.con" as lemma.
+
+(* UNEXPORTED
+Declare Left Step leEq_wdl.
+*)
+
+(* UNEXPORTED
+Declare Right Step leEq_wdr.
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/eq_imp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/leEq_imp_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/lt_equiv_imp_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/less_leEq_trans.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/leEq_less_trans.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/leEq_transitive.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/less_leEq.con" as lemma.
+
+(* 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].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdFields/infinity_of_cordfields/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_one.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/nring_less_succ.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/nring_less.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/nring_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/nring_apart.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/nring_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/nring_ap_zero'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/nring_ap_zero_imp.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/Snring.con" as definition.
+
+include "tactics/Transparent_algebra.ma".
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_Snring.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/nringS_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/nring_fac_ap_zero.con" as lemma.
+
+include "tactics/Opaque_algebra.ma".
+
+(* 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 procedural "cic:/CoRN/algebra/COrdFields/less_plusOne.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/zero_lt_posplus1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/plus_one_ext_less.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/one_less_two.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/two_less_three.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/three_less_four.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_two.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/one_less_three.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/two_less_four.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_three.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/one_less_four.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_four.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/two_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/three_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/four_ap_zero.con" as lemma.
+
+(* UNEXPORTED
+End up_to_four
+*)
+
+(* UNEXPORTED
+Section More_than_four
+*)
+
+(*#* *** Properties of some other numbers *)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_six.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_eight.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_nine.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_twelve.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_sixteen.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_eighteen.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_twentyfour.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_fortyeight.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/six_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/eight_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/nine_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/twelve_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/sixteen_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/eighteen_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/twentyfour_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/fortyeight_ap_zero.con" as lemma.
+
+(* UNEXPORTED
+End More_than_four
+*)
+
+(* UNEXPORTED
+End infinity_of_cordfields
+*)
+
+(* UNEXPORTED
+Declare Left Step leEq_wdl.
+*)
+
+(* UNEXPORTED
+Declare Right Step leEq_wdr.
+*)
+
+(* 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).
+*)
+
+(* UNEXPORTED
+Section consequences_of_infinity
+*)
+
+(*#*
+*** Consequences of infinity
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdFields/consequences_of_infinity/F.var
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/square_eq.con" as lemma.
+
+(*#*
+Ordered fields have characteristic zero.
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/char0_OrdField.con" as lemma.
+
+(* UNEXPORTED
+End consequences_of_infinity
+*)
+
+(*#**********************************)
+
+(* UNEXPORTED
+Section Properties_of_Ordering
+*)
+
+(*#**********************************)
+
+(*#*
+** Properties of [[<]]
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdFields/Properties_of_Ordering/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 procedural "cic:/CoRN/algebra/COrdFields/plus_resp_less_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/inv_resp_less.con" as lemma.
+
+(* UNEXPORTED
+Transparent cg_minus.
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/minus_resp_less.con" as lemma.
+
+(* UNEXPORTED
+Transparent cg_minus.
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/minus_resp_less_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/plus_resp_less_both.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/algebra/COrdFields/plus_cancel_less.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/inv_cancel_less.con" as lemma.
+
+(*#*
+
+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 procedural "cic:/CoRN/algebra/COrdFields/shift_less_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/shift_less_plus'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/shift_less_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/shift_less_minus'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/shift_plus_less.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/shift_plus_less'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/shift_minus_less.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/shift_minus_less'.con" as lemma.
+
+(*#*
+Some special cases of laws for shifting.
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/shift_zero_less_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/shift_zero_less_minus'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/qltone.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/algebra/COrdFields/mult_resp_less.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/recip_resp_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/div_resp_less_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/div_resp_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/mult_resp_less_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/mult_resp_less_both.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/recip_resp_less.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/div_resp_less.con" as lemma.
+
+(*#* Cancellation laws
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/mult_cancel_less.con" as lemma.
+
+(*#*
+Laws for shifting
+
+%For namegiving, see the Section~\ref{section:less_plus_minus}
+on plus and minus.%
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/shift_div_less.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/shift_div_less'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/shift_less_div.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/shift_less_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/shift_less_mult'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/shift_mult_less.con" as lemma.
+
+(*#* Other properties of multiplication and division
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/minusOne_less.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/swap_div.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/eps_div_less_eps.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_div_two.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_div_two'.con" as lemma.
+
+(*
+Apply mult_cancel_less with (Two::R).
+Apply pos_two.
+rstepl eps[+]Zero; rstepr eps[+]eps.
+Apply plus_resp_less_lft.
+Auto.
+Qed.
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_div_three.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_div_three'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_div_four.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_div_four'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_div_six.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_div_eight.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_div_nine.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_div_twelve.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_div_sixteen.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_div_eighteen.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_div_twentyfour.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_div_fortyeight.con" as lemma.
+
+(* UNEXPORTED
+End multiplication
+*)
+
+(* UNEXPORTED
+Section misc
+*)
+
+(*#*
+*** Miscellaneous properties
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields/nring_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/less_nring.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/pos_nring_fac.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/Smallest_less_Average.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/Average_less_Greatest.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/Sum_resp_less.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/Sumx_resp_less.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/positive_Sum_two.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/positive_Sumx.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields/negative_Sumx.con" as lemma.
+
+(* UNEXPORTED
+End misc
+*)
+
+(* UNEXPORTED
+End Properties_of_Ordering
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/COrdFields2.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/COrdFields2.mma
new file mode 100644 (file)
index 0000000..c843607
--- /dev/null
@@ -0,0 +1,378 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+include "algebra/COrdFields.ma".
+
+(*#* printing one_div_succ %\ensuremath{\frac1{\cdot+1}}% *)
+
+(*#* printing Half %\ensuremath{\frac12}% #&frac12;# *)
+
+(*#**********************************)
+
+(* UNEXPORTED
+Section Properties_of_leEq
+*)
+
+(*#**********************************)
+
+(*#*
+** Properties of [[<=]]
+%\begin{convention}% Let [R] be an ordered field.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdFields2/Properties_of_leEq/R.var
+*)
+
+(* UNEXPORTED
+Section addition
+*)
+
+(*#*
+*** Addition and subtraction%\label{section:leEq-plus-minus}%
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/plus_resp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/plus_resp_leEq_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/minus_resp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/inv_resp_leEq.con" as lemma.
+
+(* UNEXPORTED
+Transparent cg_minus.
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/minus_resp_leEq_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/plus_resp_leEq_both.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/plus_resp_less_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/plus_resp_leEq_less.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/minus_resp_less_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/minus_resp_leEq_both.con" as lemma.
+
+(*#* Cancellation properties
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/plus_cancel_leEq_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/inv_cancel_leEq.con" as lemma.
+
+(*#* Laws for shifting
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_plus_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_leEq_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_plus_leEq'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_leEq_plus'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_leEq_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_leEq_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_minus_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_leEq_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_leEq_minus'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_zero_leEq_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_zero_leEq_minus'.con" as lemma.
+
+(* UNEXPORTED
+End addition
+*)
+
+(* UNEXPORTED
+Section multiplication
+*)
+
+(*#*
+*** Multiplication and division
+
+Multiplication and division respect [[<=]]
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/mult_resp_leEq_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/mult_resp_leEq_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/mult_resp_leEq_both.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/recip_resp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/div_resp_leEq.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve recip_resp_leEq: algebra.
+*)
+
+(*#* Cancellation properties
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/mult_cancel_leEq.con" as lemma.
+
+(*#* Laws for shifting
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_mult_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_mult_leEq'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_leEq_mult'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_div_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_div_leEq'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/shift_leEq_div.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve shift_leEq_div: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/eps_div_leEq_eps.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/nonneg_div_two.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/nonneg_div_two'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/nonneg_div_three.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/nonneg_div_three'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/nonneg_div_four.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/nonneg_div_four'.con" as lemma.
+
+(* UNEXPORTED
+End multiplication
+*)
+
+(* UNEXPORTED
+Section misc
+*)
+
+(*#*
+*** Miscellaneous Properties
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/sqr_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/nring_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/suc_leEq_dub.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/leEq_nring.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/cc_abs_aid.con" as lemma.
+
+include "tactics/Transparent_algebra.ma".
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/nexp_resp_pos.con" as lemma.
+
+include "tactics/Opaque_algebra.ma".
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/mult_resp_nonneg.con" as lemma.
+
+include "tactics/Transparent_algebra.ma".
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/nexp_resp_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/power_resp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/nexp_resp_less.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/power_cancel_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/power_cancel_less.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/nat_less_bin_nexp.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/Sum_resp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/Sumx_resp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/Sum2_resp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/approach_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/approach_zero_weak.con" as lemma.
+
+(* UNEXPORTED
+End misc
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/equal_less_leEq.con" as lemma.
+
+(* UNEXPORTED
+End Properties_of_leEq
+*)
+
+(*#**********************************)
+
+(* UNEXPORTED
+Section PosP_properties
+*)
+
+(*#**********************************)
+
+(*#*
+** Properties of positive numbers
+%\begin{convention}% Let [R] be an ordered field.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdFields2/PosP_properties/R.var
+*)
+
+(* begin hide *)
+
+(* NOTATION
+Notation ZeroR := (Zero:R).
+*)
+
+(* NOTATION
+Notation OneR := (One:R).
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/mult_pos_imp.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/plus_resp_pos_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/plus_resp_nonneg_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/pos_square.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/mult_cancel_pos_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/mult_cancel_pos_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/pos_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/even_power_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/odd_power_cancel_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/plus_resp_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/pos_nring_S.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/square_eq_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/square_eq_neg.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/algebra/COrdFields2/one_div_succ.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments one_div_succ [R].
+*)
+
+(* UNEXPORTED
+Section One_div_succ_properties
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdFields2/One_div_succ_properties/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/one_div_succ_resp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/one_div_succ_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/one_div_succ_resp_less.con" as lemma.
+
+(* UNEXPORTED
+End One_div_succ_properties
+*)
+
+(*#*
+** Properties of [Half]
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/Half.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments Half [R].
+*)
+
+(* UNEXPORTED
+Section Half_properties
+*)
+
+(*#*
+%\begin{convention}%
+Let [R] be an ordered field.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/COrdFields2/Half_properties/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/half_1.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve half_1: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/pos_half.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/half_1'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/half_2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/half_lt1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/COrdFields2/half_3.con" as lemma.
+
+(* UNEXPORTED
+End Half_properties
+*)
+
+(* UNEXPORTED
+Hint Resolve half_1 half_1' half_2: algebra.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/CPoly_ApZero.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CPoly_ApZero.mma
new file mode 100644 (file)
index 0000000..2280e03
--- /dev/null
@@ -0,0 +1,210 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CPoly_ApZero.v,v 1.3 2004/04/23 10:00:53 lcf Exp $ *)
+
+include "algebra/CPoly_Degree.ma".
+
+include "algebra/COrdFields2.ma".
+
+(*#* * Polynomials apart from zero *)
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/distinct1.con" as definition.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPoly_ApZero/Poly_Representation/R.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPoly_ApZero/Poly_Representation/a_.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPoly_ApZero/Poly_Representation/distinct_a_.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPoly_ApZero/Poly_Representation/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPoly_ApZero/Poly_Representation/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPoly_ApZero/Poly_Representation/degree_f.var
+*)
+
+(* begin hide *)
+
+(* NOTATION
+Notation RX := (cpoly_cring R).
+*)
+
+(* end hide *)
+
+include "tactics/Transparent_algebra.ma".
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_linear_shifted.con" as lemma.
+
+include "tactics/Opaque_algebra.ma".
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_linear_factor.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/zero_poly.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/identical_poly.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor'.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor'_degree.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor'_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor'_apzero.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve poly_01_factor'_zero.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor_degree.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_01_factor_one.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve poly_01_factor_zero poly_01_factor_one: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_01.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_01_degree'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_01_degree.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_01_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_01_one.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve poly_01_zero poly_01_one: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_representation''.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_representation'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_representation.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve poly_representation: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/Cpoly_choose_apzero.con" as lemma.
+
+(* UNEXPORTED
+End Poly_Representation
+*)
+
+(* UNEXPORTED
+Section Characteristic_zero
+*)
+
+(*#*
+If we are in a field of characteristic zero, the previous result can be
+strengthened.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPoly_ApZero/Characteristic_zero/R.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPoly_ApZero/Characteristic_zero/H.var
+*)
+
+(* end show *)
+
+(* begin hide *)
+
+(* NOTATION
+Notation RX := (cpoly_cring R).
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_apzero.con" as lemma.
+
+(*#*
+Also, in this situation polynomials are extensional functions.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/poly_extensional.con" as lemma.
+
+(* UNEXPORTED
+End Characteristic_zero
+*)
+
+(*#*
+** Polynomials are nonzero on any interval
+*)
+
+(* UNEXPORTED
+Section Poly_ApZero_Interval
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPoly_ApZero/Poly_ApZero_Interval/R.var
+*)
+
+(* begin hide *)
+
+(* NOTATION
+Notation RX := (cpoly_cring R).
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/CPoly_ApZero/Cpoly_apzero_interval.con" as lemma.
+
+(* UNEXPORTED
+End Poly_ApZero_Interval
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/CPoly_Degree.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CPoly_Degree.mma
new file mode 100644 (file)
index 0000000..7d4b693
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CPoly_Degree.v,v 1.5 2004/04/23 10:00:53 lcf Exp $ *)
+
+include "algebra/CPoly_NthCoeff.ma".
+
+include "algebra/CFields.ma".
+
+(*#* *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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPoly_Degree/Degree_def/R.var
+*)
+
+(* begin hide *)
+
+(* NOTATION
+Notation RX := (cpoly_cring R).
+*)
+
+(* 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 procedural "cic:/CoRN/algebra/CPoly_Degree/lth_of_poly.con" as definition.
+
+(*#*
+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 procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/odd_cpoly.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/even_cpoly.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/regular.con" as definition.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPoly_Degree/Degree_props/R.var
+*)
+
+(* begin hide *)
+
+(* NOTATION
+Notation RX := (cpoly_cring R).
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_imp_degree_le.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_c_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_c_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_c_one.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_x_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_x_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_x_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/Sum_degree_le.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_plus_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_minus_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_mult_aux.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve degree_mult_aux: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_nexp.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_nexp.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/lt_i_lth_of_poly.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/poly_degree_lth.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/Cpoly_ex_degree.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/poly_as_sum''.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve poly_as_sum'': algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/poly_as_sum'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/poly_as_sum.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_1_imp.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_cpoly_linear.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_cpoly_linear.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_one.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/monic_apzero.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPoly_Degree/degree_props_Field/F.var
+*)
+
+(* begin hide *)
+
+(* NOTATION
+Notation FX := (cpoly_cring F).
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_nexp.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_le_mult_imp.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_Degree/degree_mult_imp.con" as lemma.
+
+(* UNEXPORTED
+End degree_props_Field
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/CPoly_NthCoeff.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CPoly_NthCoeff.mma
new file mode 100644 (file)
index 0000000..7318a76
--- /dev/null
@@ -0,0 +1,214 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CPoly_NthCoeff.v,v 1.6 2004/04/23 10:00:53 lcf Exp $ *)
+
+include "algebra/CPolynomials.ma".
+
+(*#*
+* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPoly_NthCoeff/NthCoeff_def/R.var
+*)
+
+(* begin hide *)
+
+(* NOTATION
+Notation RX := (cpoly_cring R).
+*)
+
+(* 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 procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_fun.con" as definition.
+
+(*#*
+%\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 procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nonConst.con" as definition.
+
+(*#*
+The following is probably NOT needed.  These functions are
+NOT extensional, that is, they are not CSetoid functions.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_ok.con" as definition.
+
+(* The in_coeff predicate*)
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/in_coeff.con" as definition.
+
+(*#*
+The [cpoly_zero] case should be [c [=] Zero] in order to be extensional.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_S.con" as lemma.
+
+(* 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] *)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPoly_NthCoeff/NthCoeff_props/R.var
+*)
+
+(* begin hide *)
+
+(* NOTATION
+Notation RX := (cpoly_cring R).
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/coeff_O_lin.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/coeff_Sm_lin.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/coeff_O_c_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/coeff_O_x_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/coeff_Sm_x_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/coeff_Sm_mult_x_.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_ap_zero_imp.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_inv.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nth_coeff_inv: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_c_mult_p.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_p_mult_c_.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nth_coeff_c_mult_p nth_coeff_p_mult_c_ nth_coeff_plus: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_complicated.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/all_nth_coeff_eq_imp.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/poly_at_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_inv'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_minus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nth_coeff_minus: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_sum0.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_sum.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_nexp_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_nexp_neq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPoly_NthCoeff/nth_coeff_mult.con" as lemma.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/algebra/CPolynomials.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CPolynomials.mma
new file mode 100644 (file)
index 0000000..d3436df
--- /dev/null
@@ -0,0 +1,657 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $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&times;# *)
+
+(*#* printing RX %\ensuremath{R[x]}% #R[x]# *)
+
+(*#* printing FX %\ensuremath{F[x]}% #F[x]# *)
+
+include "tactics/RingReflection.ma".
+
+(*#* * 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPolynomials/CPoly_CRing/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 procedural "cic:/CoRN/algebra/CPolynomials/cpoly.ind".
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_constant.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_one.con" as definition.
+
+(*#*
+Some useful induction lemmas for doubly quantified propositions.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/Ccpoly_double_ind0.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/Ccpoly_double_sym_ind0.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/Ccpoly_double_ind0'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_double_ind0.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_double_sym_ind0.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_double_ind0'.con" as lemma.
+
+(*#* *** The polynomials form a setoid
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_eq_zero.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_eq.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_eq_p_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_ap_zero.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_ap.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_ap_p_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/irreflexive_cpoly_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/symmetric_cpoly_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cotransitive_cpoly_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/tight_apart_cpoly_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_is_CSetoid.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_csetoid.con" as definition.
+
+(*#*
+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 procedural "cic:/CoRN/algebra/CPolynomials/CPoly_CRing/cpoly_zero_cs.con" "CPoly_CRing__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/CPoly_CRing/cpoly_linear_cs.con" "CPoly_CRing__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/Ccpoly_ind_cs.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/Ccpoly_double_ind0_cs.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/Ccpoly_double_sym_ind0_cs.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_ind_cs.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_double_ind0_cs.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_double_sym_ind0_cs.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_lin_eq_zero_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_cpoly_lin_eq_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_zero_eq_lin_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_cpoly_zero_eq_lin.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_lin_eq_lin_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_cpoly_lin_eq_lin.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_lin_ap_zero_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_cpoly_lin_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_lin_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_zero_ap_lin_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_cpoly_zero_ap_lin.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_zero_ap_lin.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_lin_ap_lin_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_cpoly_lin_ap_lin.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_lin_ap_lin.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_linear_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_linear_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_linear_fun.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/Ccpoly_double_comp_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/Ccpoly_triple_comp_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_double_comp_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_triple_comp_ind.con" as lemma.
+
+(*#*
+*** The polynomials form a semi-group and a monoid
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_plus.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_plus_cs.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_zero_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_plus_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_lin_plus_lin.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_plus_commutative.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_plus_q_ap_q.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_p_plus_ap_p.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_ap_zero_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_plus_op_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_plus_op_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_plus_op.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_plus_associative.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_csemi_grp.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_cm_proof.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_cmonoid.con" as definition.
+
+(*#* *** The polynomials form a group
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_inv.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_inv_cs.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_inv_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_inv_lin.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_inv_op_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_inv_op_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_inv_op.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_cg_proof.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_cgroup.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_cag_proof.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_cabgroup.con" as definition.
+
+(*#* *** The polynomials form a ring
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_cs.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_zero_mult_cr.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_lin_mult_cr.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_cs.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_zero_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_lin_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_op_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_op_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_op.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_dist.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_cr_dist.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_assoc_mult_cr.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_assoc_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_lin.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_commutative.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_dist_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_assoc.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_cr_one.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_one_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_one.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_mult_monoid.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_cr_non_triv.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_is_CRing.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_cring.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_constant_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_constant_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_C_.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_X_.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_x_minus_c.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_x_minus_c_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_x_minus_c_wd.con" as lemma.
+
+(* UNEXPORTED
+End CPoly_CRing
+*)
+
+(* UNEXPORTED
+Implicit Arguments _C_ [CR].
+*)
+
+(* UNEXPORTED
+Implicit Arguments _X_ [CR].
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_linear_fun'.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments cpoly_linear_fun' [CR].
+*)
+
+(* NOTATION
+Infix "[+X*]" := cpoly_linear_fun' (at level 50, left associativity).
+*)
+
+(*#* ** 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPolynomials/CPoly_CRing_ctd/CR.var
+*)
+
+(* NOTATION
+Notation RX := (cpoly_cring CR).
+*)
+
+(* UNEXPORTED
+Section helpful_section
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPolynomials/CPoly_CRing_ctd/helpful_section/p.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPolynomials/CPoly_CRing_ctd/helpful_section/q.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPolynomials/CPoly_CRing_ctd/helpful_section/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPolynomials/CPoly_CRing_ctd/helpful_section/d.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/linear_eq_zero_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_linear_eq_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/zero_eq_linear_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_zero_eq_linear.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/linear_eq_linear_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_linear_eq_linear.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/linear_ap_zero_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_linear_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/linear_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/zero_ap_linear_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_zero_ap_linear.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/zero_ap_linear.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/linear_ap_linear_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_linear_ap_linear.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/linear_ap_linear.con" as lemma.
+
+(* UNEXPORTED
+End helpful_section
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/Ccpoly_induc.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/Ccpoly_double_sym_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/Cpoly_double_comp_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/Cpoly_triple_comp_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_induc.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_double_sym_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/poly_double_comp_ind.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/poly_triple_comp_ind.con" as lemma.
+
+(* UNEXPORTED
+Transparent cpoly_cring.
+*)
+
+(* UNEXPORTED
+Transparent cpoly_cgroup.
+*)
+
+(* UNEXPORTED
+Transparent cpoly_csetoid.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_apply.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_apply_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_apply_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_apply_fun.con" as definition.
+
+(* 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].
+*)
+
+(* NOTATION
+Infix "!" := cpoly_apply_fun (at level 1, no associativity).
+*)
+
+(*#*
+** 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPolynomials/Poly_properties/R.var
+*)
+
+(* NOTATION
+Notation RX := (cpoly_cring R).
+*)
+
+(*#*
+*** Constant and identity
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_X_.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_C_.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cpoly_X_ cpoly_C_: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_const_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_c_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_c_one.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_c_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_lin.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cpoly_lin: algebra.
+*)
+
+(* SUPERFLUOUS *)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/poly_linear.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve _c_zero: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/poly_c_apzero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_c_mult_lin.con" as lemma.
+
+(* SUPERFLUOUS ? *)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/lin_mult.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve lin_mult: algebra.
+*)
+
+(*#* *** Application of polynomials
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/poly_eq_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/apply_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpolyap_pres_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpolyap_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_csetoid_op.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_c_apply.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_x_apply.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/plus_apply.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/inv_apply.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve plus_apply inv_apply: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/minus_apply.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/_c_mult_apply.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve _c_mult_apply: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/mult_apply.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_apply: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/one_apply.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve one_apply: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/nexp_apply.con" as lemma.
+
+(* SUPERFLUOUS *)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/poly_inv_apply.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/Sum0_cpoly_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/Sum_cpoly_ap.con" as lemma.
+
+(* UNEXPORTED
+End Poly_properties
+*)
+
+(*#* ** Induction properties of polynomials for [Prop]
+*)
+
+(* UNEXPORTED
+Section Poly_Prop_Induction
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CPolynomials/Poly_Prop_Induction/CR.var
+*)
+
+(* 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).
+*)
+
+inline procedural "cic:/CoRN/algebra/CPolynomials/cpoly_double_ind.con" as lemma.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/algebra/CRings.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CRings.mma
new file mode 100644 (file)
index 0000000..eab9274
--- /dev/null
@@ -0,0 +1,1051 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CRings.v,v 1.8 2004/04/23 10:00:53 lcf Exp $ *)
+
+(*#* printing [*] %\ensuremath\times% #&times;# *)
+
+(*#* printing [^] %\ensuremath{\hat{\ }}% #^# *)
+
+(*#* printing {*} %\ensuremath\times% #&times;# *)
+
+(*#* printing {**} %\ensuremath\ast% #&lowast;# *)
+
+(*#* 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 "algebra/CSums.ma".
+
+(* 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 procedural "cic:/CoRN/algebra/CRings/distributive.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments distributive [S].
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/is_CRing.ind".
+
+inline procedural "cic:/CoRN/algebra/CRings/CRing.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CRings/cr_crr.con
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/cr_plus.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CRings/cr_inv.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CRings/cr_minus.con" as definition.
+
+(* NOTATION
+Notation One := (cr_one _).
+*)
+
+(* 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].
+*)
+
+(* NOTATION
+Infix "[*]" := cr_mult (at level 40, left associativity).
+*)
+
+(* UNEXPORTED
+Section CRing_axioms
+*)
+
+(*#*
+** Ring axioms
+%\begin{convention}% Let [R] be a ring.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/CRing_axioms/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/CRing_is_CRing.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/mult_assoc.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/mult_commutes.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/mult_mon.con" as lemma.
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CRings/dist.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/ring_non_triv.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/mult_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/mult_wdl.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/mult_wdr.con" as lemma.
+
+(* Begin_SpecReals *)
+
+(* UNEXPORTED
+End CRing_axioms
+*)
+
+(* UNEXPORTED
+Section Ring_constructions
+*)
+
+(*#*
+** Ring constructions
+%\begin{convention}%
+Let [R] be a ring.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/Ring_constructions/R.var
+*)
+
+(*#*
+The multiplicative monoid of a ring is defined as follows.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/Build_multCMonoid.con" as definition.
+
+(* UNEXPORTED
+End Ring_constructions
+*)
+
+(* End_SpecReals *)
+
+(* UNEXPORTED
+Section Ring_unfolded
+*)
+
+(*#*
+** Ring unfolded
+%\begin{convention}% Let [R] be a ring.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/Ring_unfolded/R.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/algebra/CRings/Ring_unfolded/mmR.con" "Ring_unfolded__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/CRings/mult_assoc_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/mult_commut_unfolded.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_commut_unfolded: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/mult_one.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/one_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/ring_dist_unfolded.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve ring_dist_unfolded: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/ring_distl_unfolded.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/Ring_basics/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/one_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/is_zero_rht.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CRings/is_zero_lft.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments is_zero_rht [S].
+*)
+
+(* UNEXPORTED
+Implicit Arguments is_zero_lft [S].
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/cring_mult_zero.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cring_mult_zero: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/x_mult_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/cring_mult_zero_op.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cring_mult_zero_op: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/cring_inv_mult_lft.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cring_inv_mult_lft: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/cring_inv_mult_rht.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cring_inv_mult_rht: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/cring_mult_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/cring_mult_ap_zero_op.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/inv_mult_invol.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/ring_dist_minus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve ring_dist_minus: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/ring_distl_minus.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/exponentiation/R.var
+*)
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CRings/nexp.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CRings/nexp_well_def.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/nexp_strong_ext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/nexp_op.con" as definition.
+
+(* Begin_SpecReals *)
+
+(* UNEXPORTED
+End exponentiation
+*)
+
+(* End_SpecReals *)
+
+(* NOTATION
+Notation "x [^] n" := (nexp_op _ n x) (at level 20).
+*)
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/nat_injection/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 procedural "cic:/CoRN/algebra/CRings/nring.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CRings/Char0.con" as definition.
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CRings/nring_comm_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/nring_comm_mult.con" as lemma.
+
+(* 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 *)
+
+(* 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).
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/one_plus_one.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/x_plus_x.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve one_plus_one x_plus_x: algebra.
+*)
+
+(*#*
+In a ring of characteristic zero, [nring] is really an injection.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/nring_different.con" as lemma.
+
+(* UNEXPORTED
+Section int_injection
+*)
+
+(*#*
+*** The injection of integers into a ring
+%\begin{convention}%
+Let [R] be a ring.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/int_injection/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 procedural "cic:/CoRN/algebra/CRings/zring_old.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_old_zero.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zring_old_zero: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_old_diff.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zring_old_diff.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_old_plus_nat.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zring_old_plus_nat: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_old_inv_nat.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zring_old_inv_nat: algebra.
+*)
+
+(* UNEXPORTED
+Hint Resolve zring_old_diff: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_old_plus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zring_old_plus: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_old_inv.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zring_old_inv: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_old_minus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zring_old_minus: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_old_mult.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zring_old_mult: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_old_one.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zring_old_one: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_old_inv_one.con" as lemma.
+
+(*#************** new def of zring. ***********************)
+
+(*#* The [zring] function can be defined directly.  This is done here.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/pring_aux.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CRings/pring.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CRings/zring.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CRings/pring_aux_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/double_nring.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve pring_aux_lemma double_nring: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/pring_aux_nring.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve pring_aux_nring: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/pring_convert.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve pring_convert: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_zring_old.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zring_zring_old: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_diff.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_plus_nat.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_inv_nat.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_one.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/zring_inv_one.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/Ring_sums/R.var
+*)
+
+(*#*
+*** Infinite Ring sums
+*)
+
+(* UNEXPORTED
+Section infinite_ring_sums
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/Sum_upto.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CRings/sum_upto_O.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/Sum_from_upto.con" as definition.
+
+(*#*
+Here's an alternative def of [Sum_from_upto], with a lemma that
+it's equivalent to the original.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/seq_from.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CRings/Sum_from_upto_alt.con" as definition.
+
+(* UNEXPORTED
+End infinite_ring_sums
+*)
+
+(* UNEXPORTED
+Section ring_sums_over_lists
+*)
+
+(*#* *** Ring Sums over Lists
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/RList_Mem.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CRings/List_Sum_upto.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CRings/list_sum_upto_O.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/List_Sum_from_upto.con" as definition.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/Dist_properties/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/dist_1b.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve dist_1b: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/dist_2a.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve dist_2a: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/dist_2b.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve dist_2b: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/mult_distr_sum0_lft.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_distr_sum0_lft.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/mult_distr_sum_lft.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_distr_sum_lft: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/mult_distr_sum_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/sumx_const.con" as lemma.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/NExp_properties/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/nexp_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/nexp_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/nexp_Sn.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nexp_wd nexp_Sn: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/nexp_plus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nexp_plus: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/one_nexp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve one_nexp: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/mult_nexp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_nexp: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/nexp_mult.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nexp_mult: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/zero_nexp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zero_nexp: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/inv_nexp_even.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve inv_nexp_even: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/inv_nexp_two.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve inv_nexp_two: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/inv_nexp_odd.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve inv_nexp_odd: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/nexp_one.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nexp_one: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/nexp_two.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nexp_two: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/inv_one_even_nexp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve inv_one_even_nexp: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/inv_one_odd_nexp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve inv_one_odd_nexp: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/square_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/square_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/nexp_funny.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nexp_funny: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/nexp_funny'.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/CRing_Ops/R.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/CRing_Ops/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/CRing_Ops/G.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/algebra/CRings/CRing_Ops/P.con" "CRing_Ops__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CRings/CRing_Ops/Q.con" "CRing_Ops__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+Section Part_Function_Mult
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/part_function_mult_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/Fmult.con" as definition.
+
+(* UNEXPORTED
+End Part_Function_Mult
+*)
+
+(* UNEXPORTED
+Section Part_Function_Nth_Power
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/CRing_Ops/Part_Function_Nth_Power/n.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/part_function_nth_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/Fnth.con" as definition.
+
+(* UNEXPORTED
+End Part_Function_Nth_Power
+*)
+
+(*#*
+%\begin{convention}% Let [R':R->CProp].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/CRing_Ops/R'.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/included_FMult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/included_FMult'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/included_FMult''.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/CRing_Ops/n.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/included_FNth.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/included_FNth'.con" as lemma.
+
+(* UNEXPORTED
+End CRing_Ops
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/Fscalmult.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments Fmult [R].
+*)
+
+(* NOTATION
+Infix "{*}" := Fmult (at level 40, left associativity).
+*)
+
+(* UNEXPORTED
+Implicit Arguments Fscalmult [R].
+*)
+
+(* NOTATION
+Infix "{**}" := Fscalmult (at level 40, left associativity).
+*)
+
+(* UNEXPORTED
+Implicit Arguments Fnth [R].
+*)
+
+(* NOTATION
+Infix "{^}" := Fnth (at level 30, right associativity).
+*)
+
+(* UNEXPORTED
+Section ScalarMultiplication
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/ScalarMultiplication/R.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/ScalarMultiplication/F.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/algebra/CRings/ScalarMultiplication/P.con" "ScalarMultiplication__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CRings/ScalarMultiplication/R'.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CRings/included_FScalMult.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CRings/included_FScalMult'.con" as lemma.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/algebra/CSemiGroups.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CSemiGroups.mma
new file mode 100644 (file)
index 0000000..91bf4b7
--- /dev/null
@@ -0,0 +1,217 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CSemiGroups.v,v 1.8 2004/04/22 14:49:43 lcf Exp $ *)
+
+(*#* printing [+] %\ensuremath+% #+# *)
+
+(*#* printing {+} %\ensuremath+% #+# *)
+
+include "algebra/CSetoidInc.ma".
+
+(* Begin_SpecReals *)
+
+(*#* *Semigroups
+
+**Definition of the notion of semigroup
+*)
+
+inline procedural "cic:/CoRN/algebra/CSemiGroups/is_CSemiGroup.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSemiGroups/CSemiGroup.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CSemiGroups/csg_crr.con
+*)
+
+(*#*
+%\begin{nameconvention}%
+In the %{\em %names%}% of lemmas, we will denote [[+]] with [plus].
+%\end{nameconvention}%
+*)
+
+(* UNEXPORTED
+Implicit Arguments csg_op [c].
+*)
+
+(* NOTATION
+Infix "[+]" := csg_op (at level 50, left associativity).
+*)
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSemiGroups/CSemiGroup_axioms/G.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSemiGroups/CSemiGroup_is_CSemiGroup.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSemiGroups/plus_assoc.con" as lemma.
+
+(* UNEXPORTED
+End CSemiGroup_axioms
+*)
+
+(* Begin_SpecReals *)
+
+(*#* **Semigroup basics
+
+%\begin{convention}%
+Let [G] be a semi-group.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+Section CSemiGroup_basics
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSemiGroups/CSemiGroup_basics/G.var
+*)
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSemiGroups/plus_assoc_unfolded.con" as lemma.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSemiGroups/Part_Function_Plus/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSemiGroups/Part_Function_Plus/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSemiGroups/Part_Function_Plus/F'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/algebra/CSemiGroups/Part_Function_Plus/P.con" "Part_Function_Plus__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSemiGroups/Part_Function_Plus/Q.con" "Part_Function_Plus__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/CSemiGroups/part_function_plus_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSemiGroups/Fplus.con" as definition.
+
+(*#*
+%\begin{convention}% Let [R:G->CProp].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSemiGroups/Part_Function_Plus/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSemiGroups/included_FPlus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSemiGroups/included_FPlus'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSemiGroups/included_FPlus''.con" as lemma.
+
+(* UNEXPORTED
+End Part_Function_Plus
+*)
+
+(* UNEXPORTED
+Implicit Arguments Fplus [G].
+*)
+
+(* NOTATION
+Infix "{+}" := Fplus (at level 50, left associativity).
+*)
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSemiGroups/SubCSemiGroups/csg.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSemiGroups/SubCSemiGroups/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSemiGroups/SubCSemiGroups/op_pres_P.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSemiGroups/SubCSemiGroups/subcrr.con" "SubCSemiGroups__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSemiGroups/Build_SubCSemiGroup.con" as definition.
+
+(* UNEXPORTED
+End SubCSemiGroups
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/CSetoidFun.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CSetoidFun.mma
new file mode 100644 (file)
index 0000000..6eebecf
--- /dev/null
@@ -0,0 +1,675 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CSetoidFun.v,v 1.10 2004/04/23 10:00:53 lcf Exp $ *)
+
+include "algebra/CSetoids.ma".
+
+(* 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.  *)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/unary_function_composition/S1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/unary_function_composition/S2.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/unary_function_composition/S3.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/unary_function_composition/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/unary_function_composition/g.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/compose_CSetoid_fun.con" as definition.
+
+(* UNEXPORTED
+End unary_function_composition
+*)
+
+(* UNEXPORTED
+Section unary_and_binary_function_composition
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/compose_CSetoid_bin_un_fun.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/compose_CSetoid_bin_fun.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/compose_CSetoid_un_bin_fun.con" as definition.
+
+(* UNEXPORTED
+End unary_and_binary_function_composition
+*)
+
+(*#* ***Projections
+*)
+
+(* UNEXPORTED
+Section function_projection
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/proj_bin_fun.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/projected_bin_fun.con" as definition.
+
+(* UNEXPORTED
+End function_projection
+*)
+
+(* UNEXPORTED
+Section BinProj
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/BinProj/S.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/binproj1.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/binproj1_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/cs_binproj1.con" as definition.
+
+(* UNEXPORTED
+End BinProj
+*)
+
+(*#* **Combining operations
+%\begin{convention}% Let [S1], [S2] and [S3] be setoids.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+Section CombiningOperations
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/CombiningOperations/S1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/CombiningOperations/S2.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/CombiningOperations/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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/CombiningOperations/CombiningUnaryOperations/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/CombiningOperations/CombiningUnaryOperations/op.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/opOnFun.con" as definition.
+
+(* 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{%#<i>#a
+priori#</i>#%}% 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/SubSets_of_G/S.var
+*)
+
+(* UNEXPORTED
+Section Conjunction
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/SubSets_of_G/Conjunction/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/SubSets_of_G/Conjunction/Q.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/conjP.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/prj1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/prj2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/conj_wd.con" as lemma.
+
+(* UNEXPORTED
+End Conjunction
+*)
+
+(* UNEXPORTED
+Section Disjunction
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/SubSets_of_G/Disjunction/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/SubSets_of_G/Disjunction/Q.var
+*)
+
+(*#*
+Although at this stage we never use it, for completeness's sake we also treat disjunction (corresponding to union of subsets).
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/disj.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/inj1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/inj2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/disj_wd.con" as lemma.
+
+(* 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].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/SubSets_of_G/Extension/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/SubSets_of_G/Extension/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/extend.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/ext1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/ext2_a.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/ext2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/extension_wd.con" as lemma.
+
+(* UNEXPORTED
+End Extension
+*)
+
+(* UNEXPORTED
+End SubSets_of_G
+*)
+
+(* NOTATION
+Notation Conj := (conjP _).
+*)
+
+(* 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 procedural "cic:/CoRN/algebra/CSetoidFun/BinPartFunct.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CSetoidFun/bpfpfun.con
+*)
+
+(* NOTATION
+Notation BDom := (bpfdom _ _).
+*)
+
+(* UNEXPORTED
+Implicit Arguments bpfpfun [S1 S2].
+*)
+
+(*#*
+The next lemma states that every partial function is well defined.
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/bpfwdef.con" as lemma.
+
+(*#* Similar for automorphisms. *)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/PartFunct.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CSetoidFun/pfpfun.con
+*)
+
+(* NOTATION
+Notation Dom := (pfdom _).
+*)
+
+(* NOTATION
+Notation Part := (pfpfun _).
+*)
+
+(* UNEXPORTED
+Implicit Arguments pfpfun [S].
+*)
+
+(*#*
+The next lemma states that every partial function is well defined.
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/pfwdef.con" as lemma.
+
+(*#*
+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(&lang;s,H&rang;)#; 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(&lang;s,H&rang;)# 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/CSetoid_Ops/S.var
+*)
+
+(*#*
+To begin with, we want to be able to ``see'' each total function as a partial function.
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/total_eq_part.con" as definition.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/CSetoid_Ops/Part_Function_Const/c.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/Fconst.con" as definition.
+
+(* UNEXPORTED
+End Part_Function_Const
+*)
+
+(* UNEXPORTED
+Section Part_Function_Id
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/Fid.con" as definition.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/CSetoid_Ops/Part_Function_Composition/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/CSetoid_Ops/Part_Function_Composition/F.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/CSetoid_Ops/Part_Function_Composition/P.con" "CSetoid_Ops__Part_Function_Composition__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/CSetoid_Ops/Part_Function_Composition/Q.con" "CSetoid_Ops__Part_Function_Composition__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/CSetoid_Ops/Part_Function_Composition/R.con" "CSetoid_Ops__Part_Function_Composition__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/part_function_comp_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/part_function_comp_dom_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/Fcomp.con" as definition.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/BinPart_Function_Composition/S1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/BinPart_Function_Composition/S2.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/BinPart_Function_Composition/S3.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/BinPart_Function_Composition/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidFun/BinPart_Function_Composition/F.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/BinPart_Function_Composition/P.con" "BinPart_Function_Composition__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/BinPart_Function_Composition/Q.con" "BinPart_Function_Composition__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/BinPart_Function_Composition/R.con" "BinPart_Function_Composition__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/bin_part_function_comp_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/bin_part_function_comp_dom_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/BinFcomp.con" as definition.
+
+(* UNEXPORTED
+End BinPart_Function_Composition
+*)
+
+(* Different tokens for compatibility with coqdoc *)
+
+(* UNEXPORTED
+Implicit Arguments Fconst [S].
+*)
+
+(* NOTATION
+Notation "[-C-] x" := (Fconst x) (at level 2, right associativity).
+*)
+
+(* NOTATION
+Notation FId := (Fid _).
+*)
+
+(* UNEXPORTED
+Implicit Arguments Fcomp [S].
+*)
+
+(* NOTATION
+Infix "[o]" := Fcomp (at level 65, no associativity).
+*)
+
+(* UNEXPORTED
+Hint Resolve pfwdef bpfwdef: algebra.
+*)
+
+(* UNEXPORTED
+Section bijections
+*)
+
+(*#* **Bijections *)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/injective.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/injective_weak.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/surjective.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments injective [A B].
+*)
+
+(* UNEXPORTED
+Implicit Arguments injective_weak [A B].
+*)
+
+(* UNEXPORTED
+Implicit Arguments surjective [A B].
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/injective_imp_injective_weak.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/bijective.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments bijective [A B].
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/id_is_bij.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/comp_resp_bij.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/inv.con" as lemma.
+
+(* UNEXPORTED
+Implicit Arguments inv [A B].
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/invfun.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments invfun [A B].
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/inv1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/inv2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/inv_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/Inv.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments Inv [A B].
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidFun/Inv_bij.con" as definition.
+
+(* 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].
+*)
+
+(* NOTATION
+Notation Prj1 := (prj1 _ _ _ _).
+*)
+
+(* NOTATION
+Notation Prj2 := (prj2 _ _ _ _).
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/CSetoidInc.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CSetoidInc.mma
new file mode 100644 (file)
index 0000000..858921a
--- /dev/null
@@ -0,0 +1,120 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CSetoidInc.v,v 1.3 2004/04/22 14:49:43 lcf Exp $ *)
+
+(*#* printing included %\ensuremath{\subseteq}% #&sube;# *)
+
+include "algebra/CSetoidFun.ma".
+
+(* UNEXPORTED
+Section inclusion
+*)
+
+(*#* ** Inclusion
+
+Let [S] be a setoid, and [P], [Q], [R] be predicates on [S]. *)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidInc/inclusion/S.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidInc/included.con" as definition.
+
+(* UNEXPORTED
+Section Basics
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidInc/inclusion/Basics/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidInc/inclusion/Basics/Q.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidInc/inclusion/Basics/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidInc/included_refl.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidInc/included_trans.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidInc/included_conj.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidInc/included_conj'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidInc/included_conj''.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidInc/included_conj_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidInc/included_conj_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidInc/included_extend.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidInc/inclusion/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidInc/inclusion/G.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/algebra/CSetoidInc/inclusion/P.con" "inclusion__" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoidInc/inclusion/Q.con" "inclusion__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoidInc/inclusion/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoidInc/included_FComp.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoidInc/included_FComp'.con" as lemma.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/algebra/CSetoids.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CSetoids.mma
new file mode 100644 (file)
index 0000000..4bfc7ce
--- /dev/null
@@ -0,0 +1,1038 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id.v,v 1.18 2002/11/25 14:43:42 lcf Exp $ *)
+
+(*#* printing [=] %\ensuremath{\equiv}% #&equiv;# *)
+
+(*#* printing [~=] %\ensuremath{\mathrel{\not\equiv}}% #&ne;# *)
+
+(*#* printing [#] %\ensuremath{\mathrel\#}% *)
+
+(*#* printing ex_unq %\ensuremath{\exists^1}% #&exist;<sup>1</sup># *)
+
+(*#* printing [o] %\ensuremath\circ% #&sdot;# *)
+
+(*#* 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 "algebra/CLogic.ma".
+
+include "tactics/Step.ma".
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Relation.con" as definition.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/Properties_of_relations/A.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/irreflexive.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/cotransitive.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/tight_apart.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/antisymmetric.con" as definition.
+
+(* 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 procedural "cic:/CoRN/algebra/CSetoids/is_CSetoid.ind".
+
+inline procedural "cic:/CoRN/algebra/CSetoids/CSetoid.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CSetoids/cs_crr.con
+*)
+
+(* UNEXPORTED
+Implicit Arguments cs_eq [c].
+*)
+
+(* UNEXPORTED
+Implicit Arguments cs_ap [c].
+*)
+
+(* NOTATION
+Infix "[=]" := cs_eq (at level 70, no associativity).
+*)
+
+(* NOTATION
+Infix "[#]" := cs_ap (at level 70, no associativity).
+*)
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/cs_neq.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments cs_neq [S].
+*)
+
+(* NOTATION
+Infix "[~=]" := cs_neq (at level 70, no associativity).
+*)
+
+(*#*
+%\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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/CSetoid_axioms/S.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/CSetoid_is_CSetoid.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/ap_irreflexive.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/ap_symmetric.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/ap_cotransitive.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/ap_tight.con" as lemma.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/CSetoid_basics/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 procedural "cic:/CoRN/algebra/CSetoids/ex_unq.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/eq_reflexive.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/eq_symmetric.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/eq_transitive.con" as lemma.
+
+(*#*
+%\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 procedural "cic:/CoRN/algebra/CSetoids/eq_reflexive_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/eq_symmetric_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/eq_transitive_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/eq_wdl.con" as lemma.
+
+(* Begin_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/ap_irreflexive_unfolded.con" as lemma.
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/ap_cotransitive_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/ap_symmetric_unfolded.con" as lemma.
+
+(*#*
+%\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 procedural "cic:/CoRN/algebra/CSetoids/eq_imp_not_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/not_ap_imp_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/neq_imp_notnot_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/notnot_ap_imp_neq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/ap_imp_neq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/not_neq_imp_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/eq_imp_not_neq.con" as lemma.
+
+(* Begin_SpecReals *)
+
+(* UNEXPORTED
+End CSetoid_basics
+*)
+
+(* End_SpecReals *)
+
+(* UNEXPORTED
+Section product_csetoid
+*)
+
+(*#* **The product of setoids *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/prod_ap.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/prod_eq.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/prodcsetoid_is_CSetoid.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/ProdCSetoid.con" as definition.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/CSetoid_relations_and_predicates/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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/CSetoid_relations_and_predicates/CSetoidPredicates/P.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/pred_strong_ext.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/pred_wd.con" as definition.
+
+(* UNEXPORTED
+End CSetoidPredicates
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/CSetoid_predicate.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CSetoids/csp_pred.con
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/csp_wd.con" as lemma.
+
+(*#* Similar, with [Prop] instead of [CProp]. *)
+
+(* UNEXPORTED
+Section CSetoidPPredicates
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/CSetoid_relations_and_predicates/CSetoidPPredicates/P.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/pred_strong_ext'.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/pred_wd'.con" as definition.
+
+(* UNEXPORTED
+End CSetoidPPredicates
+*)
+
+(*#* ***Definition of a setoid predicate *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/CSetoid_predicate'.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CSetoids/csp'_pred.con
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/csp'_wd.con" as lemma.
+
+(* Begin_SpecReals *)
+
+(*#* ***Relations
+%\begin{convention}%
+Let [R] be a relation on (the carrier of) [S].
+%\end{convention}% *)
+
+(* UNEXPORTED
+Section CsetoidRelations
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/CSetoid_relations_and_predicates/CsetoidRelations/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/rel_wdr.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/rel_wdl.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/rel_strext.con" as definition.
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/rel_strext_lft.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/rel_strext_rht.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/rel_strext_imp_lftarg.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/rel_strext_imp_rhtarg.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/rel_strextarg_imp_strext.con" as lemma.
+
+(* Begin_SpecReals *)
+
+(* UNEXPORTED
+End CsetoidRelations
+*)
+
+(*#* ***Definition of a setoid relation
+The type of relations over a setoid.  *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/CSetoid_relation.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CSetoids/csr_rel.con
+*)
+
+(*#* ***[CProp] Relations
+%\begin{convention}%
+Let [R] be a relation on (the carrier of) [S].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+Section CCsetoidRelations
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/CSetoid_relations_and_predicates/CCsetoidRelations/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Crel_wdr.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Crel_wdl.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Crel_strext.con" as definition.
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Crel_strext_lft.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Crel_strext_rht.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Crel_strext_imp_lftarg.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Crel_strext_imp_rhtarg.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Crel_strextarg_imp_strext.con" as lemma.
+
+(* Begin_SpecReals *)
+
+(* UNEXPORTED
+End CCsetoidRelations
+*)
+
+(*#* ***Definition of a [CProp] setoid relation
+
+The type of relations over a setoid.  *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/CCSetoid_relation.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CSetoids/Ccsr_rel.con
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Ccsr_wdr.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Ccsr_wdl.con" as lemma.
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/ap_wdr.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/ap_wdl.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/ap_wdr_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/ap_wdl_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/ap_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/predS_well_def.con" as definition.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/CSetoid_functions/S1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/CSetoid_functions/S2.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/CSetoid_functions/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].  *)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/CSetoid_functions/unary_functions/f.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/fun_wd.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/fun_strext.con" as definition.
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/fun_strext_imp_wd.con" as lemma.
+
+(* Begin_SpecReals *)
+
+(* UNEXPORTED
+End unary_functions
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/CSetoid_fun.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CSetoids/csf_fun.con
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/csf_wd.con" as lemma.
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Const_CSetoid_fun.con" as definition.
+
+(* 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].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/CSetoid_functions/binary_functions/f.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/bin_fun_wd.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/bin_fun_strext.con" as definition.
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/bin_fun_strext_imp_wd.con" as lemma.
+
+(* Begin_SpecReals *)
+
+(* UNEXPORTED
+End binary_functions
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/CSetoid_bin_fun.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CSetoids/csbf_fun.con
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/csbf_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/csf_wd_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/csf_strext_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/csbf_wd_unfolded.con" as lemma.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/csetoid_inner_ops/S.var
+*)
+
+(*#* Properties of binary operations *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/commutes.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/associative.con" as definition.
+
+(*#* Well-defined unary operations on a setoid.  *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/un_op_wd.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/un_op_strext.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/CSetoid_un_op.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Build_CSetoid_un_op.con" as definition.
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/id_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/id_pres_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/id_un_op.con" as definition.
+
+(* begin hide *)
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CSetoids/un_op_fun.con
+*)
+
+(* end hide *)
+
+(* Begin_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/cs_un_op_strext.con" as definition.
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/un_op_wd_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/un_op_strext_unfolded.con" as lemma.
+
+(*#* Well-defined binary operations on a setoid.  *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/bin_op_wd.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/bin_op_strext.con" as definition.
+
+(* Begin_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/CSetoid_bin_op.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Build_CSetoid_bin_op.con" as definition.
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/cs_bin_op_wd.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/cs_bin_op_strext.con" as definition.
+
+(* Begin_SpecReals *)
+
+(* begin hide *)
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CSetoids/bin_op_bin_fun.con
+*)
+
+(* end hide *)
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/bin_op_wd_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/bin_op_strext_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/bin_op_is_wd_un_op_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/bin_op_is_wd_un_op_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/bin_op_is_strext_un_op_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/bin_op_is_strext_un_op_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/bin_op2un_op_rht.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/bin_op2un_op_lft.con" as definition.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/csetoid_outer_ops/S1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/csetoid_outer_ops/S2.var
+*)
+
+(*#*
+Well-defined outer operations on a setoid.
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/outer_op_well_def.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/outer_op_strext.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/CSetoid_outer_op.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Build_CSetoid_outer_op.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/csoo_wd.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/csoo_strext.con" as definition.
+
+(* begin hide *)
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CSetoids/outer_op_bin_fun.con
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/csoo_wd_unfolded.con" as lemma.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/SubCSetoids/S.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/SubCSetoids/P.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/subcsetoid_crr.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CSetoids/scs_elem.con
+*)
+
+(*#* 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 procedural "cic:/CoRN/algebra/CSetoids/restrict_relation.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Crestrict_relation.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/subcsetoid_eq.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/subcsetoid_ap.con" as definition.
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/subcsetoid_equiv.con" as remark.
+
+(* Begin_SpecReals *)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/subcsetoid_is_CSetoid.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Build_SubCSetoid.con" as definition.
+
+(* End_SpecReals *)
+
+(*#* ***Subsetoid unary operations
+%\begin{convention}%
+Let [f] be a unary setoid operation on [S].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+Section SubCSetoid_unary_operations
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/SubCSetoids/SubCSetoid_unary_operations/f.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/un_op_pres_pred.con" as definition.
+
+(*#*
+%\begin{convention}%
+Assume [pr:un_op_pres_pred].
+%\end{convention}% *)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/SubCSetoids/SubCSetoid_unary_operations/pr.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/restr_un_op.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/restr_un_op_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/restr_un_op_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Build_SubCSetoid_un_op.con" as definition.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/SubCSetoids/SubCSetoid_binary_operations/f.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/bin_op_pres_pred.con" as definition.
+
+(*#*
+%\begin{convention}%
+Assume [bin_op_pres_pred].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSetoids/SubCSetoids/SubCSetoid_binary_operations/pr.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/restr_bin_op.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/restr_bin_op_well_def.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/restr_bin_op_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/Build_SubCSetoid_bin_op.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/restr_f_assoc.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/algebra/CSetoids/proper_caseZ_diff_CS.con" as lemma.
+
+(*#*
+Finally, we characterize functions defined on the natural numbers also as setoid functions, similarly to what we already did for predicates.
+*)
+
+inline procedural "cic:/CoRN/algebra/CSetoids/nat_less_n_fun.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSetoids/nat_less_n_fun'.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments nat_less_n_fun [S n].
+*)
+
+(* UNEXPORTED
+Implicit Arguments nat_less_n_fun' [S n].
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/CSums.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CSums.mma
new file mode 100644 (file)
index 0000000..baf3f4e
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CSums.v,v 1.8 2004/04/23 10:00:54 lcf Exp $ *)
+
+(*#* printing Sum0 %\ensuremath{\sum_0}% #&sum;<sub>0</sub># *)
+
+(*#* printing Sum1 %\ensuremath{\sum_1}% #&sum;<sub>1</sub># *)
+
+(*#* printing Sum2 %\ensuremath{\sum_2}% #&sum;<sub>2</sub># *)
+
+(*#* printing Sum %\ensuremath{\sum}% #&sum;# *)
+
+(*#* printing Sumx %\ensuremath{\sum'}% #&sum;'&*)
+
+include "algebra/CAbGroups.ma".
+
+(*#* * Sums
+
+%\begin{convention}% Let [G] be an abelian group.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+Section Sums
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSums/Sums/G.var
+*)
+
+(* Sum1 and Sum use subtraction *)
+
+inline procedural "cic:/CoRN/algebra/CSums/Sumlist.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sumx.con" as definition.
+
+(*#*
+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 procedural "cic:/CoRN/algebra/CSums/part_tot_nat_fun.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSums/part_tot_nat_fun_ch1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/part_tot_nat_fun_ch2.con" as lemma.
+
+(*#* [Sum0] defines the sum for [i=0..(n-1)] *)
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum0.con" as definition.
+
+(*#* [Sum1] defines the sum for [i=m..(n-1)] *)
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum1.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum.con" as definition.
+
+(* 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 procedural "cic:/CoRN/algebra/CSums/Sum2.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_one.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Sum_one: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_empty.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Sum_empty: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_Sum.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Sum_Sum: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_first.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_last.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Sum_last: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_last'.con" as lemma.
+
+(*#*
+We add some extensionality results which will be quite useful
+when working with integration.
+*)
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum0_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sumx_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum0_strext'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_strext'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum0_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sumx_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_wd'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum2_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum0_plus_Sum0.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Sum0_plus_Sum0: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_plus_Sum.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sumx_plus_Sumx.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum2_plus_Sum2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/inv_Sum0.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve inv_Sum0: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CSums/inv_Sum.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve inv_Sum: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CSums/inv_Sumx.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/inv_Sum2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_minus_Sum.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Sum_minus_Sum: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CSums/Sumx_minus_Sumx.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum2_minus_Sum2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_apzero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_term.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum0_shift.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Sum0_shift: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_shift.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sum_big_shift.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sumx_Sum0.con" as lemma.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CSums/More_Sums/G.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CSums/Mengolli_Sum.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Mengolli_Sum_gen.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/str_Mengolli_Sum_gen.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CSums/Sumx_to_Sum.con" as lemma.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/algebra/CVectorSpace.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/CVectorSpace.mma
new file mode 100644 (file)
index 0000000..76bf9c5
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CVectorSpace.v,v 1.4 2004/04/23 10:00:54 lcf Exp $ *)
+
+(*#* printing ['] %{'}% #'# *)
+
+include "algebra/CFields.ma".
+
+(*#*
+* Vector Spaces
+
+Obsolete but maintained.
+*)
+
+(* begin hide *)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(* UNEXPORTED
+Unset Strict Implicit.
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/algebra/CVectorSpace/VSpace.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/algebra/CVectorSpace/vs_vs.con
+*)
+
+(* 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].
+*)
+
+(* NOTATION
+Infix "[']" := vs_op (at level 30, no associativity).
+*)
+
+(*#*
+%\begin{convention}%
+Let [F] be a fiels and let [V] be a vector space over [F]
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+Section VS_basics
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CVectorSpace/VS_basics/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/CVectorSpace/VS_basics/V.var
+*)
+
+inline procedural "cic:/CoRN/algebra/CVectorSpace/vs_op_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CVectorSpace/zero_vs_op.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve vs_op_zero zero_vs_op: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CVectorSpace/vs_op_inv_V.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CVectorSpace/vs_op_inv_S.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve vs_op_inv_V vs_op_inv_S: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CVectorSpace/vs_inv_assoc.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve vs_inv_assoc: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/CVectorSpace/ap_zero_vs_op_l.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CVectorSpace/ap_zero_vs_op_r.con" as lemma.
+
+(* note this is the same proof as mult_resp_ap_zero *)
+
+inline procedural "cic:/CoRN/algebra/CVectorSpace/vs_op_resp_ap_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CVectorSpace/vs_op_resp_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/CVectorSpace/vs_op_resp_ap_lft.con" as lemma.
+
+(* UNEXPORTED
+End VS_basics
+*)
+
+(* UNEXPORTED
+Hint Resolve vs_op_zero zero_vs_op: algebra.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/Cauchy_COF.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/Cauchy_COF.mma
new file mode 100644 (file)
index 0000000..7cd2bd6
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Cauchy_COF.v,v 1.8 2004/04/23 10:00:54 lcf Exp $ *)
+
+include "algebra/COrdCauchy.ma".
+
+include "tactics/RingReflection.ma".
+
+(*#*
+* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/Cauchy_COF/Structure/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 procedural "cic:/CoRN/algebra/Cauchy_COF/R_Set.con" as definition.
+
+(* UNEXPORTED
+Section CSetoid_Structure
+*)
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_lt.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_ap.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_eq.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_lt_cotrans.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_ap_cotrans.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_ap_symmetric.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_lt_irreflexive.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_ap_irreflexive.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_ap_eq_tight.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_CSetoid.con" as definition.
+
+(* 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 procedural "cic:/CoRN/algebra/Cauchy_COF/R_plus.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_zero.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_plus_lft_ext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_plus_assoc.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_zero_lft_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_plus_comm.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_inv.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_inv_is_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_inv_ext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/Rinv.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_CAbGroup.con" as definition.
+
+(* UNEXPORTED
+End Group_Structure
+*)
+
+(* UNEXPORTED
+Section Ring_Structure
+*)
+
+(*#* ** Ring Structure
+Same comments as previously.
+*)
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_mult.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_one.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_one_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_mult_dist_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_mult_dist_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_one_rht_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_mult_comm.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_mult_ap_zero'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_mult_lft_ext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_mult_rht_ext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_mult_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/Rmult.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_mult_assoc.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_one_lft_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_CRing.con" as definition.
+
+(* 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 procedural "cic:/CoRN/algebra/Cauchy_COF/R_integral_domain.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_recip.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_recip_inverse.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_recip_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_recip_inverse'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_CField.con" as definition.
+
+(* UNEXPORTED
+End Field_Structure
+*)
+
+(* UNEXPORTED
+Section Order
+*)
+
+(*#* ** Order Structure
+Finally, we extend the field structure with the ordering we
+defined at the beginning.
+*)
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_lt_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/Rlt.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/Rlt_transitive.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/Rlt_strict.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_plus_resp_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_mult_resp_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_COrdField.con" as definition.
+
+(* UNEXPORTED
+End Order
+*)
+
+(*#*
+** Other Results
+Auxiliary characterizations of the main relations on [R_Set].
+*)
+
+(* UNEXPORTED
+Section Auxiliary
+*)
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/Rlt_alt_1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/Rlt_alt_2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_ap_alt_1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/Eq_alt_1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/R_ap_alt_2.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/Eq_alt_2_1.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Cauchy_COF/Eq_alt_2_2.con" as lemma.
+
+(* UNEXPORTED
+End Auxiliary
+*)
+
+(* UNEXPORTED
+End Structure
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/Expon.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/Expon.mma
new file mode 100644 (file)
index 0000000..4532bf8
--- /dev/null
@@ -0,0 +1,294 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Expon.v,v 1.5 2004/04/23 10:00:54 lcf Exp $ *)
+
+(*#* printing [^^] %\ensuremath{\hat{\ }}% #^# *)
+
+include "algebra/COrdCauchy.ma".
+
+include "tactics/Transparent_algebra.ma".
+
+(*#* *Exponentiation
+**More properties about [nexp]
+%\begin{convention}% Let [R] be an ordered field.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+Section More_Nexp
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/Expon/More_Nexp/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/nexp_resp_ap_zero.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nexp_resp_ap_zero: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/nexp_distr_div.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/nexp_distr_div'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/small_nexp_resp_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/great_nexp_resp_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/small_nexp_resp_le.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/great_nexp_resp_le.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/nexp_resp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/nexp_resp_leEq_one.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/nexp_resp_leEq_neg_even.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/nexp_resp_leEq_neg_odd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/nexp_distr_recip.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nexp_distr_recip: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/nexp_even_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/nexp_resp_le'.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/nexp_resp_le.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/bin_less_un.con" as lemma.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/Expon/Zexp_def/R.var
+*)
+
+(*#*
+It would be nicer to define [zexp] using [caseZdiff], but we already
+have most properties now.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp.con" as definition.
+
+(* UNEXPORTED
+End Zexp_def
+*)
+
+(* UNEXPORTED
+Implicit Arguments zexp [R].
+*)
+
+(* NOTATION
+Notation "( x [//] Hx ) [^^] n" := (zexp x Hx n) (at level 0).
+*)
+
+(*#* **Properties of [zexp]
+%\begin{convention}% Let [R] be an ordered field.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+Section Zexp_properties
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/Expon/Zexp_properties/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_zero.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_zero: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_nexp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_nexp: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_inv_nexp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_inv_nexp: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_inv_nexp'.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_inv_nexp': algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_wd.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_wd: algebra_c.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_plus1.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_plus1: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_resp_ap_zero.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_resp_ap_zero: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_inv.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_inv: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_inv1.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_inv1: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_plus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_plus: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_minus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_minus: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/one_zexp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve one_zexp: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/mult_zexp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_zexp: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_mult.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_mult: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_two.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_two: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/inv_zexp_even.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve inv_zexp_even: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/inv_zexp_two.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve inv_zexp_two: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/inv_zexp_odd.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_one.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_one: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_funny.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_funny: algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_funny'.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zexp_funny': algebra.
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/zexp_pos.con" as lemma.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/Expon/Root_Unique/R.var
+*)
+
+inline procedural "cic:/CoRN/algebra/Expon/root_unique.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/Expon/root_one.con" as lemma.
+
+(* UNEXPORTED
+End Root_Unique
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/algebra/ListType.mma b/helm/software/matita/contribs/procedural/CoRN/algebra/ListType.mma
new file mode 100644 (file)
index 0000000..307bc76
--- /dev/null
@@ -0,0 +1,261 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* begin hide *)
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: ListType.v,v 1.2 2004/03/26 16:07:02 lcf Exp $ i*)
+
+(* THIS IS A OLD CONTRIB. IT IS NO LONGER MAINTAINED ***)
+
+(* Moved to Type for CoRN *)
+
+(* end hide *)
+
+(*#*
+%\cleardoublepage\setcounter{page}{1}%
+*Lists in Type
+
+This file contains a variant of the development of lists in the standard
+library of Coq but moved to the Type level.
+*)
+
+(* UNEXPORTED
+Section List
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/ListType/List/A.var
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/list.ind".
+
+inline procedural "cic:/CoRN/algebra/ListType/app.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/ListType/app_nil_end.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve app_nil_end: list v62.
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/app_ass.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve app_ass: list v62.
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/ass_app.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve ass_app: list v62.
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/tail.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/ListType/nil_cons.con" as lemma.
+
+(*#***************************************)
+
+(* Length of lists                      *)
+
+(*#***************************************)
+
+inline procedural "cic:/CoRN/algebra/ListType/length.con" as definition.
+
+(*#*****************************)
+
+(* Length order of lists      *)
+
+(*#*****************************)
+
+(* UNEXPORTED
+Section length_order
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/lel.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold lel: list.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/ListType/List/length_order/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/ListType/List/length_order/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/ListType/List/length_order/l.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/ListType/List/length_order/m.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/ListType/List/length_order/n.var
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/lel_refl.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/ListType/lel_trans.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/ListType/lel_cons_cons.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/ListType/lel_cons.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/ListType/lel_tail.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/ListType/lel_nil.con" as lemma.
+
+(* UNEXPORTED
+End length_order
+*)
+
+(* UNEXPORTED
+Hint Resolve lel_refl lel_cons_cons lel_cons lel_nil lel_nil nil_cons: list
+  v62.
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/In.con" as definition.
+
+inline procedural "cic:/CoRN/algebra/ListType/in_eq.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve in_eq: list v62.
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/in_cons.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve in_cons: list v62.
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/in_app_or.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate in_app_or: list v62.
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/in_or_app.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve in_or_app: list v62.
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/incl.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold incl: list v62.
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/incl_refl.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve incl_refl: list v62.
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/incl_tl.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate incl_tl: list v62.
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/incl_tran.con" as lemma.
+
+inline procedural "cic:/CoRN/algebra/ListType/incl_appl.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate incl_appl: list v62.
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/incl_appr.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate incl_appr: list v62.
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/incl_cons.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve incl_cons: list v62.
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/incl_app.con" as lemma.
+
+(* UNEXPORTED
+End List
+*)
+
+(* UNEXPORTED
+Implicit Arguments length [A].
+*)
+
+(* UNEXPORTED
+Implicit Arguments In [A].
+*)
+
+(* UNEXPORTED
+Implicit Arguments cons [A].
+*)
+
+(* UNEXPORTED
+Section Map
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/ListType/Map/A.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/ListType/Map/B.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/algebra/ListType/Map/f.var
+*)
+
+inline procedural "cic:/CoRN/algebra/ListType/map.con" as definition.
+
+(* UNEXPORTED
+End Map
+*)
+
+(* UNEXPORTED
+Implicit Arguments map [A B].
+*)
+
+(* UNEXPORTED
+Hint Resolve incl_app: list v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/complex/AbsCC.mma b/helm/software/matita/contribs/procedural/CoRN/complex/AbsCC.mma
new file mode 100644 (file)
index 0000000..6ab3647
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: AbsCC.v,v 1.2 2004/04/23 10:00:54 lcf Exp $ *)
+
+include "complex/CComplex.ma".
+
+(*#* * Absolute value on [CC]
+** Properties of [AbsCC] *)
+
+(* UNEXPORTED
+Section AbsCC_properties
+*)
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_ap_zero_imp_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_wd.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve AbsCC_wd: algebra_c.
+*)
+
+inline procedural "cic:/CoRN/complex/AbsCC/cc_inv_abs.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cc_inv_abs: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/AbsCC/cc_minus_abs.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/AbsCC/cc_mult_abs.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cc_mult_abs: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_minzero.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_IR.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve AbsCC_IR: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/AbsCC/cc_div_abs.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/AbsCC/cc_div_abs'.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_zero.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve AbsCC_zero: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_one.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/AbsCC/cc_pow_abs.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_small_imp_eq.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_properties/l_1_1_2.con" "AbsCC_properties__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+Hint Resolve l_1_1_2: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_square_Re_Im.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve AbsCC_square_Re_Im: algebra.
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_properties/l_1_2_3_CC.con" "AbsCC_properties__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+Hint Resolve l_1_2_3_CC: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_mult_conj.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve CC_conj_mult: algebra.
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/complex/AbsCC/l_2_1_2.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve l_2_1_2: algebra.
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_mult_square.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_square_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/AbsCC/cc_recip_char.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsSmallCC.con" as definition.
+
+inline procedural "cic:/CoRN/complex/AbsCC/Cexis_AFS_CC.con" as lemma.
+
+(* The following lemmas are just auxiliary results *)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_properties/l_4_1_2.con" "AbsCC_properties__" as definition.
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_properties/l_4_2_3.con" "AbsCC_properties__" as definition.
+
+inline procedural "cic:/CoRN/complex/AbsCC/AbsCC_properties/l_4_3_4.con" "AbsCC_properties__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+End AbsCC_properties
+*)
+
+(* UNEXPORTED
+Hint Resolve AbsCC_wd: algebra_c.
+*)
+
+(* UNEXPORTED
+Hint Resolve cc_inv_abs cc_mult_abs cc_div_abs cc_div_abs' cc_pow_abs
+  AbsCC_zero AbsCC_one AbsCC_IR AbsCC_mult_conj AbsCC_mult_square
+  cc_recip_char: algebra.
+*)
+
+(*#* ** The triangle inequality *)
+
+inline procedural "cic:/CoRN/complex/AbsCC/triangle.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/AbsCC/triangle_Sum.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/complex/CComplex.mma b/helm/software/matita/contribs/procedural/CoRN/complex/CComplex.mma
new file mode 100644 (file)
index 0000000..176a77d
--- /dev/null
@@ -0,0 +1,385 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CComplex.v,v 1.8 2004/04/23 10:00:55 lcf Exp $ *)
+
+(*#* printing Re %\ensuremath{\Re}% #&real;# *)
+
+(*#* printing Im %\ensuremath{\Im}% #&image;# *)
+
+(*#* printing CC %\ensuremath{\mathbb C}% #<b>C</b># *)
+
+(*#* printing II %\ensuremath{\imath}% #i# *)
+
+(*#* printing [+I*] %\ensuremath{+\imath}% *)
+
+(*#* printing AbsCC %\ensuremath{|\cdot|_{\mathbb C}}% *)
+
+(*#* printing CCX %\ensuremath{\mathbb C[X]}% #<b>C</b>[X]# *)
+
+include "reals/NRootIR.ma".
+
+(*#* * Complex Numbers
+** Algebraic structure
+*)
+
+(* UNEXPORTED
+Section Complex_Numbers
+*)
+
+inline procedural "cic:/CoRN/complex/CComplex/CC_set.ind".
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_ap.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_eq.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_is_CSetoid.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_csetoid.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_plus.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_mult.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_zero.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_one.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_i.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_inv.con" as definition.
+
+(* 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 procedural "cic:/CoRN/complex/CComplex/cc_inv_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_plus_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_mult_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_inv_op.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_plus_op.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_mult_op.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_csg_associative.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_cr_mult_associative.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_csemi_grp.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_cm_proof.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_cmonoid.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_cg_proof.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_cr_dist.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_cr_non_triv.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_cgroup.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_cabgroup.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_cr_mult_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_mult_commutes.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_isCRing.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_cring.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_inv_aid.con" as lemma.
+
+(*#*
+If [x [~=] Zero] or [y [~=] Zero], then  [x [/] x[^]2 [+] y[^]2 [~=] Zero] or
+[[--]y[/]x[^]2[+]y[^]2 [~=] Zero].
+*)
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_inv_aid2.con" as lemma.
+
+(*
+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 procedural "cic:/CoRN/complex/CComplex/cc_recip.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_cfield_proof.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_Recip_proof.con" as lemma.
+
+(* UNEXPORTED
+Opaque cc_recip.
+*)
+
+(* UNEXPORTED
+Opaque cc_inv.
+*)
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_cfield.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/CC.con" as definition.
+
+(*#*
+Maps from reals to complex and vice-versa are defined, as well as conjugate,
+absolute value and the imaginary unit [I] *)
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_set_CC.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_IR.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/CC_conj.con" as definition.
+
+(* 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 procedural "cic:/CoRN/complex/CComplex/AbsCC.con" as definition.
+
+inline procedural "cic:/CoRN/complex/CComplex/TwoCC_ap_zero.con" as lemma.
+
+(* UNEXPORTED
+End Complex_Numbers
+*)
+
+(* begin hide *)
+
+(* NOTATION
+Notation CCX := (cpoly_cring CC).
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/complex/CComplex/II.con" as definition.
+
+(* NOTATION
+Infix "[+I*]" := cc_set_CC (at level 48, no associativity).
+*)
+
+(*#* ** Properties of [II] *)
+
+(* UNEXPORTED
+Section I_properties
+*)
+
+inline procedural "cic:/CoRN/complex/CComplex/I_square.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve I_square: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/CComplex/I_square'.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/I_recip_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/I_recip_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/mult_I.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/I_wd.con" as lemma.
+
+(*#* ** Properties of [Re] and [Im] *)
+
+inline procedural "cic:/CoRN/complex/CComplex/calculate_norm.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/calculate_Re.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/calculate_Im.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/Re_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/Im_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/Re_resp_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/Re_resp_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/Im_resp_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/Im_resp_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_calculate_square.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/complex/CComplex/CC_conj_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/CC_conj_mult.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve CC_conj_mult: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/CComplex/CC_conj_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/CC_conj_conj.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/CC_conj_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/CC_conj_one.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve CC_conj_one: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/CComplex/CC_conj_nexp.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/complex/CComplex/Re_cc_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/Im_cc_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_IR_wd.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cc_IR_wd: algebra_c.
+*)
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_IR_resp_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_IR_mult.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cc_IR_mult: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_IR_mult_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_IR_mult_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_IR_plus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cc_IR_plus: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_IR_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_IR_zero.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cc_IR_zero: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_IR_one.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cc_IR_one: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_IR_nring.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/cc_IR_nexp.con" as lemma.
+
+(* 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 "tactics/Transparent_algebra.ma".
+
+inline procedural "cic:/CoRN/complex/CComplex/char0_CC.con" as lemma.
+
+include "tactics/Opaque_algebra.ma".
+
+inline procedural "cic:/CoRN/complex/CComplex/poly_apzero_CC.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/CComplex/poly_CC_extensional.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/complex/Complex_Exponential.mma b/helm/software/matita/contribs/procedural/CoRN/complex/Complex_Exponential.mma
new file mode 100644 (file)
index 0000000..f48ca18
--- /dev/null
@@ -0,0 +1,102 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Complex_Exponential.v,v 1.4 2004/04/23 10:00:55 lcf Exp $ *)
+
+(*#* printing ExpCC %\ensuremath{\exp_{\mathbb C}}% *)
+
+include "complex/AbsCC.ma".
+
+include "transc/Exponential.ma".
+
+include "transc/Pi.ma".
+
+(*#* ** The Complex Exponential *)
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/ExpCC.con" as definition.
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/ExpCC_wd.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/ExpCC_equation_aid_1.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/ExpCC_equation_aid_2.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/ExpCC_equation_aid_3.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/ExpCC_equation_aid_4.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/ExpCC_plus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve ExpCC_plus: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/ExpCC_Zero.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve ExpCC_Zero: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/ExpCC_inv_aid.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve ExpCC_inv_aid: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/ExpCC_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/ExpCC_inv.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve ExpCC_inv: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/ExpCC_pow.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve ExpCC_pow: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/AbsCC_ExpCC.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve AbsCC_ExpCC: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/ExpCC_Periodic.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve ExpCC_Periodic: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/ExpCC_Exp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve ExpCC_Exp: algebra.
+*)
+
+(* UNEXPORTED
+Opaque Sin Cos Exp.
+*)
+
+inline procedural "cic:/CoRN/complex/Complex_Exponential/Euler.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/complex/NRootCC.mma b/helm/software/matita/contribs/procedural/CoRN/complex/NRootCC.mma
new file mode 100644 (file)
index 0000000..1fa6e5c
--- /dev/null
@@ -0,0 +1,646 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $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 "complex/CComplex.ma".
+
+(*#* * Roots of Complex Numbers
+
+Properties of non-zero complex numbers
+*)
+
+(* UNEXPORTED
+Section CC_ap_zero
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/cc_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/C_cc_ap_zero.con" as lemma.
+
+(* UNEXPORTED
+End CC_ap_zero
+*)
+
+(*#* Weird lemma. *)
+
+(* UNEXPORTED
+Section Imag_to_Real
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/imag_to_real.con" as lemma.
+
+(* UNEXPORTED
+End Imag_to_Real
+*)
+
+(*#* ** Roots of the imaginary unit *)
+
+(* UNEXPORTED
+Section NRootI
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/sqrt_Half.con" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/sqrt_I.con" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/sqrt_I_nexp.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nroot_I_nexp_aux.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nroot_I.con" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nroot_I_nexp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nroot_I_nexp: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nroot_minus_I.con" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nroot_minus_I_nexp.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/b_.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/c2.con" "NRootCC_1__NRootCC_1_ap_real__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_c2pos.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/c.con" "NRootCC_1__NRootCC_1_ap_real__" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/a'2.con" "NRootCC_1__NRootCC_1_ap_real__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a'2pos.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/a'.con" "NRootCC_1__NRootCC_1_ap_real__" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/b'2.con" "NRootCC_1__NRootCC_1_ap_real__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_b'2pos.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_real/b'.con" "NRootCC_1__NRootCC_1_ap_real__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a3.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a4.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nrCC1_a4: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a5.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a6.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a6'.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nrCC1_a5: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a7_upper.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC1_a7_lower.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nrCC1_a3 nrCC1_a7_upper nrCC1_a7_lower: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_1_upper.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_1_lower.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_1_ap_real.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_imag/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_imag/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_imag/a_.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_imag/c'.con" "NRootCC_1__NRootCC_1_ap_imag__" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_imag/a'.con" "NRootCC_1__NRootCC_1_ap_imag__" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_1/NRootCC_1_ap_imag/b'.con" "NRootCC_1__NRootCC_1_ap_imag__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+Hint Resolve sqrt_I_nexp: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_1_ap_imag.con" as lemma.
+
+(* UNEXPORTED
+End NRootCC_1_ap_imag
+*)
+
+(*#* We now define the roots of arbitrary non zero complex numbers. *)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_1.con" as lemma.
+
+(* UNEXPORTED
+End NRootCC_1
+*)
+
+(* UNEXPORTED
+Section NRootCC_2
+*)
+
+(*#*
+%\begin{convention}% Let [n : nat] and [c,z : CC] and [c_:(c [#] Zero)].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_2/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_2/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_2/z.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_2/c_.var
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_2'.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_2.con" as lemma.
+
+(* UNEXPORTED
+End NRootCC_2
+*)
+
+(* UNEXPORTED
+Section NRootCC_3
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/Im_poly.con" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a1.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a2.con" as lemma.
+
+(*#*
+%\begin{convention}% Let [a,b : IR], [b_ : (b [#] Zero)] and [n : nat].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_3/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_3/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_3/b_.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_3/n.var
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_poly''.con" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a3.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a4.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a5.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a6.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_poly'.con" as definition.
+
+(* UNEXPORTED
+Hint Resolve nrCC3_a3: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a7.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a8.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nth_coeff_p_mult_c_: algebra.
+*)
+
+(* UNEXPORTED
+Hint Resolve nrCC3_a6: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC3_a9.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_3_poly.con" as definition.
+
+(* UNEXPORTED
+Hint Resolve nrCC3_a1 nrCC3_a7: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_3_.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nrootCC_3_: algebra.
+*)
+
+(* UNEXPORTED
+Hint Resolve calculate_Im: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_3.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nrCC3_a2: algebra.
+*)
+
+(* UNEXPORTED
+Hint Resolve nrCC3_a9: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_3_degree.con" as lemma.
+
+(* UNEXPORTED
+End NRootCC_3
+*)
+
+(* UNEXPORTED
+Section NRootCC_3'
+*)
+
+(*#*
+%\begin{convention}% Let [c:IR], [n:nat] and [n_:(lt (0) n)].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_3'/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_3'/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_3'/n_.var
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_3'_poly.con" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_3'.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_3'_degree.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/b_.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/n_.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/c.con" "NRootCC_4__NRootCC_4_ap_real__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+Section NRootCC_4_solutions
+*)
+
+(* UNEXPORTED
+Hint Resolve nrootCC_3: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a1.con" as lemma.
+
+(*#*
+%\begin{convention}% Let [r2',c2 : IR] and [r2'_ : (r2' [#] Zero)].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_solutions/r2'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_solutions/c2.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_solutions/r2'_.var
+*)
+
+(* UNEXPORTED
+Hint Resolve nrootCC_3': algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a1'.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_equations/r.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_equations/r_property.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_equations/y2.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_equations/y2_property.var
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a2.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a3.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a4.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_y.con" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_equations/y.con" "NRootCC_4__NRootCC_4_ap_real__NRootCC_4_equations__" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_x.con" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_equations/x.con" "NRootCC_4__NRootCC_4_ap_real__NRootCC_4_equations__" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a5.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a6.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_z.con" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_real/NRootCC_4_equations/z.con" "NRootCC_4__NRootCC_4_ap_real__NRootCC_4_equations__" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a7.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nrCC4_a6: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a8.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a9.con" as lemma.
+
+(* UNEXPORTED
+End NRootCC_4_equations
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC4_a10.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_4_ap_real.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/a_.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/n_.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/c'.con" "NRootCC_4__NRootCC_4_ap_imag__" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/a'.con" "NRootCC_4__NRootCC_4_ap_imag__" as definition.
+
+inline procedural "cic:/CoRN/complex/NRootCC/NRootCC_4/NRootCC_4_ap_imag/b'.con" "NRootCC_4__NRootCC_4_ap_imag__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_4_ap_real'.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nroot_minus_I_nexp: algebra.
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_4_ap_imag.con" as lemma.
+
+(* UNEXPORTED
+End NRootCC_4_ap_imag
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_4.con" as lemma.
+
+(* UNEXPORTED
+End NRootCC_4
+*)
+
+(*#* Finally, the general definition of nth root. *)
+
+(* UNEXPORTED
+Section NRootCC_5
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC_5a2.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC_5a3.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve nrCC_5a3: algebra.
+*)
+
+(*#*
+%\begin{convention}% Let [c : CC] with [c [#] Zero].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_5/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/complex/NRootCC/NRootCC_5/c_.var
+*)
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrCC_5a4.con" as lemma.
+
+inline procedural "cic:/CoRN/complex/NRootCC/nrootCC_5.con" as lemma.
+
+(* UNEXPORTED
+End NRootCC_5
+*)
+
+(*#* Final definition *)
+
+inline procedural "cic:/CoRN/complex/NRootCC/CnrootCC.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/depends b/helm/software/matita/contribs/procedural/CoRN/depends
new file mode 100644 (file)
index 0000000..eea15ae
--- /dev/null
@@ -0,0 +1,315 @@
+model/rings/Zring.mma CoRN.ma algebra/CRings.ma model/abgroups/Zabgroup.ma
+algebra/Cauchy_COF.ma algebra/Cauchy_COF.mma
+reals/RealFuncts.ma reals/RealFuncts.mma
+tactics/Step.ma tactics/Step.mma
+algebra/CSemiGroups.ma algebra/CSemiGroups.mma
+reals/OddPolyRootIR.mma CoRN.ma reals/IVT.ma
+ftc/Composition.mma CoRN.ma ftc/MoreFunctions.ma
+tactics/FieldReflection.ma tactics/FieldReflection.mma
+algebra/Expon.mma CoRN.ma algebra/COrdCauchy.ma tactics/Transparent_algebra.ma
+ftc/TaylorLemma.mma CoRN.ma ftc/Rolle.ma
+model/non_examples/N_no_group.mma CoRN.ma algebra/CGroups.ma model/monoids/Nmonoid.ma
+algebra/CVectorSpace.mma CoRN.ma algebra/CFields.ma
+reals/CReals.ma reals/CReals.mma
+CoRN.ma preamble.ma
+devel/loeb/per/lst2fun.ma devel/loeb/per/lst2fun.mma
+algebra/CSemiGroups.mma CoRN.ma algebra/CSetoidInc.ma
+model/setoids/Nsetoid.mma CoRN.ma algebra/CSetoidFun.ma model/structures/Nsec.ma
+ftc/Partitions.ma ftc/Partitions.mma
+metrics/IR_CPMSpace.mma CoRN.ma metrics/ContFunctions.ma
+model/abgroups/QSposabgroup.mma CoRN.ma algebra/CAbGroups.ma model/groups/QSposgroup.ma
+model/structures/Npossec.ma model/structures/Npossec.mma
+model/structures/Qsec.ma model/structures/Qsec.mma
+fta/CC_Props.ma fta/CC_Props.mma
+algebra/CPoly_Degree.ma algebra/CPoly_Degree.mma
+ftc/MoreIntegrals.mma CoRN.ma ftc/Integral.ma ftc/MoreFunctions.ma
+algebra/CRings.ma algebra/CRings.mma
+transc/Pi.mma CoRN.ma transc/SinCos.ma
+algebra/CPolynomials.mma CoRN.ma tactics/RingReflection.ma
+ftc/Rolle.ma ftc/Rolle.mma
+reals/CSumsReals.ma reals/CSumsReals.mma
+ftc/NthDerivative.mma CoRN.ma ftc/Differentiability.ma
+ftc/FunctSums.mma CoRN.ma ftc/PartFunEquality.ma reals/CSumsReals.ma
+ftc/RefSeparated.ma ftc/RefSeparated.mma
+ftc/FTC.ma ftc/FTC.mma
+model/monoids/Nposmonoid.mma CoRN.ma algebra/CMonoids.ma model/semigroups/Npossemigroup.ma
+ftc/IntervalFunct.mma CoRN.ma ftc/PartFunEquality.ma
+algebra/ListType.ma algebra/ListType.mma
+reals/RealLists.mma CoRN.ma reals/CReals1.ma
+model/ordfields/Qordfield.ma model/ordfields/Qordfield.mma
+metrics/ContFunctions.ma metrics/ContFunctions.mma
+algebra/Cauchy_COF.mma CoRN.ma algebra/COrdCauchy.ma tactics/RingReflection.ma
+transc/Trigonometric.ma transc/Trigonometric.mma
+reals/CMetricFields.ma reals/CMetricFields.mma
+complex/NRootCC.ma complex/NRootCC.mma
+ftc/RefLemma.mma CoRN.ma ftc/RefSepRef.ma ftc/RefSeparated.ma ftc/RefSeparating.ma
+model/monoids/Nposmonoid.ma model/monoids/Nposmonoid.mma
+tactics/DiffTactics2.ma tactics/DiffTactics2.mma
+model/structures/Npossec.mma CoRN.ma model/structures/Nsec.ma
+ftc/PartInterval.mma CoRN.ma ftc/IntervalFunct.ma
+transc/Pi.ma transc/Pi.mma
+metrics/IR_CPMSpace.ma metrics/IR_CPMSpace.mma
+model/fields/Qfield.ma model/fields/Qfield.mma
+reals/Q_in_CReals.mma CoRN.ma model/monoids/Nmonoid.ma model/reals/Cauchy_IR.ma model/rings/Zring.ma
+algebra/CPoly_NthCoeff.mma CoRN.ma algebra/CPolynomials.ma
+algebra/CPoly_ApZero.ma algebra/CPoly_ApZero.mma
+metrics/CMetricSpaces.ma metrics/CMetricSpaces.mma
+model/semigroups/Zsemigroup.ma model/semigroups/Zsemigroup.mma
+model/semigroups/Npossemigroup.ma model/semigroups/Npossemigroup.mma
+model/monoids/Qmonoid.mma CoRN.ma algebra/CMonoids.ma model/semigroups/Qsemigroup.ma
+algebra/CVectorSpace.ma algebra/CVectorSpace.mma
+tactics/FieldReflection.mma CoRN.ma algebra/CFields.ma tactics/AlgReflection.ma tactics/Opaque_algebra.ma
+reals/Bridges_iso.ma reals/Bridges_iso.mma
+ftc/StrongIVT.ma ftc/StrongIVT.mma
+tactics/AlgReflection.mma CoRN.ma algebra/CLogic.ma
+algebra/CSetoids.mma CoRN.ma algebra/CLogic.ma tactics/Step.ma
+reals/Bridges_LUB.ma reals/Bridges_LUB.mma
+fta/FTA.ma fta/FTA.mma
+ftc/MoreFunctions.ma ftc/MoreFunctions.mma
+algebra/CLogic.ma algebra/CLogic.mma
+model/abgroups/Qabgroup.ma model/abgroups/Qabgroup.mma
+ftc/RefSepRef.ma ftc/RefSepRef.mma
+ftc/FunctSeries.mma CoRN.ma ftc/FunctSequence.ma reals/Series.ma
+ftc/Differentiability.mma CoRN.ma ftc/DerivativeOps.ma ftc/PartInterval.ma
+reals/iso_CReals.ma reals/iso_CReals.mma
+model/semigroups/QSpossemigroup.ma model/semigroups/QSpossemigroup.mma
+ftc/MoreFunctions.mma CoRN.ma ftc/MoreIntervals.ma
+model/ordfields/Qordfield.mma CoRN.ma algebra/COrdFields.ma model/fields/Qfield.ma
+metrics/CPMSTheory.ma metrics/CPMSTheory.mma
+ftc/FTC.mma CoRN.ma ftc/CalculusTheorems.ma ftc/MoreIntegrals.ma
+model/non_examples/Npos_no_monoid.ma model/non_examples/Npos_no_monoid.mma
+ftc/Rolle.mma CoRN.ma ftc/MoreFunctions.ma tactics/DiffTactics2.ma
+reals/Cauchy_CReals.ma reals/Cauchy_CReals.mma
+ftc/IntervalFunct.ma ftc/IntervalFunct.mma
+model/semigroups/Qpossemigroup.ma model/semigroups/Qpossemigroup.mma
+algebra/CSetoidInc.mma CoRN.ma algebra/CSetoidFun.ma
+algebra/CSetoids.ma algebra/CSetoids.mma
+model/monoids/Qposmonoid.mma CoRN.ma algebra/CMonoids.ma model/semigroups/Qpossemigroup.ma
+algebra/CSetoidFun.mma CoRN.ma algebra/CSetoids.ma
+transc/TaylorSeries.ma transc/TaylorSeries.mma
+model/semigroups/Npossemigroup.mma CoRN.ma algebra/CSemiGroups.ma model/semigroups/Nsemigroup.ma model/setoids/Npossetoid.ma
+algebra/CAbGroups.ma algebra/CAbGroups.mma
+fta/KeyLemma.mma CoRN.ma reals/NRootIR.ma
+algebra/CPoly_ApZero.mma CoRN.ma algebra/COrdFields2.ma algebra/CPoly_Degree.ma tactics/Opaque_algebra.ma tactics/Transparent_algebra.ma
+complex/Complex_Exponential.mma CoRN.ma complex/AbsCC.ma transc/Exponential.ma transc/Pi.ma
+model/groups/Qposgroup.ma model/groups/Qposgroup.mma
+reals/CReals1.mma CoRN.ma algebra/CPoly_ApZero.ma algebra/Expon.ma reals/Max_AbsIR.ma
+algebra/COrdFields.ma algebra/COrdFields.mma
+model/monoids/QSposmonoid.ma model/monoids/QSposmonoid.mma
+ftc/Integral.mma CoRN.ma ftc/RefLemma.ma
+ftc/MoreIntervals.ma ftc/MoreIntervals.mma
+tactics/Transparent_algebra.ma tactics/Transparent_algebra.mma
+model/setoids/Nsetoid.ma model/setoids/Nsetoid.mma
+algebra/CLogic.mma CoRN.ma algebra/Basics.ma
+model/semigroups/Qpossemigroup.mma CoRN.ma algebra/CSemiGroups.ma model/setoids/Qpossetoid.ma
+complex/AbsCC.mma CoRN.ma complex/CComplex.ma
+tactics/Opaque_algebra.ma tactics/Opaque_algebra.mma
+reals/CPoly_Contin.mma CoRN.ma reals/RealFuncts.ma
+reals/IVT.ma reals/IVT.mma
+tactics/Transparent_algebra.mma CoRN.ma
+reals/CauchySeq.ma reals/CauchySeq.mma
+complex/CComplex.mma CoRN.ma reals/NRootIR.ma tactics/Opaque_algebra.ma tactics/Transparent_algebra.ma
+transc/Trigonometric.mma CoRN.ma transc/TaylorSeries.ma
+reals/RealLists.ma reals/RealLists.mma
+ftc/CalculusTheorems.ma ftc/CalculusTheorems.mma
+ftc/Differentiability.ma ftc/Differentiability.mma
+model/groups/QSposgroup.mma CoRN.ma algebra/CGroups.ma model/monoids/QSposmonoid.ma
+devel/loeb/per/lst2fun.mma CoRN.ma algebra/CSetoids.ma
+transc/TrigMon.ma transc/TrigMon.mma
+ftc/StrongIVT.mma CoRN.ma ftc/CalculusTheorems.ma ftc/WeakIVT.ma
+tactics/DiffTactics3.mma CoRN.ma ftc/Composition.ma ftc/MoreFunSeries.ma tactics/DiffTactics2.ma
+model/setoids/Zsetoid.ma model/setoids/Zsetoid.mma
+metrics/CPseudoMSpaces.ma metrics/CPseudoMSpaces.mma
+model/groups/Qgroup.ma model/groups/Qgroup.mma
+fta/CPoly_Shift.ma fta/CPoly_Shift.mma
+algebra/COrdAbs.mma CoRN.ma algebra/COrdFields2.ma
+ftc/RefSeparated.mma CoRN.ma ftc/COrdLemmas.ma ftc/Partitions.ma
+ftc/NthDerivative.ma ftc/NthDerivative.mma
+ftc/Taylor.ma ftc/Taylor.mma
+model/setoids/Qsetoid.ma model/setoids/Qsetoid.mma
+metrics/Prod_Sub.mma CoRN.ma metrics/IR_CPMSpace.ma
+metrics/CPseudoMSpaces.mma CoRN.ma reals/Intervals.ma
+algebra/CSums.ma algebra/CSums.mma
+reals/CMetricFields.mma CoRN.ma reals/CReals1.ma
+tactics/DiffTactics1.ma tactics/DiffTactics1.mma
+reals/Bridges_iso.mma CoRN.ma reals/Bridges_LUB.ma
+fta/CPoly_Shift.mma CoRN.ma complex/CComplex.ma
+model/rings/Zring.ma model/rings/Zring.mma
+ftc/Derivative.ma ftc/Derivative.mma
+complex/AbsCC.ma complex/AbsCC.mma
+ftc/MoreIntervals.mma CoRN.ma ftc/NthDerivative.ma
+transc/InvTrigonom.mma CoRN.ma ftc/StrongIVT.ma transc/RealPowers.ma transc/TrigMon.ma
+ftc/CalculusTheorems.mma CoRN.ma ftc/Rolle.ma tactics/DiffTactics3.ma
+algebra/CPoly_Degree.mma CoRN.ma algebra/CFields.ma algebra/CPoly_NthCoeff.ma
+model/groups/Zgroup.ma model/groups/Zgroup.mma
+transc/SinCos.ma transc/SinCos.mma
+tactics/Opaque_algebra.mma CoRN.ma
+reals/iso_CReals.mma CoRN.ma reals/Q_dense.ma reals/R_morphism.ma
+algebra/COrdCauchy.ma algebra/COrdCauchy.mma
+model/rings/Qring.ma model/rings/Qring.mma
+reals/Max_AbsIR.mma CoRN.ma reals/CauchySeq.ma
+model/setoids/Qsetoid.mma CoRN.ma algebra/CSetoidFun.ma model/structures/Qsec.ma
+algebra/COrdCauchy.mma CoRN.ma algebra/COrdAbs.ma
+model/monoids/Zmonoid.mma CoRN.ma algebra/CMonoids.ma model/semigroups/Zsemigroup.ma
+ftc/COrdLemmas.mma CoRN.ma algebra/COrdCauchy.ma
+ftc/PartFunEquality.mma CoRN.ma reals/Intervals.ma tactics/DiffTactics1.ma
+ftc/DerivativeOps.ma ftc/DerivativeOps.mma
+algebra/ListType.mma CoRN.ma
+metrics/Equiv.ma metrics/Equiv.mma
+ftc/RefLemma.ma ftc/RefLemma.mma
+model/reals/Cauchy_IR.ma model/reals/Cauchy_IR.mma
+fta/CPoly_Contin1.ma fta/CPoly_Contin1.mma
+fta/KeyLemma.ma fta/KeyLemma.mma
+model/fields/Qfield.mma CoRN.ma algebra/CFields.ma model/rings/Qring.ma
+ftc/Continuity.mma CoRN.ma ftc/FunctSums.ma reals/NRootIR.ma
+model/abgroups/Zabgroup.ma model/abgroups/Zabgroup.mma
+algebra/COrdFields2.mma CoRN.ma algebra/COrdFields.ma tactics/Opaque_algebra.ma tactics/Transparent_algebra.ma
+reals/Bridges_LUB.mma CoRN.ma algebra/Expon.ma reals/iso_CReals.ma
+ftc/FunctSeries.ma ftc/FunctSeries.mma
+preamble.ma coq.ma
+algebra/CAbMonoids.mma CoRN.ma algebra/CMonoids.ma
+ftc/FunctSequence.ma ftc/FunctSequence.mma
+model/groups/Zgroup.mma CoRN.ma algebra/CGroups.ma model/monoids/Zmonoid.ma
+tactics/AlgReflection.ma tactics/AlgReflection.mma
+algebra/CSetoidInc.ma algebra/CSetoidInc.mma
+reals/CReals.mma CoRN.ma algebra/COrdCauchy.ma
+devel/loeb/IDA/Ch6.mma CoRN.ma algebra/CMonoids.ma algebra/CSemiGroups.ma devel/loeb/per/csetfun.ma devel/loeb/per/lst2fun.ma model/monoids/Nmonoid.ma model/monoids/Zmonoid.ma model/semigroups/Zsemigroup.ma model/setoids/Nsetoid.ma model/setoids/Qsetoid.ma model/setoids/Zsetoid.ma
+ftc/DerivativeOps.mma CoRN.ma ftc/Derivative.ma
+model/semigroups/QSpossemigroup.mma CoRN.ma algebra/CSemiGroups.ma model/setoids/Qpossetoid.ma
+algebra/CRings.mma CoRN.ma algebra/CSums.ma
+transc/Exponential.ma transc/Exponential.mma
+model/groups/Qgroup.mma CoRN.ma algebra/CGroups.ma model/monoids/Qmonoid.ma
+tactics/DiffTactics1.mma CoRN.ma
+complex/CComplex.ma complex/CComplex.mma
+transc/Exponential.mma CoRN.ma transc/TaylorSeries.ma
+reals/Q_in_CReals.ma reals/Q_in_CReals.mma
+fta/FTAreg.ma fta/FTAreg.mma
+fta/MainLemma.ma fta/MainLemma.mma
+tactics/GroupReflection.ma tactics/GroupReflection.mma
+algebra/CSums.mma CoRN.ma algebra/CAbGroups.ma
+model/semigroups/Qsemigroup.ma model/semigroups/Qsemigroup.mma
+metrics/CMetricSpaces.mma CoRN.ma metrics/Equiv.ma metrics/Prod_Sub.ma
+tactics/RingReflection.mma CoRN.ma algebra/CRings.ma tactics/AlgReflection.ma
+ftc/Composition.ma ftc/Composition.mma
+metrics/CPMSTheory.mma CoRN.ma metrics/Prod_Sub.ma
+ftc/MoreFunSeries.ma ftc/MoreFunSeries.mma
+tactics/GroupReflection.mma CoRN.ma algebra/CAbGroups.ma tactics/AlgReflection.ma
+transc/RealPowers.mma CoRN.ma transc/Exponential.ma
+algebra/CFields.ma algebra/CFields.mma
+model/monoids/QSposmonoid.mma CoRN.ma algebra/CMonoids.ma model/semigroups/QSpossemigroup.ma
+model/structures/Qpossec.mma CoRN.ma algebra/CLogic.ma model/structures/Qsec.ma
+ftc/PartInterval.ma ftc/PartInterval.mma
+tactics/RingReflection.ma tactics/RingReflection.mma
+reals/Intervals.ma reals/Intervals.mma
+model/non_examples/Npos_no_monoid.mma CoRN.ma algebra/CMonoids.ma model/semigroups/Npossemigroup.ma
+transc/SinCos.mma CoRN.ma transc/Trigonometric.ma
+reals/CPoly_Contin.ma reals/CPoly_Contin.mma
+reals/R_morphism.mma CoRN.ma reals/CReals.ma
+model/non_examples/Npos_no_group.mma CoRN.ma algebra/CGroups.ma model/monoids/Nposmonoid.ma
+tactics/Step.mma CoRN.ma
+model/abgroups/Qabgroup.mma CoRN.ma algebra/CAbGroups.ma model/groups/Qgroup.ma
+ftc/RefSepRef.mma CoRN.ma ftc/COrdLemmas.ma ftc/Partitions.ma
+model/structures/Zsec.mma CoRN.ma algebra/CLogic.ma
+fta/FTA.mma CoRN.ma fta/CPoly_Rev.ma fta/FTAreg.ma
+model/semigroups/Nsemigroup.mma CoRN.ma algebra/CSemiGroups.ma model/setoids/Nsetoid.ma
+ftc/WeakIVT.mma CoRN.ma ftc/Continuity.ma
+ftc/Derivative.mma CoRN.ma ftc/Continuity.ma
+ftc/Taylor.mma CoRN.ma ftc/TaylorLemma.ma
+ftc/MoreFunSeries.mma CoRN.ma ftc/FunctSeries.ma ftc/MoreFunctions.ma
+model/monoids/Zmonoid.ma model/monoids/Zmonoid.mma
+ftc/COrdLemmas.ma ftc/COrdLemmas.mma
+reals/Intervals.mma CoRN.ma algebra/CSetoidInc.ma reals/RealLists.ma
+model/groups/QSposgroup.ma model/groups/QSposgroup.mma
+model/non_examples/Npos_no_group.ma model/non_examples/Npos_no_group.mma
+model/structures/Qsec.mma CoRN.ma algebra/CLogic.ma model/structures/Zsec.ma
+transc/RealPowers.ma transc/RealPowers.mma
+algebra/COrdAbs.ma algebra/COrdAbs.mma
+fta/CPoly_Contin1.mma CoRN.ma fta/CC_Props.ma
+model/monoids/Qmonoid.ma model/monoids/Qmonoid.mma
+complex/Complex_Exponential.ma complex/Complex_Exponential.mma
+algebra/CFields.mma CoRN.ma algebra/CRings.ma
+reals/NRootIR.mma CoRN.ma reals/OddPolyRootIR.ma
+transc/PowerSeries.mma CoRN.ma ftc/FTC.ma
+algebra/CMonoids.mma CoRN.ma algebra/CSemiGroups.ma
+reals/Series.mma CoRN.ma reals/CSumsReals.ma reals/NRootIR.ma
+reals/NRootIR.ma reals/NRootIR.mma
+model/structures/Zsec.ma model/structures/Zsec.mma
+model/setoids/Zsetoid.mma CoRN.ma algebra/CSetoidFun.ma model/structures/Zsec.ma
+transc/TaylorSeries.mma CoRN.ma ftc/Taylor.ma transc/PowerSeries.ma
+model/non_examples/N_no_group.ma model/non_examples/N_no_group.mma
+fta/CPoly_Rev.mma CoRN.ma algebra/CPoly_Degree.ma
+devel/loeb/IDA/Ch6.ma devel/loeb/IDA/Ch6.mma
+reals/Q_dense.ma reals/Q_dense.mma
+model/monoids/Nmonoid.mma CoRN.ma algebra/CMonoids.ma model/semigroups/Nsemigroup.ma
+model/reals/Cauchy_IR.mma CoRN.ma model/ordfields/Qordfield.ma reals/Cauchy_CReals.ma
+algebra/CGroups.ma algebra/CGroups.mma
+reals/OddPolyRootIR.ma reals/OddPolyRootIR.mma
+model/setoids/Npossetoid.mma CoRN.ma algebra/CSetoidFun.ma model/setoids/Nsetoid.ma model/structures/Npossec.ma
+reals/IVT.mma CoRN.ma reals/CPoly_Contin.ma
+complex/NRootCC.mma CoRN.ma complex/CComplex.ma
+model/semigroups/Nsemigroup.ma model/semigroups/Nsemigroup.mma
+devel/loeb/per/csetfun.mma CoRN.ma algebra/CGroups.ma algebra/CMonoids.ma algebra/CSemiGroups.ma algebra/CSetoidFun.ma algebra/CSetoids.ma
+ftc/RefSeparating.mma CoRN.ma ftc/COrdLemmas.ma ftc/Partitions.ma
+model/abgroups/QSposabgroup.ma model/abgroups/QSposabgroup.mma
+ftc/Continuity.ma ftc/Continuity.mma
+algebra/Basics.ma algebra/Basics.mma
+transc/PowerSeries.ma transc/PowerSeries.mma
+reals/CauchySeq.mma CoRN.ma reals/CReals.ma tactics/Transparent_algebra.ma
+reals/Q_dense.mma CoRN.ma reals/Q_in_CReals.ma tactics/Opaque_algebra.ma
+ftc/FunctSequence.mma CoRN.ma ftc/Continuity.ma ftc/PartInterval.ma
+ftc/TaylorLemma.ma ftc/TaylorLemma.mma
+model/groups/Qposgroup.mma CoRN.ma algebra/CGroups.ma model/monoids/Qposmonoid.ma
+reals/CReals1.ma reals/CReals1.mma
+model/structures/Nsec.ma model/structures/Nsec.mma
+model/setoids/Npossetoid.ma model/setoids/Npossetoid.mma
+model/semigroups/Qsemigroup.mma CoRN.ma algebra/CSemiGroups.ma model/setoids/Qsetoid.ma
+algebra/COrdFields.mma CoRN.ma tactics/FieldReflection.ma tactics/Opaque_algebra.ma tactics/Transparent_algebra.ma
+fta/MainLemma.mma CoRN.ma fta/KeyLemma.ma reals/CSumsReals.ma
+fta/FTAreg.mma CoRN.ma fta/CPoly_Contin1.ma fta/CPoly_Shift.ma fta/KneserLemma.ma
+transc/TrigMon.mma CoRN.ma transc/Pi.ma
+algebra/CAbGroups.mma CoRN.ma algebra/CGroups.ma
+algebra/CPoly_NthCoeff.ma algebra/CPoly_NthCoeff.mma
+model/structures/Nsec.mma CoRN.ma algebra/CLogic.ma
+model/abgroups/Qposabgroup.mma CoRN.ma algebra/CAbGroups.ma model/groups/Qposgroup.ma
+ftc/FunctSums.ma ftc/FunctSums.mma
+model/setoids/Qpossetoid.ma model/setoids/Qpossetoid.mma
+reals/Series.ma reals/Series.mma
+model/monoids/Nmonoid.ma model/monoids/Nmonoid.mma
+reals/R_morphism.ma reals/R_morphism.mma
+model/semigroups/Zsemigroup.mma CoRN.ma algebra/CSemiGroups.ma model/setoids/Zsetoid.ma
+ftc/WeakIVT.ma ftc/WeakIVT.mma
+model/structures/Qpossec.ma model/structures/Qpossec.mma
+algebra/COrdFields2.ma algebra/COrdFields2.mma
+metrics/Equiv.mma CoRN.ma metrics/IR_CPMSpace.ma
+ftc/Integral.ma ftc/Integral.mma
+algebra/CPolynomials.ma algebra/CPolynomials.mma
+model/abgroups/Qposabgroup.ma model/abgroups/Qposabgroup.mma
+metrics/Prod_Sub.ma metrics/Prod_Sub.mma
+reals/Max_AbsIR.ma reals/Max_AbsIR.mma
+algebra/CAbMonoids.ma algebra/CAbMonoids.mma
+fta/CC_Props.mma CoRN.ma complex/AbsCC.ma
+algebra/CGroups.mma CoRN.ma algebra/CMonoids.ma
+ftc/MoreIntegrals.ma ftc/MoreIntegrals.mma
+model/rings/Qring.mma CoRN.ma algebra/CRings.ma model/abgroups/Qabgroup.ma model/rings/Zring.ma
+fta/KneserLemma.ma fta/KneserLemma.mma
+transc/InvTrigonom.ma transc/InvTrigonom.mma
+algebra/CSetoidFun.ma algebra/CSetoidFun.mma
+ftc/RefSeparating.ma ftc/RefSeparating.mma
+algebra/Basics.mma CoRN.ma algebra/ListType.ma
+reals/CSumsReals.mma CoRN.ma reals/CReals1.ma
+tactics/DiffTactics3.ma tactics/DiffTactics3.mma
+metrics/ContFunctions.mma CoRN.ma metrics/CPseudoMSpaces.ma
+ftc/PartFunEquality.ma ftc/PartFunEquality.mma
+model/abgroups/Zabgroup.mma CoRN.ma algebra/CAbGroups.ma model/groups/Zgroup.ma
+reals/Cauchy_CReals.mma CoRN.ma algebra/Cauchy_COF.ma reals/CReals.ma
+algebra/Expon.ma algebra/Expon.mma
+devel/loeb/per/csetfun.ma devel/loeb/per/csetfun.mma
+algebra/CMonoids.ma algebra/CMonoids.mma
+ftc/Partitions.mma CoRN.ma ftc/Continuity.ma
+model/setoids/Qpossetoid.mma CoRN.ma algebra/CSetoidFun.ma model/setoids/Qsetoid.ma model/structures/Qpossec.ma
+fta/CPoly_Rev.ma fta/CPoly_Rev.mma
+tactics/DiffTactics2.mma CoRN.ma ftc/Differentiability.ma
+reals/RealFuncts.mma CoRN.ma reals/CReals1.ma
+model/monoids/Qposmonoid.ma model/monoids/Qposmonoid.mma
+fta/KneserLemma.mma CoRN.ma complex/AbsCC.ma complex/NRootCC.ma fta/MainLemma.ma
+coq.ma 
diff --git a/helm/software/matita/contribs/procedural/CoRN/devel/loeb/IDA/Ch6.mma b/helm/software/matita/contribs/procedural/CoRN/devel/loeb/IDA/Ch6.mma
new file mode 100644 (file)
index 0000000..47489e1
--- /dev/null
@@ -0,0 +1,691 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+include "algebra/CSemiGroups.ma".
+
+(* Remark blz 65 1 *)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/is_nullary_operation.con" as definition.
+
+include "model/setoids/Zsetoid.ma".
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/is_nullary_operation_Z_0.con" as lemma.
+
+(* Remark blz 65 2 *)
+
+include "devel/loeb/per/csetfun.ma".
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/n_ary_operation.con" as definition.
+
+include "model/setoids/Nsetoid.ma".
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/plus1.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/to_plus1_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/plus2.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/to_plus2_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/plus3.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/on.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/ex_3_ary.con" "__" as definition.
+
+(* 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 "model/setoids/Qsetoid.ma".
+
+(* Print Qplus_is_assoc.*)
+
+(* Print Qmult_is_assoc.*)
+
+(* blz 66 Examples 2 *)
+
+(* UNEXPORTED
+Section p66E2
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/p66E2/X.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/p66E2/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/p66E2/g.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/p66E2/h.var
+*)
+
+(* Check comp_as_bin_op.*)
+
+(* Check assoc_comp.*)
+
+(* UNEXPORTED
+End p66E2
+*)
+
+(* blz 66 Example 2eblok 1 *)
+
+include "model/semigroups/Zsemigroup.ma".
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/Zplus_is_CSemiGroup.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/Zmult_is_CSemiGroup.con" as lemma.
+
+(* blz 66 Example % 3 *)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/FS_is_CSemiGroup.con" as lemma.
+
+(* blz 66 Example % 4 *)
+
+(* UNEXPORTED
+Section p66E2b4
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/p66E2b4/A.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/Astar.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/empty_word.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/app.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/eq_fm.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/ap_fm.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/ap_fm_irreflexive.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/ap_fm_symmetric.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/ap_fm_cotransitive.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/ap_fm_tight.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/free_csetoid_is_CSetoid.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/free_csetoid_as_csetoid.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/app_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/app_as_csb_fun.con" as definition.
+
+include "algebra/CSemiGroups.ma".
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/eq_fm_reflexive.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/Astar_is_CSemiGroup.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/Astar_as_CSemiGroup.con" as definition.
+
+(* UNEXPORTED
+End p66E2b4
+*)
+
+(* Definition 5 *)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/is_unit.con" as definition.
+
+(* blz 67 Remark 1 *)
+
+include "model/monoids/Zmonoid.ma".
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/is_unit_Z_0.con" as lemma.
+
+(* blz 67 Remark 2 *)
+
+(* UNEXPORTED
+Section p67R2
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/p67R2/X.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/is_unit_FS_id.con" as lemma.
+
+(* UNEXPORTED
+End p67R2
+*)
+
+(* blz 67 Remark 3 *)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/is_unit_Astar_empty_word.con" as lemma.
+
+(* Lemma 6 *)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/unique_unit.con" as lemma.
+
+(* blz 67 Example 1 *)
+
+include "model/monoids/Nmonoid.ma".
+
+(* Print nat_is_CMonoid.*)
+
+include "model/monoids/Zmonoid.ma".
+
+(* 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 procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1.ind".
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_eq.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_ap.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_ap_irreflexive.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_ap_symmetric.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_ap_cotransitive.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_eq_dec.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/is_e1.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/not_M1_eq_e1_u.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_ap_tight.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_is_CSetoid.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_as_CSetoid.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_mult.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_CS_mult.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_CS_mult_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_mult_as_bin_fun.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_is_CSemiGroup.con" as lemma.
+
+include "algebra/CMonoids.ma".
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/e1_is_lft_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/e1_is_rht_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_as_CSemiGroup.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_is_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_as_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M2_mult.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M2_CS_mult.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M2_CS_mult_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M2_mult_as_bin_fun.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M2_is_CSemiGroup.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M2_as_CSemiGroup.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/e1_is_lft_unit_M2.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/e1_is_rht_unit_M2.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M2_is_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M2_as_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/two_element_CMonoids.con" as lemma.
+
+(* 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 "algebra/CMonoids.ma".
+
+(* UNEXPORTED
+Section D9S
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/D9S/M1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/D9S/M2.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/dprod.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/dprod_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/dprod_as_csb_fun.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/direct_product_is_CSemiGroup.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/direct_product_as_CSemiGroup.con" as definition.
+
+(* UNEXPORTED
+End D9S
+*)
+
+(* UNEXPORTED
+Section D9M
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/D9M/M1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/D9M/M2.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/e1e2_is_rht_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/e1e2_is_lft_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/direct_product_is_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/direct_product_as_CMonoid.con" as definition.
+
+(* UNEXPORTED
+End D9M
+*)
+
+(* blz 69 Example *)
+
+(* UNEXPORTED
+Section p69E1
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/p69E1/PM1M2.con" "p69E1__" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/p69E1/uu.con" "p69E1__" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/p69E1/e1u.con" "p69E1__" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/ex_69.con" as lemma.
+
+(* UNEXPORTED
+End p69E1
+*)
+
+(* Theorem 11 *)
+
+(* UNEXPORTED
+Section Th11
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/Th11/M.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/Th11/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/Th11/C.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/Th11/Cunit.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/Th11/op_pres_C.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/K.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/op_pres_K.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/K_is_Monoid.con" as definition.
+
+(* UNEXPORTED
+End Th11
+*)
+
+(* Theorem 12 *)
+
+(* UNEXPORTED
+Section Th12
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/Th12/A.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/nil_is_rht_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/nil_is_lft_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/free_monoid_is_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/free_monoid_as_CMonoid.con" as definition.
+
+(* UNEXPORTED
+End Th12
+*)
+
+(* blz 70 text *)
+
+(* UNEXPORTED
+Section p70text
+*)
+
+include "devel/loeb/per/lst2fun.ma".
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/p70text/A.con" "p70text__" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/ZerolessOne.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/to_word.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/to_word'.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/to_word'_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/to_word_as_CSetoid_fun.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/to_word_bijective.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/pres_plus_to_word.con" as lemma.
+
+(* UNEXPORTED
+End p70text
+*)
+
+(* Definition 13 *)
+
+(* UNEXPORTED
+Section Th13
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/Th13/M1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/Th13/M2.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/morphism.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/isomorphism.con" as definition.
+
+(* UNEXPORTED
+End Th13
+*)
+
+(* blz 71 Example 1 *)
+
+(* UNEXPORTED
+Section p71E1
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/p71E1/M.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/p71E1/c.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/power_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/power_CMonoid_CSetoid.con" as definition.
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/p71E1/is_generated_by.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/p71E1/f.con" "p71E1__" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/f_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/f_as_CSetoid_fun.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/surjective_f.con" as lemma.
+
+(* UNEXPORTED
+End p71E1
+*)
+
+(* UNEXPORTED
+Section p71E1'
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/M1_is_generated_by_u.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/not_injective_f.con" as lemma.
+
+(* UNEXPORTED
+End p71E1'
+*)
+
+(* Print to_word_bijective.*)
+
+(* UNEXPORTED
+Section p71E2
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/p71E2/A.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/p71E2/L.con" "p71E2__" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/L_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/L_as_CSetoid_fun.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/L_is_morphism.con" as lemma.
+
+(* UNEXPORTED
+End p71E2
+*)
+
+(* blz 71 Remark 1 *)
+
+(* UNEXPORTED
+Section p71R1
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/p71R1/S1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/p71R1/S2.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/morphism_of_CSemiGroups.con" as definition.
+
+(* UNEXPORTED
+End p71R1
+*)
+
+(* UNEXPORTED
+Section p71R2
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/p71R2/M.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/automorphism.con" as definition.
+
+(* UNEXPORTED
+End p71R2
+*)
+
+(* Theorem 14 *)
+
+(* UNEXPORTED
+Section Th14
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/Th14/M1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/Th14/M2.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/Th14/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/Th14/isof.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/iso_imp_bij.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/iso_inv.con" as lemma.
+
+(* UNEXPORTED
+End Th14
+*)
+
+(* blz 71 Examples 2eblok 1 *)
+
+(* UNEXPORTED
+Section p71E2b1
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/isomorphic.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/not_isomorphic_M1_M2.con" as lemma.
+
+(* UNEXPORTED
+End p71E2b1
+*)
+
+(* UNEXPORTED
+Section p71E2b2
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/p71E2b2/M1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/p71E2b2/M2.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/p71E2b2/f.con" "p71E2b2__" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/f_strext'.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/f_as_CSetoid_fun'.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/isomorphic_PM1M2_PM2M1.con" as lemma.
+
+(* UNEXPORTED
+End p71E2b2
+*)
+
+(* UNEXPORTED
+Section Th15
+*)
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/Th15/M.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/cm_Sum.con" as definition.
+
+(* UNEXPORTED
+cic:/CoRN/devel/loeb/IDA/Ch6/Th15/D.var
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/member.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments member [A].
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/Dbrack.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/Dbrack_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/member_app.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/cm_Sum_app.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/op_pres_Dbrack.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/IDA/Ch6/Dbrack_as_CMonoid.con" as definition.
+
+(* UNEXPORTED
+End Th15
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/devel/loeb/per/csetfun.mma b/helm/software/matita/contribs/procedural/CoRN/devel/loeb/per/csetfun.mma
new file mode 100644 (file)
index 0000000..16e84da
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+include "algebra/CSetoids.ma".
+
+include "algebra/CSetoidFun.ma".
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/ap_fun.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/eq_fun.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/irrefl_apfun.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/cotrans_apfun.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/ta_apfun.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/sym_apfun.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/FS_is_CSetoid.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/FS_as_CSetoid.con" as definition.
+
+(* UNEXPORTED
+Print associative.
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/comp.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/comp_as_bin_op.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/assoc_comp.con" as lemma.
+
+include "algebra/CSemiGroups.ma".
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/FS_as_CSemiGroup.con" as definition.
+
+include "algebra/CMonoids.ma".
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/FS_id.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/id_is_rht_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/id_is_lft_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/FS_is_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/FS_as_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/PS_as_CMonoid.con" as definition.
+
+include "algebra/CGroups.ma".
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/Inv_is_bij.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/devel/loeb/per/csetfun/PS_Inv.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/Inv_as_un_op.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/PS_is_CGroup.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/per/csetfun/PS_as_CGroup.con" as definition.
+
+(* In het algemeen niet Abels! *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/devel/loeb/per/lst2fun.mma b/helm/software/matita/contribs/procedural/CoRN/devel/loeb/per/lst2fun.mma
new file mode 100644 (file)
index 0000000..087e44f
--- /dev/null
@@ -0,0 +1,54 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+inline procedural "cic:/CoRN/devel/loeb/per/lst2fun/F'.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/per/lst2fun/F.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/devel/loeb/per/lst2fun/F_crr.con
+*)
+
+inline procedural "cic:/CoRN/devel/loeb/per/lst2fun/to_nat.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments to_nat [n].
+*)
+
+(* COERCION
+cic:/matita/CoRN-Procedural/devel/loeb/per/lst2fun/to_nat.con
+*)
+
+include "algebra/CSetoids.ma".
+
+inline procedural "cic:/CoRN/devel/loeb/per/lst2fun/Feq.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/per/lst2fun/Fap.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/per/lst2fun/Fap_irreflexive.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/per/lst2fun/Fap_symmetric.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/per/lst2fun/Fap_cotransitive.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/per/lst2fun/Fap_tight.con" as lemma.
+
+inline procedural "cic:/CoRN/devel/loeb/per/lst2fun/less.con" as definition.
+
+inline procedural "cic:/CoRN/devel/loeb/per/lst2fun/CSetoid_of_less.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/fta/CC_Props.mma b/helm/software/matita/contribs/procedural/CoRN/fta/CC_Props.mma
new file mode 100644 (file)
index 0000000..d96c21d
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CC_Props.v,v 1.3 2004/04/23 10:00:56 lcf Exp $ *)
+
+include "complex/AbsCC.ma".
+
+(*#* * More properties of complex numbers
+** Sequences and limits *)
+
+(* UNEXPORTED
+Hint Resolve AbsIR_sqrt_sqr: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/CC_Props/absCC_absIR_re.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CC_Props/absCC_absIR_im.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CC_Props/seq_re.con" as definition.
+
+inline procedural "cic:/CoRN/fta/CC_Props/seq_im.con" as definition.
+
+inline procedural "cic:/CoRN/fta/CC_Props/CC_Cauchy_prop.con" as definition.
+
+inline procedural "cic:/CoRN/fta/CC_Props/CC_CauchySeq.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/fta/CC_Props/CC_seq.con
+*)
+
+inline procedural "cic:/CoRN/fta/CC_Props/re_is_Cauchy.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CC_Props/im_is_Cauchy.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CC_Props/CC_Cauchy2re.con" as definition.
+
+inline procedural "cic:/CoRN/fta/CC_Props/CC_Cauchy2im.con" as definition.
+
+inline procedural "cic:/CoRN/fta/CC_Props/LimCC.con" as definition.
+
+inline procedural "cic:/CoRN/fta/CC_Props/CC_SeqLimit.con" as definition.
+
+inline procedural "cic:/CoRN/fta/CC_Props/AbsSmall_sqr.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CC_Props/AbsSmall_AbsCC.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CC_Props/LimCC_is_lim.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CC_Props/CC_SeqLimit_uniq.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CC_Props/CC_SeqLimit_unq.con" as lemma.
+
+(*#* ** Continuity for [CC]
+*)
+
+(* UNEXPORTED
+Section Continuity_for_CC
+*)
+
+(*#*
+%\begin{convention}% Let [f : CC->CC].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/CC_Props/Continuity_for_CC/f.var
+*)
+
+(* (CSetoid_un_op CC). *)
+
+inline procedural "cic:/CoRN/fta/CC_Props/CCfunLim.con" as definition.
+
+inline procedural "cic:/CoRN/fta/CC_Props/CCcontinAt.con" as definition.
+
+inline procedural "cic:/CoRN/fta/CC_Props/CCcontin.con" as definition.
+
+inline procedural "cic:/CoRN/fta/CC_Props/CCfunLim_SeqLimit.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CC_Props/f_seq.con" as definition.
+
+inline procedural "cic:/CoRN/fta/CC_Props/poly_pres_lim.con" as lemma.
+
+(* UNEXPORTED
+End Continuity_for_CC
+*)
+
+inline procedural "cic:/CoRN/fta/CC_Props/seq_yields_zero.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/fta/CPoly_Contin1.mma b/helm/software/matita/contribs/procedural/CoRN/fta/CPoly_Contin1.mma
new file mode 100644 (file)
index 0000000..1db8b1a
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CPoly_Contin1.v,v 1.3 2004/04/23 10:00:56 lcf Exp $ *)
+
+include "fta/CC_Props.ma".
+
+(*#* * Continuity of complex polynomials
+*)
+
+(* UNEXPORTED
+Section Mult_CC_Continuous
+*)
+
+inline procedural "cic:/CoRN/fta/CPoly_Contin1/mult_absCC.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CPoly_Contin1/estimate_absCC.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CPoly_Contin1/mult_CC_contin.con" as lemma.
+
+(* UNEXPORTED
+End Mult_CC_Continuous
+*)
+
+(* UNEXPORTED
+Section CPoly_CC_Continuous
+*)
+
+(*#*
+%\begin{convention}% Let [g] be a polynomial over the complex numbers.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/CPoly_Contin1/CPoly_CC_Continuous/g.var
+*)
+
+inline procedural "cic:/CoRN/fta/CPoly_Contin1/cpoly_CC_contin.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CPoly_Contin1/contin_polyCC.con" as lemma.
+
+(* UNEXPORTED
+End CPoly_CC_Continuous
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/fta/CPoly_Rev.mma b/helm/software/matita/contribs/procedural/CoRN/fta/CPoly_Rev.mma
new file mode 100644 (file)
index 0000000..c8e7e89
--- /dev/null
@@ -0,0 +1,181 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CPoly_Rev.v,v 1.3 2004/04/23 10:00:56 lcf Exp $ *)
+
+include "algebra/CPoly_Degree.ma".
+
+(*#* * Reverse of polynomials
+*)
+
+(* UNEXPORTED
+Section Monomials
+*)
+
+(*#*
+%\begin{convention}% Let [R] be a ring, and let [RX] be the
+polynomials over this ring.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/CPoly_Rev/Monomials/R.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Monomials/RX.con" "Monomials__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/monom.con" as definition.
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/monom_coeff.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/monom_coeff'.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve monom_coeff monom_coeff': algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/monom_degree.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/monom_S.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve monom_S: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/monom_wd_lft.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve monom_wd_lft: algebra_c.
+*)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/monom_mult'.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve monom_mult': algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/monom_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/monom_sum.con" as lemma.
+
+(* UNEXPORTED
+End Monomials
+*)
+
+(* UNEXPORTED
+Hint Resolve monom_coeff monom_coeff' monom_mult monom_sum: algebra.
+*)
+
+(* UNEXPORTED
+Implicit Arguments monom [R].
+*)
+
+(* UNEXPORTED
+Section Poly_Reverse
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/CPoly_Rev/Poly_Reverse/R.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Poly_Reverse/RX.con" "Poly_Reverse__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Rev.con" as definition.
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Rev_coeff.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Rev_coeff'.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rev_coeff Rev_coeff': algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Rev_wd.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rev_wd: algebra_c.
+*)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Rev_rev.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rev_rev: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Rev_degree_le.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Rev_degree.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Rev_monom.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rev_monom: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Rev_zero.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rev_zero: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Rev_plus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rev_plus: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Rev_minus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rev_minus: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Rev_sum0.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rev_sum0: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Rev_sum.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CPoly_Rev/Rev_mult.con" as lemma.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/fta/CPoly_Shift.mma b/helm/software/matita/contribs/procedural/CoRN/fta/CPoly_Shift.mma
new file mode 100644 (file)
index 0000000..652319b
--- /dev/null
@@ -0,0 +1,62 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CPoly_Shift.v,v 1.4 2004/04/23 10:00:56 lcf Exp $ *)
+
+include "complex/CComplex.ma".
+
+(*#* * 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 procedural "cic:/CoRN/fta/CPoly_Shift/Shift.con" as definition.
+
+inline procedural "cic:/CoRN/fta/CPoly_Shift/Shift_apply.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Shift_apply: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/CPoly_Shift/Shift_wdr.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CPoly_Shift/Shift_shift.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CPoly_Shift/Shift_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CPoly_Shift/Shift_degree_le.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/CPoly_Shift/Shift_monic.con" as lemma.
+
+(* UNEXPORTED
+End Poly_Shifted
+*)
+
+(* UNEXPORTED
+Hint Resolve Shift_wdr: algebra_c.
+*)
+
+(* UNEXPORTED
+Hint Resolve Shift_apply Shift_shift Shift_mult: algebra.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/fta/FTA.mma b/helm/software/matita/contribs/procedural/CoRN/fta/FTA.mma
new file mode 100644 (file)
index 0000000..6786002
--- /dev/null
@@ -0,0 +1,111 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: FTA.v,v 1.6 2004/04/23 10:00:57 lcf Exp $ *)
+
+include "fta/CPoly_Rev.ma".
+
+include "fta/FTAreg.ma".
+
+(*#* * 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'
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTA/FTA_reg'/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTA/FTA_reg'/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTA/FTA_reg'/f_degree.var
+*)
+
+inline procedural "cic:/CoRN/fta/FTA/FTA_reg'.con" as lemma.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTA/FTA_1/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTA/FTA_1/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTA/FTA_1/f_degree.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTA/FTA_1/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTA/FTA_1/f_c.var
+*)
+
+inline procedural "cic:/CoRN/fta/FTA/FTA_1a.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTA/FTA_1/g.con" "FTA_1__" as definition.
+
+inline procedural "cic:/CoRN/fta/FTA/FTA_1b.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTA/FTA_1.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTA/FTA_1'.con" as lemma.
+
+(* UNEXPORTED
+End FTA_1
+*)
+
+(* UNEXPORTED
+Section Fund_Thm_Alg
+*)
+
+inline procedural "cic:/CoRN/fta/FTA/FTA'.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTA/FTA.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTA/FTA_a_la_Henk.con" as lemma.
+
+(* UNEXPORTED
+End Fund_Thm_Alg
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/fta/FTAreg.mma b/helm/software/matita/contribs/procedural/CoRN/fta/FTAreg.mma
new file mode 100644 (file)
index 0000000..8c6d3cb
--- /dev/null
@@ -0,0 +1,273 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: FTAreg.v,v 1.4 2004/04/23 10:00:57 lcf Exp $ *)
+
+include "fta/KneserLemma.ma".
+
+include "fta/CPoly_Shift.ma".
+
+include "fta/CPoly_Contin1.ma".
+
+(*#* * FTA for regular polynomials
+** The Kneser sequence
+%\begin{convention}% Let [n] be a positive natural number.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+Section Seq_Exists
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_Exists/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_Exists/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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_Exists/Kneser_Sequence/qK.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_Exists/Kneser_Sequence/zltq.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_Exists/Kneser_Sequence/qlt1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_Exists/Kneser_Sequence/q_prop.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_Exists/Kneser_Sequence/p.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_Exists/Kneser_Sequence/mp.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_Exists/Kneser_Sequence/c0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_Exists/Kneser_Sequence/p0ltc0.var
+*)
+
+inline procedural "cic:/CoRN/fta/FTAreg/Knes_tup.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/fta/FTAreg/z_el.con
+*)
+
+inline procedural "cic:/CoRN/fta/FTAreg/Knes_tupp.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/fta/FTAreg/Kntup.con
+*)
+
+inline procedural "cic:/CoRN/fta/FTAreg/Knes_fun.con" as definition.
+
+inline procedural "cic:/CoRN/fta/FTAreg/Knes_fun_it.con" as definition.
+
+inline procedural "cic:/CoRN/fta/FTAreg/sK.con" as definition.
+
+inline procedural "cic:/CoRN/fta/FTAreg/sK_c.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTAreg/sK_c0.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTAreg/sK_prop1.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTAreg/sK_it.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTAreg/sK_prop2.con" as lemma.
+
+(* UNEXPORTED
+End Kneser_Sequence
+*)
+
+(* UNEXPORTED
+Section Seq_Exists_Main
+*)
+
+(*#* **Main results
+*)
+
+inline procedural "cic:/CoRN/fta/FTAreg/seq_exists.con" as lemma.
+
+(* UNEXPORTED
+End Seq_Exists_Main
+*)
+
+(* UNEXPORTED
+End Seq_Exists
+*)
+
+(* UNEXPORTED
+Section N_Exists
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/N_Exists/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/N_Exists/lt0n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/N_Exists/q.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/N_Exists/zleq.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/N_Exists/qlt1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/N_Exists/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/N_Exists/zltc.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/fta/FTAreg/N_Exists/q_.con" "N_Exists__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/N_Exists/e.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/N_Exists/zlte.var
+*)
+
+inline procedural "cic:/CoRN/fta/FTAreg/N_exists.con" as lemma.
+
+(* UNEXPORTED
+End N_Exists
+*)
+
+(* UNEXPORTED
+Section Seq_is_CC_CAuchy
+*)
+
+(*#* ** The Kneser sequence is Cauchy in [CC] *)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_is_CC_CAuchy/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_is_CC_CAuchy/lt0n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_is_CC_CAuchy/q.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_is_CC_CAuchy/zleq.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_is_CC_CAuchy/qlt1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_is_CC_CAuchy/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/FTAreg/Seq_is_CC_CAuchy/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 procedural "cic:/CoRN/fta/FTAreg/Seq_is_CC_CAuchy/q_.con" "Seq_is_CC_CAuchy__" as definition.
+
+inline procedural "cic:/CoRN/fta/FTAreg/Seq_is_CC_CAuchy/nrtq.con" "Seq_is_CC_CAuchy__" as definition.
+
+inline procedural "cic:/CoRN/fta/FTAreg/Seq_is_CC_CAuchy/nrtc.con" "Seq_is_CC_CAuchy__" as definition.
+
+inline procedural "cic:/CoRN/fta/FTAreg/Seq_is_CC_CAuchy/nrtqlt1.con" "Seq_is_CC_CAuchy__" as definition.
+
+inline procedural "cic:/CoRN/fta/FTAreg/Seq_is_CC_CAuchy/nrtq_.con" "Seq_is_CC_CAuchy__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/FTAreg/zlt_nrtq.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTAreg/zlt_nrtc.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTAreg/nrt_pow.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTAreg/abs_pow_ltRe.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTAreg/abs_pow_ltIm.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTAreg/SublemmaRe.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTAreg/SublemmaIm.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTAreg/seq_is_CC_Cauchy.con" as lemma.
+
+(* UNEXPORTED
+End Seq_is_CC_CAuchy
+*)
+
+inline procedural "cic:/CoRN/fta/FTAreg/FTA_monic.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/FTAreg/FTA_reg.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/fta/KeyLemma.mma b/helm/software/matita/contribs/procedural/CoRN/fta/KeyLemma.mma
new file mode 100644 (file)
index 0000000..9a43a2d
--- /dev/null
@@ -0,0 +1,183 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: KeyLemma.v,v 1.5 2004/04/23 10:00:57 lcf Exp $ *)
+
+include "reals/NRootIR.ma".
+
+(*#* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/KeyLemma/Key_Lemma/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/KeyLemma/Key_Lemma/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/KeyLemma/Key_Lemma/gt_n_0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/KeyLemma/Key_Lemma/eps.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/KeyLemma/Key_Lemma/eps_pos.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/KeyLemma/Key_Lemma/a_nonneg.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/KeyLemma/Key_Lemma/a_n_1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/KeyLemma/Key_Lemma/a_0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/KeyLemma/Key_Lemma/eps_le_a_0.var
+*)
+
+inline procedural "cic:/CoRN/fta/KeyLemma/a_0_eps_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/a_0_eps_fuzz.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/lem_1a.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/lem_1b.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/lem_1c.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/lem_1.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/p3m.con" as definition.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/p3m_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/p3m_S.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve p3m_S: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/KeyLemma/p3m_P.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/p3m_aux.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/p3m_pow.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve p3m_aux: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/KeyLemma/p3m_0.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve p3m_0: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/KeyLemma/third_pos.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve third_pos: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/KeyLemma/third_less_one.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve third_less_one: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/KeyLemma/p3m_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/p3m_mon'.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/p3m_small.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/p3m_smaller.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/chfun.con" as definition.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/chfun_1.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/chfun_2.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/chfun_3.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/chfun_4.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/Halfeps.con" as definition.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/Halfeps_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/Halfeps_Halfeps.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Halfeps_Halfeps: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/KeyLemma/Halfeps_eps.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/Halfeps_trans.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/Key_1a.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Key_1a: algebra.
+*)
+
+inline procedural "cic:/CoRN/fta/KeyLemma/Key_1b.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/Key_1.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/Key_2.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KeyLemma/Key.con" as lemma.
+
+(* end hide *)
+
+(* UNEXPORTED
+End Key_Lemma
+*)
+
+(* UNEXPORTED
+Hint Resolve p3m_S p3m_P p3m_pow: algebra.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/fta/KneserLemma.mma b/helm/software/matita/contribs/procedural/CoRN/fta/KneserLemma.mma
new file mode 100644 (file)
index 0000000..c71f1c2
--- /dev/null
@@ -0,0 +1,155 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $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}% #&eta;<SUB>0</SUB># *)
+
+include "complex/NRootCC.ma".
+
+include "complex/AbsCC.ma".
+
+include "fta/MainLemma.ma".
+
+(*#* ** 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/KneserLemma/Kneser_Lemma/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/KneserLemma/Kneser_Lemma/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/KneserLemma/Kneser_Lemma/gt_n_0.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_Lemma/b_0.con" "Kneser_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_Lemma/b_n.con" "Kneser_Lemma__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/fta/KneserLemma/Kneser_Lemma/b_n_1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/KneserLemma/Kneser_Lemma/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/KneserLemma/Kneser_Lemma/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 procedural "cic:/CoRN/fta/KneserLemma/Kneser_Lemma/two_n.con" "Kneser_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_Lemma/Small.con" "Kneser_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_Lemma/Smaller.con" "Kneser_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_Lemma/Smallest.con" "Kneser_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_Lemma/q.con" "Kneser_Lemma__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/KneserLemma/b_0'_exists.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_Lemma/eta_0.con" "Kneser_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/fta/KneserLemma/eta_0_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KneserLemma/eta_exists.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KneserLemma/eps_exists_1.con" as lemma.
+
+(* less_cotransitive_unfolded on 
+  {Zero  [<]  y[/]x[//]H3[-]Half[*]eps} + 
+  {y[/]x[//]H3[-]Half[*]eps  [<]  Half[*]eps}. *)
+
+inline procedural "cic:/CoRN/fta/KneserLemma/eps_exists.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_Lemma/a.con" "Kneser_Lemma__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/KneserLemma/z_exists.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_1'.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_1''.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_1.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_2a.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_2b.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_2c.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_2.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser_3.con" as lemma.
+
+(* UNEXPORTED
+End Kneser_Lemma
+*)
+
+inline procedural "cic:/CoRN/fta/KneserLemma/Kneser.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/fta/MainLemma.mma b/helm/software/matita/contribs/procedural/CoRN/fta/MainLemma.mma
new file mode 100644 (file)
index 0000000..721d471
--- /dev/null
@@ -0,0 +1,144 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $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 "reals/CSumsReals.ma".
+
+include "fta/KeyLemma.ma".
+
+(*#* ** 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/MainLemma/Main_Lemma/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/MainLemma/Main_Lemma/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/MainLemma/Main_Lemma/gt_n_0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/MainLemma/Main_Lemma/eps.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/MainLemma/Main_Lemma/eps_pos.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/MainLemma/Main_Lemma/a_nonneg.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/MainLemma/Main_Lemma/a_n_1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/MainLemma/Main_Lemma/a_0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/fta/MainLemma/Main_Lemma/eps_le_a_0.var
+*)
+
+inline procedural "cic:/CoRN/fta/MainLemma/a_0_pos.con" as lemma.
+
+(*#* 
+%\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 procedural "cic:/CoRN/fta/MainLemma/Main_Lemma/two_n.con" "Main_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/fta/MainLemma/Main_Lemma/Small.con" "Main_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/fta/MainLemma/Main_Lemma/Smaller.con" "Main_Lemma__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/MainLemma/Main_1a'.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/MainLemma/Main_1b'.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/MainLemma/Main_1a.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/MainLemma/Main_1b.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/MainLemma/Main_1.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/MainLemma/Main_2'.con" as lemma.
+
+inline procedural "cic:/CoRN/fta/MainLemma/Main_2.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/MainLemma/Main_3a.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/MainLemma/Main_3.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/fta/MainLemma/Main.con" as lemma.
+
+(* end hide *)
+
+(* UNEXPORTED
+End Main_Lemma
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/COrdLemmas.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/COrdLemmas.mma
new file mode 100644 (file)
index 0000000..83b34c7
--- /dev/null
@@ -0,0 +1,133 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: COrdLemmas.v,v 1.2 2004/04/23 10:00:57 lcf Exp $ *)
+
+include "algebra/COrdCauchy.ma".
+
+(* 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).
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/COrdLemmas/Lemmas/F.var
+*)
+
+inline procedural "cic:/CoRN/ftc/COrdLemmas/om_fun_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/COrdLemmas/om_fun.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/COrdLemmas/om_fun_1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/COrdLemmas/om_fun_2a.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/COrdLemmas/om_fun_2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/COrdLemmas/om_fun_3a.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/COrdLemmas/om_fun_3b.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/COrdLemmas/om_fun_4a.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/COrdLemmas/om_fun_4b.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/COrdLemmas/om_fun_4c.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/COrdLemmas/om_fun_4d.con" as lemma.
+
+(* begin hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/COrdLemmas/Lemmas/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/COrdLemmas/Lemmas/f0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/COrdLemmas/Lemmas/f_mon.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/COrdLemmas/Lemmas/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 procedural "cic:/CoRN/ftc/COrdLemmas/Sumx_Sum_Sum
+ (* end show *)
+ (* begin hide *).con" as lemma.
+
+(* end hide *)
+
+(* begin show *)
+
+inline procedural "cic:/CoRN/ftc/COrdLemmas/str_Sumx_Sum_Sum
+ (* end show *)
+ (* begin hide *).con" as lemma.
+
+(* UNEXPORTED
+End Lemmas
+*)
+
+(* UNEXPORTED
+Section More_Lemmas
+*)
+
+inline procedural "cic:/CoRN/ftc/COrdLemmas/More_Lemmas/f'.con" "More_Lemmas__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/COrdLemmas/More_Lemmas/F.var
+*)
+
+(* begin show *)
+
+inline procedural "cic:/CoRN/ftc/COrdLemmas/str_Sumx_Sum_Sum'
+ (* end show *)
+ (* begin hide *).con" as lemma.
+
+(* end hide *)
+
+(* UNEXPORTED
+End More_Lemmas
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/CalculusTheorems.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/CalculusTheorems.mma
new file mode 100644 (file)
index 0000000..cc413f4
--- /dev/null
@@ -0,0 +1,121 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CalculusTheorems.v,v 1.6 2004/04/23 10:00:57 lcf Exp $ *)
+
+include "ftc/Rolle.ma".
+
+include "tactics/DiffTactics3.ma".
+
+(* 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 procedural "cic:/CoRN/ftc/CalculusTheorems/Continuous_imp_comm_Lim.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/CalculusTheorems/Continuous_imp_pos.con" as lemma.
+
+(*#*
+Similar results for increasing functions:
+*)
+
+inline procedural "cic:/CoRN/ftc/CalculusTheorems/strict_inc_glues.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/CalculusTheorems/strict_inc_glues'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/CalculusTheorems/strict_dec_glues.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/CalculusTheorems/strict_dec_glues'.con" as lemma.
+
+(*#* More on glueing intervals. *)
+
+inline procedural "cic:/CoRN/ftc/CalculusTheorems/olor_pos_clor_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/CalculusTheorems/olor_pos_olcr_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/CalculusTheorems/olor_pos_clcr_nonneg.con" as lemma.
+
+(*#*
+Any function that has the null function as its derivative must be constant.
+*)
+
+inline procedural "cic:/CoRN/ftc/CalculusTheorems/FConst_prop.con" as lemma.
+
+(*#* As a corollary, two functions with the same derivative must differ
+by a constant.
+*)
+
+inline procedural "cic:/CoRN/ftc/CalculusTheorems/Feq_crit_with_const.con" as lemma.
+
+(*#* 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 procedural "cic:/CoRN/ftc/CalculusTheorems/Feq_criterium.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/CalculusTheorems/Derivative_imp_resp_less.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/CalculusTheorems/Derivative_imp_resp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/CalculusTheorems/Derivative_imp_resp_less'.con" as lemma.
+
+(*#* 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 procedural "cic:/CoRN/ftc/CalculusTheorems/nexp_resp_leEq_odd.con" as lemma.
+
+(* UNEXPORTED
+End Various_Theorems
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/Composition.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/Composition.mma
new file mode 100644 (file)
index 0000000..68fda75
--- /dev/null
@@ -0,0 +1,533 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Composition.v,v 1.4 2004/04/23 10:00:58 lcf Exp $ *)
+
+include "ftc/MoreFunctions.ma".
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/Hab.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/d.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/Hcd.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/I.con" "Maps_into_Compacts__Part_Funct__" as definition.
+
+(* end hide *)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/Hf.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/Composition/maps_into_compacts.con" as definition.
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Maps_into_Compacts/Part_Funct/maps.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/Composition/maps_lemma'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Composition/maps_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Composition/maps_lemma_less.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Composition/maps_lemma_inc.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Mapping/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Mapping/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Mapping/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Mapping/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Mapping/Hab.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Mapping/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Mapping/d.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Mapping/Hcd.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Mapping/Hf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Mapping/Hg.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Mapping/maps.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/Composition/included_comp.con" as lemma.
+
+(* UNEXPORTED
+End Mapping
+*)
+
+(* UNEXPORTED
+Section Interval_Continuity
+*)
+
+(*#* **Continuity
+
+We now prove that the composition of two continuous partial functions is continuous.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Interval_Continuity/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Interval_Continuity/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Interval_Continuity/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Composition/Interval_Continuity/I.con" "Interval_Continuity__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Interval_Continuity/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Interval_Continuity/d.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Interval_Continuity/Hcd.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Interval_Continuity/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Interval_Continuity/G.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Interval_Continuity/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Interval_Continuity/contG.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Interval_Continuity/Hmap.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/Composition/Continuous_I_comp.con" as lemma.
+
+(* UNEXPORTED
+End Interval_Continuity
+*)
+
+(* UNEXPORTED
+Section Derivative
+*)
+
+(*#* **Derivative
+
+We now work with the derivative relation and prove the chain rule for partial functions.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Derivative/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Derivative/F'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Derivative/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Derivative/G'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Derivative/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Derivative/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Derivative/Hab'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Derivative/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Derivative/d.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Derivative/Hcd'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Composition/Derivative/Hab.con" "Derivative__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Composition/Derivative/Hcd.con" "Derivative__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Composition/Derivative/I.con" "Derivative__" as definition.
+
+(* end hide *)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Derivative/derF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Derivative/derG.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Derivative/Hmap.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/Composition/included_comp'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Composition/maps'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Composition/Derivative_I_comp.con" as lemma.
+
+(*#*
+The next lemma will be useful when we move on to differentiability.
+*)
+
+inline procedural "cic:/CoRN/ftc/Composition/Diffble_I_comp_aux.con" as lemma.
+
+(* UNEXPORTED
+End Derivative
+*)
+
+(* UNEXPORTED
+Section Differentiability
+*)
+
+(*#* **Differentiability
+
+Finally, we move on to differentiability.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Differentiability/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Differentiability/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Differentiability/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Differentiability/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Differentiability/Hab'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Differentiability/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Differentiability/d.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Differentiability/Hcd'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Composition/Differentiability/Hab.con" "Differentiability__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Composition/Differentiability/Hcd.con" "Differentiability__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Composition/Differentiability/I.con" "Differentiability__" as definition.
+
+(* end hide *)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Differentiability/diffF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Differentiability/diffG.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Differentiability/Hmap.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/Composition/Diffble_I_comp.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Generalized_Intervals/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Generalized_Intervals/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Generalized_Intervals/pI.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Generalized_Intervals/pJ.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Composition/maps_compacts_into.con" as definition.
+
+(*#*
+Now everything comes naturally:
+*)
+
+inline procedural "cic:/CoRN/ftc/Composition/comp_inc_lemma.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Generalized_Intervals/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Generalized_Intervals/F'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Generalized_Intervals/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Generalized_Intervals/G'.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Generalized_Intervals/Hmap.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/Composition/Continuous_comp.con" as lemma.
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Composition/Generalized_Intervals/Hmap'.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/Composition/Derivative_comp.con" as lemma.
+
+(* UNEXPORTED
+End Generalized_Intervals
+*)
+
+(* UNEXPORTED
+Section Corollaries
+*)
+
+(*#*
+Finally, some criteria to prove that a function with a specific domain maps compacts into compacts:
+*)
+
+inline procedural "cic:/CoRN/ftc/Composition/positive_fun.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/Composition/negative_fun.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/Composition/positive_imp_maps_compacts_into.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Composition/negative_imp_maps_compacts_into.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Composition/Continuous_imp_maps_compacts_into.con" as lemma.
+
+(*#*
+As a corollary, we get the generalization of differentiability property.
+*)
+
+inline procedural "cic:/CoRN/ftc/Composition/Diffble_comp.con" as lemma.
+
+(* UNEXPORTED
+End Corollaries
+*)
+
+(* UNEXPORTED
+Hint Immediate included_comp: included.
+*)
+
+(* UNEXPORTED
+Hint Immediate Continuous_I_comp Continuous_comp: continuous.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/Continuity.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/Continuity.mma
new file mode 100644 (file)
index 0000000..f205054
--- /dev/null
@@ -0,0 +1,463 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Continuity.v,v 1.6 2004/04/23 10:00:58 lcf Exp $ *)
+
+(*#* printing Norm_Funct %\ensuremath{\|\cdot\|}% *)
+
+include "reals/NRootIR.ma".
+
+include "ftc/FunctSums.ma".
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/I.con" "Definitions_and_Basic_Results__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/F.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/P.con" "Definitions_and_Basic_Results__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I.con" as definition.
+
+(*#*
+For convenience, we distinguish the two properties of continuous functions.
+*)
+
+inline procedural "cic:/CoRN/ftc/Continuity/contin_imp_inc.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/contin_prop.con" as lemma.
+
+(*#*
+Assume [F] to be continuous in [I].  Then it has a least upper bound and a greater lower bound on [I].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/contF.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Definitions_and_Basic_Results/Hinc'.con" "Definitions_and_Basic_Results__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_imp_tb_image.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_imp_lub.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_imp_glb.con" as lemma.
+
+(*#*
+We now make this glb and lub into operators.
+*)
+
+inline procedural "cic:/CoRN/ftc/Continuity/lub_funct.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/Continuity/glb_funct.con" as definition.
+
+(*#*
+These operators have the expected properties.
+*)
+
+inline procedural "cic:/CoRN/ftc/Continuity/lub_is_lub.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/glb_is_glb.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/glb_prop.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/lub_prop.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/Continuity/Norm_Funct.con" as definition.
+
+(*#*
+The norm effectively bounds the absolute value of a function.
+*)
+
+inline procedural "cic:/CoRN/ftc/Continuity/norm_bnd_AbsIR.con" as lemma.
+
+(*#*
+The following is another way of characterizing the norm:
+*)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_imp_abs_lub.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/Continuity/positive_norm.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/norm_fun_lub.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/leEq_Norm_Funct.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/less_Norm_Funct.con" as lemma.
+
+(* 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].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Local_Results/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Local_Results/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Local_Results/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Local_Results/I.con" "Local_Results__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Local_Results/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Local_Results/G.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Local_Results/P.con" "Local_Results__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Continuity/Local_Results/Q.con" "Local_Results__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Local_Results/incF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Local_Results/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 procedural "cic:/CoRN/ftc/Continuity/cont_no_sign_change.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/cont_no_sign_change_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/cont_no_sign_change_neg.con" as lemma.
+
+(*#*
+Being continuous is an extensional property.
+*)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_wd.con" as lemma.
+
+(*#*
+A continuous function remains continuous if you restrict its domain.
+*)
+
+inline procedural "cic:/CoRN/ftc/Continuity/included_imp_contin.con" as lemma.
+
+(*#*
+Constant functions and identity are continuous.
+*)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_const.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_id.con" as lemma.
+
+(*#*
+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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Local_Results/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Local_Results/contG.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_mult.con" as lemma.
+
+(* UNEXPORTED
+Opaque AbsIR Max.
+*)
+
+(* UNEXPORTED
+Transparent AbsIR Max.
+*)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_max.con" as lemma.
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Local_Results/Hg'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Local_Results/Hg''.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_recip.con" as lemma.
+
+(* UNEXPORTED
+End Local_Results
+*)
+
+(* UNEXPORTED
+Hint Resolve contin_imp_inc: included.
+*)
+
+(* UNEXPORTED
+Section Corolaries
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Corolaries/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Corolaries/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Corolaries/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Corolaries/I.con" "Corolaries__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Corolaries/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Corolaries/G.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Corolaries/P.con" "Corolaries__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Continuity/Corolaries/Q.con" "Corolaries__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Corolaries/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Corolaries/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 procedural "cic:/CoRN/ftc/Continuity/Continuous_I_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_scal.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_nth.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_min.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_abs.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Corolaries/Hg'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Corolaries/Hg''.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_div.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Other/Sums/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Other/Sums/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Other/Sums/Hab.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Continuity/Other/Sums/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Other/Sums/I.con" "Other__Sums__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_Sum0.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_Sumx.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/Continuous_I_Sum.con" as lemma.
+
+(* UNEXPORTED
+End Sums
+*)
+
+(*#*
+For practical purposes, these characterization results are useful:
+*)
+
+inline procedural "cic:/CoRN/ftc/Continuity/lub_charact.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Continuity/glb_charact.con" as lemma.
+
+(*#*
+The following result is also extremely useful, as it allows us to set a lower bound on the glb of a function.
+*)
+
+inline procedural "cic:/CoRN/ftc/Continuity/leEq_glb.con" as lemma.
+
+(*#*
+The norm is also an extensional property.
+*)
+
+inline procedural "cic:/CoRN/ftc/Continuity/Norm_Funct_wd.con" as lemma.
+
+(*#*
+The value of the norm is covariant with the length of the interval.
+*)
+
+inline procedural "cic:/CoRN/ftc/Continuity/included_imp_norm_leEq.con" as lemma.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/ftc/Derivative.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/Derivative.mma
new file mode 100644 (file)
index 0000000..74c970d
--- /dev/null
@@ -0,0 +1,200 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Derivative.v,v 1.7 2004/04/23 10:00:58 lcf Exp $ *)
+
+include "ftc/Continuity.ma".
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Derivative/Definitions/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Derivative/Definitions/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Derivative/Definitions/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Derivative/Definitions/Hab.con" "Definitions__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Derivative/Definitions/I.con" "Definitions__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Derivative/Definitions/F.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Derivative/Definitions/P.con" "Definitions__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/Derivative/Derivative_I.con" as definition.
+
+(* UNEXPORTED
+End Definitions
+*)
+
+(* UNEXPORTED
+Implicit Arguments Derivative_I [a b].
+*)
+
+(* UNEXPORTED
+Section Basic_Properties
+*)
+
+(*#* **Basic Properties
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Derivative/Basic_Properties/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Derivative/Basic_Properties/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Derivative/Basic_Properties/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Derivative/Basic_Properties/Hab.con" "Basic_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Derivative/Basic_Properties/I.con" "Basic_Properties__" as definition.
+
+(* end hide *)
+
+(*#*
+Like we did for equality, we begin by stating a lemma that makes proofs of derivation easier in practice.
+*)
+
+inline procedural "cic:/CoRN/ftc/Derivative/Derivative_I_char.con" as lemma.
+
+(* end hide *)
+
+(*#*
+Derivative is a well defined relation; we will make this explicit for both arguments:
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Derivative/Basic_Properties/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Derivative/Basic_Properties/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Derivative/Basic_Properties/H.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Derivative/Basic_Properties/P.con" "Basic_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Derivative/Basic_Properties/Q.con" "Basic_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Derivative/Basic_Properties/R.con" "Basic_Properties__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/Derivative/Derivative_I_wdl.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Derivative/Derivative_I_wdr.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Derivative/Basic_Properties/Derivative_I_unique_lemma.con" "Basic_Properties__" as definition.
+
+(* end hide *)
+
+(*#*
+Derivative is unique.
+*)
+
+inline procedural "cic:/CoRN/ftc/Derivative/Derivative_I_unique.con" as lemma.
+
+(*#*
+Finally, the set where we are considering the relation is included in the domain of both functions.
+*)
+
+inline procedural "cic:/CoRN/ftc/Derivative/derivative_imp_inc.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Derivative/derivative_imp_inc'.con" as lemma.
+
+(*#*
+Any function that is or has a derivative is continuous.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Derivative/Basic_Properties/Hab''.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Derivative/deriv_imp_contin'_I.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Derivative/deriv_imp_contin_I.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/ftc/Derivative/included_imp_deriv.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/DerivativeOps.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/DerivativeOps.mma
new file mode 100644 (file)
index 0000000..84ded64
--- /dev/null
@@ -0,0 +1,291 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: DerivativeOps.v,v 1.3 2004/04/23 10:00:58 lcf Exp $ *)
+
+include "ftc/Derivative.ma".
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Lemmas/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Lemmas/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Lemmas/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Lemmas/I.con" "Lemmas__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Lemmas/F.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Lemmas/P.con" "Lemmas__" as definition.
+
+(* end hide *)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Lemmas/Fbnd.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/bnd_away_zero_square.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Local_Results/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Local_Results/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Local_Results/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Local_Results/Hab.con" "Local_Results__" as definition.
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Local_Results/I.con" "Local_Results__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Derivative_I_const.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Derivative_I_id.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Local_Results/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Local_Results/F'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Local_Results/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Local_Results/G'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Local_Results/derF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Local_Results/derG.var
+*)
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Derivative_I_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Derivative_I_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Derivative_I_mult.con" as lemma.
+
+(*#*
+As was the case for continuity, the rule for the reciprocal function has a side condition.
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Local_Results/Fbnd.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Derivative_I_recip.con" as lemma.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Corolaries/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Corolaries/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Corolaries/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Corolaries/Hab.con" "Corolaries__" as definition.
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Corolaries/I.con" "Corolaries__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Corolaries/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Corolaries/F'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Corolaries/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Corolaries/G'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Corolaries/derF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Corolaries/derG.var
+*)
+
+(*#*
+From this lemmas the rules for the other algebraic operations follow directly.
+*)
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Derivative_I_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Derivative_I_scal.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Derivative_I_nth.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Corolaries/Gbnd.var
+*)
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Derivative_I_div.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Derivative_Sums/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Derivative_Sums/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Derivative_Sums/Hab.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/DerivativeOps/Derivative_Sums/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Derivative_Sums/I.con" "Derivative_Sums__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Derivative_I_Sum0.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Derivative_I_Sumx.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/DerivativeOps/Derivative_I_Sum.con" as lemma.
+
+(* UNEXPORTED
+End Derivative_Sums
+*)
+
+(* UNEXPORTED
+Hint Resolve Derivative_I_Sum0 Derivative_I_Sum Derivative_I_Sumx: derivate.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/Differentiability.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/Differentiability.mma
new file mode 100644 (file)
index 0000000..21e0c1f
--- /dev/null
@@ -0,0 +1,323 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Differentiability.v,v 1.5 2004/04/20 22:38:49 hinderer Exp $ *)
+
+include "ftc/PartInterval.ma".
+
+include "ftc/DerivativeOps.ma".
+
+(* 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 procedural "cic:/CoRN/ftc/Differentiability/Diffble_I.con" as definition.
+
+(* 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 procedural "cic:/CoRN/ftc/Differentiability/included_imp_diffble.con" as lemma.
+
+(*#*
+A function differentiable in an interval is everywhere defined in that interval.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Local_Properties/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Local_Properties/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Local_Properties/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Local_Properties/Hab.con" "Local_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Local_Properties/I.con" "Local_Properties__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/Differentiability/diffble_imp_inc.con" as lemma.
+
+(*#*
+If a function has a derivative in an interval then it is differentiable in that interval.
+*)
+
+inline procedural "cic:/CoRN/ftc/Differentiability/deriv_imp_Diffble_I.con" as lemma.
+
+(* UNEXPORTED
+End Local_Properties
+*)
+
+(* UNEXPORTED
+Hint Resolve diffble_imp_inc: included.
+*)
+
+(* UNEXPORTED
+Section Operations
+*)
+
+(*#*
+All the algebraic results carry on.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Operations/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Operations/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Operations/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Operations/Hab.con" "Operations__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Operations/I.con" "Operations__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+Section Constants
+*)
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Diffble_I_const.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Diffble_I_id.con" as lemma.
+
+(* UNEXPORTED
+End Constants
+*)
+
+(* UNEXPORTED
+Section Well_Definedness
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Operations/Well_Definedness/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Operations/Well_Definedness/H.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Operations/Well_Definedness/diffF.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Diffble_I_wd.con" as lemma.
+
+(* UNEXPORTED
+End Well_Definedness
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Operations/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Operations/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Operations/diffF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Operations/diffG.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Diffble_I_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Diffble_I_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Diffble_I_mult.con" as lemma.
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Operations/Gbnd.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Diffble_I_recip.con" as lemma.
+
+(* UNEXPORTED
+End Operations
+*)
+
+(* UNEXPORTED
+Section Corollaries
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Corollaries/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Corollaries/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Corollaries/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Corollaries/Hab.con" "Corollaries__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Corollaries/I.con" "Corollaries__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Corollaries/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Corollaries/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Corollaries/diffF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Corollaries/diffG.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Diffble_I_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Diffble_I_scal.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Diffble_I_nth.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Corollaries/Gbnd.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Diffble_I_div.con" as lemma.
+
+(* UNEXPORTED
+End Corollaries
+*)
+
+(* UNEXPORTED
+Section Other_Properties
+*)
+
+(*#*
+Differentiability of families of functions is proved by
+induction using the constant and addition rules.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Other_Properties/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Other_Properties/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Differentiability/Other_Properties/Hab'.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Diffble_I_Sum0.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Diffble_I_Sumx.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Differentiability/Diffble_I_Sum.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/ftc/Differentiability/diffble_imp_contin_I.con" as lemma.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/ftc/FTC.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/FTC.mma
new file mode 100644 (file)
index 0000000..b7381ac
--- /dev/null
@@ -0,0 +1,479 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: FTC.v,v 1.5 2004/04/23 10:00:58 lcf Exp $ *)
+
+(*#* printing [-S-] %\ensuremath{\int}% #&int;# *)
+
+include "ftc/MoreIntegrals.ma".
+
+include "ftc/CalculusTheorems.ma".
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Indefinite_Integral/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Indefinite_Integral/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Indefinite_Integral/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Indefinite_Integral/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Indefinite_Integral/Ha.var
+*)
+
+inline procedural "cic:/CoRN/ftc/FTC/prim_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FTC/Fprim_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FTC/Fprim.con" as definition.
+
+(* UNEXPORTED
+End Indefinite_Integral
+*)
+
+(* UNEXPORTED
+Implicit Arguments Fprim [I F].
+*)
+
+(* NOTATION
+Notation "[-S-] F" := (Fprim F) (at level 20).
+*)
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/FTC/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/FTC/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/FTC/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/FTC/x0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/FTC/Hx0.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FTC/FTC/G.con" "FTC__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/FTC/Continuous_prim.con" as lemma.
+
+(*#*
+The derivative of [G] is simply [F].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/FTC/pJ.var
+*)
+
+inline procedural "cic:/CoRN/ftc/FTC/FTC1.con" as theorem.
+
+(*#*
+Any other function [G0] with derivative [F] must differ from [G] by a constant.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/FTC/G0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/FTC/derG0.var
+*)
+
+inline procedural "cic:/CoRN/ftc/FTC/FTC2.con" as theorem.
+
+(*#*
+The following is another statement of the Fundamental Theorem of Calculus, also known as Barrow's rule.
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FTC/FTC/G0_inc.con" "FTC__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+Opaque G.
+*)
+
+inline procedural "cic:/CoRN/ftc/FTC/Barrow.con" as theorem.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/contf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/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&isin;[a,b]#; denote by
+[(g n)] and [G] the indefinite integrals respectively of [(f n)] and
+[F] with origin [x0].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/Compact/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/Compact/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/Compact/Hab.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/Compact/contIf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/Compact/contIF.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/Compact/convF.var
+*)
+
+(* end show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/Compact/x0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/Compact/Hx0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/Compact/Hx0'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/Compact/g.con" "Limit_of_Integral_Seq__Compact__" as definition.
+
+inline procedural "cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/Compact/G.con" "Limit_of_Integral_Seq__Compact__" as definition.
+
+(* end hide *)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/Compact/contg.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/Compact/contG.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/FTC/fun_lim_seq_integral.con" as lemma.
+
+(* UNEXPORTED
+End Compact
+*)
+
+(*#*
+And now we can generalize it step by step.
+*)
+
+inline procedural "cic:/CoRN/ftc/FTC/limit_of_integral.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FTC/limit_of_Integral.con" as lemma.
+
+(* UNEXPORTED
+Section General
+*)
+
+(*#*
+Finally, with [x0, g, G] as before,
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/General/convF.var
+*)
+
+(* end show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/General/x0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/General/Hx0.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/General/g.con" "Limit_of_Integral_Seq__General__" as definition.
+
+inline procedural "cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/General/G.con" "Limit_of_Integral_Seq__General__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/General/contg.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Integral_Seq/General/contG.var
+*)
+
+inline procedural "cic:/CoRN/ftc/FTC/fun_lim_seq_integral_IR.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Derivative_Seq/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Derivative_Seq/pJ.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Derivative_Seq/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Derivative_Seq/g.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Derivative_Seq/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Derivative_Seq/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Derivative_Seq/contf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Derivative_Seq/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Derivative_Seq/convF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Derivative_Seq/contg.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Derivative_Seq/contG.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Derivative_Seq/convG.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Limit_of_Derivative_Seq/derf.var
+*)
+
+inline procedural "cic:/CoRN/ftc/FTC/fun_lim_seq_derivative.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Derivative_Series/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Derivative_Series/pJ.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Derivative_Series/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Derivative_Series/g.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Derivative_Series/convF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Derivative_Series/convG.var
+*)
+
+(* end show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FTC/Derivative_Series/derF.var
+*)
+
+inline procedural "cic:/CoRN/ftc/FTC/Derivative_FSeries.con" as lemma.
+
+(* UNEXPORTED
+End Derivative_Series
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/FunctSequence.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/FunctSequence.mma
new file mode 100644 (file)
index 0000000..8d5bfb3
--- /dev/null
@@ -0,0 +1,634 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: FunctSequence.v,v 1.5 2004/04/23 10:00:58 lcf Exp $ *)
+
+include "ftc/Continuity.ma".
+
+include "ftc/PartInterval.ma".
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Definitions/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Definitions/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Definitions/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Definitions/I.con" "Definitions__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Definitions/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Definitions/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Definitions/contf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Definitions/contF.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Definitions/incf.con" "Definitions__" as definition.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Definitions/incF.con" "Definitions__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/conv_fun_seq'.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/conv_norm_fun_seq.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq1.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq'.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq2.con" as definition.
+
+(*#*
+These definitions are all shown to be equivalent.
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq_seq'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq'_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/conv_Cauchy_fun_seq'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq_seq2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq2_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/conv_fun_seq'_norm.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/conv_fun_norm_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq1_seq'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq'_seq1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq_seq1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq1_seq.con" as lemma.
+
+(*#*
+A Cauchy sequence of functions is pointwise a Cauchy sequence.
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_real.con" as lemma.
+
+(* UNEXPORTED
+End Definitions
+*)
+
+(* UNEXPORTED
+Section More_Definitions
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Definitions/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Definitions/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Definitions/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/More_Definitions/I.con" "More_Definitions__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Definitions/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Definitions/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 procedural "cic:/CoRN/ftc/FunctSequence/conv_fun_seq.con" as definition.
+
+(*#*
+It is useful to extract the limit as a partial function:
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Definitions/H.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq_Lim.con" as definition.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Irrelevance_of_Proofs/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Irrelevance_of_Proofs/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Irrelevance_of_Proofs/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Irrelevance_of_Proofs/I.con" "Irrelevance_of_Proofs__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Irrelevance_of_Proofs/f.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Irrelevance_of_Proofs/contf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Irrelevance_of_Proofs/contf0.var
+*)
+
+(* end show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Irrelevance_of_Proofs/F.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Irrelevance_of_Proofs/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Irrelevance_of_Proofs/contF0.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/conv_fun_seq'_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq'_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq2_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/conv_norm_fun_seq_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq1_wd.con" as lemma.
+
+(* UNEXPORTED
+End Irrelevance_of_Proofs
+*)
+
+(* UNEXPORTED
+Section More_Proof_Irrelevance
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/conv_fun_seq_wd.con" as lemma.
+
+(* 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]].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Properties/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Properties/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Properties/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/More_Properties/I.con" "More_Properties__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Properties/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Properties/g.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Properties/contf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Properties/contf0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Properties/contg.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Properties/contg0.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_conv_fun_seq'.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Properties/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Properties/G.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Properties/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Properties/contF0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Properties/contG.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Properties/contG0.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/conv_fun_seq'_wdl.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/conv_fun_seq'_wdr.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/conv_fun_seq'_wdl'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/conv_fun_seq'_wdr'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_fun_seq_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_cont_Lim.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Cauchy_conv_fun_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/conv_Cauchy_fun_seq.con" as lemma.
+
+(*#*
+More interesting is the fact that a convergent sequence of functions converges pointwise as a sequence of real numbers.
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/fun_conv_imp_seq_conv.con" as lemma.
+
+(*#*
+And a sequence of real numbers converges iff the corresponding sequence of constant functions converges to the corresponding constant function.
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/seq_conv_imp_fun_conv.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/I.con" "Algebraic_Properties__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/g.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/contf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/contg.var
+*)
+
+(*#*
+First, the limit function is unique.
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/FLim_unique.con" as lemma.
+
+(*#* Constant sequences (not sequences of constant functions!) always converge.
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_const.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/fun_Cauchy_prop_const.con" as lemma.
+
+(*#*
+We now prove that if two sequences converge than their sum (difference, product) also converge to the sum (difference, product) of their limits.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/contG.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/convF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/convG.var
+*)
+
+(* end show *)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/incf.con" "Algebraic_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/incg.con" "Algebraic_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/incF.con" "Algebraic_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Algebraic_Properties/incG.con" "Algebraic_Properties__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_plus'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_minus'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_mult'.con" as lemma.
+
+(* UNEXPORTED
+End Algebraic_Properties
+*)
+
+(* UNEXPORTED
+Section More_Algebraic_Properties
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Algebraic_Properties/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Algebraic_Properties/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Algebraic_Properties/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/More_Algebraic_Properties/I.con" "More_Algebraic_Properties__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Algebraic_Properties/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Algebraic_Properties/g.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Algebraic_Properties/contf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Algebraic_Properties/contg.var
+*)
+
+(*#*
+The same is true if we don't make the limits explicit.
+*)
+
+(* begin hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Algebraic_Properties/Hf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/More_Algebraic_Properties/Hg.var
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/fun_Cauchy_prop_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/fun_Cauchy_prop_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/fun_Cauchy_prop_mult.con" as lemma.
+
+(* UNEXPORTED
+End More_Algebraic_Properties
+*)
+
+(* UNEXPORTED
+Section Still_More_Algebraic_Properties
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Still_More_Algebraic_Properties/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Still_More_Algebraic_Properties/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Still_More_Algebraic_Properties/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/Still_More_Algebraic_Properties/I.con" "Still_More_Algebraic_Properties__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Still_More_Algebraic_Properties/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Still_More_Algebraic_Properties/contf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSequence/Still_More_Algebraic_Properties/Hf.var
+*)
+
+(*#*
+As a corollary, we get the analogous property for the sequence of algebraic inverse functions.
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/fun_Lim_seq_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSequence/fun_Cauchy_prop_inv.con" as lemma.
+
+(* UNEXPORTED
+End Still_More_Algebraic_Properties
+*)
+
+(* UNEXPORTED
+Hint Resolve Continuous_I_Sum Continuous_I_Sumx Continuous_I_Sum0: continuous.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/FunctSeries.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/FunctSeries.mma
new file mode 100644 (file)
index 0000000..05ab517
--- /dev/null
@@ -0,0 +1,432 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: FunctSeries.v,v 1.6 2004/04/23 10:00:58 lcf Exp $ *)
+
+include "ftc/FunctSequence.ma".
+
+include "reals/Series.ma".
+
+(*#* printing fun_seq_part_sum %\ensuremath{\sum^n}% #&sum;<sup>n</sup># *)
+
+(*#* printing Fun_Series_Sum %\ensuremath{\sum_0^{\infty}}% #&sum;<sub>0</sub><sup>&infin;</sup># *)
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Definitions/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Definitions/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Definitions/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Definitions/I.con" "Definitions__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Definitions/f.var
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/fun_seq_part_sum.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/fun_seq_part_sum_cont.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/fun_series_convergent.con" as definition.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/FunctSeries/fun_series_conv_imp_conv.con" as lemma.
+
+(*#* We then define the sum of the series as being the pointwise sum of
+the corresponding series.
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Definitions/H.var
+*)
+
+(* end show *)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Definitions/contf.con" "Definitions__" as definition.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Definitions/incf.con" "Definitions__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum.con" as definition.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/More_Definitions/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/More_Definitions/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/More_Definitions/Hab.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/More_Definitions/f.var
+*)
+
+(*#* A series can also be absolutely convergent. *)
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/fun_series_abs_convergent.con" as definition.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Operations/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Operations/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Operations/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Operations/I.con" "Operations__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/fun_seq_part_sum_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/conv_fun_const_series.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/fun_const_series_sum.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/conv_zero_fun_series.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_zero.con" as lemma.
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Operations/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Operations/g.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/fun_series_convergent_wd.con" as lemma.
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Operations/convF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Operations/convG.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_wd'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/conv_fun_series_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/conv_fun_series_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_min.con" as lemma.
+
+(*#*
+%\begin{convention}% Let [c:IR].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Operations/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Operations/H.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Operations/contH.var
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/conv_fun_series_scal.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_scal.con" as lemma.
+
+(* UNEXPORTED
+End Operations
+*)
+
+(* UNEXPORTED
+Section More_Operations
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/More_Operations/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/More_Operations/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/More_Operations/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/More_Operations/I.con" "More_Operations__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/More_Operations/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/More_Operations/convF.var
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/conv_fun_series_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_inv.con" as lemma.
+
+(* UNEXPORTED
+End More_Operations
+*)
+
+(* UNEXPORTED
+Section Other_Results
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Other_Results/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Other_Results/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Other_Results/Hab.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Other_Results/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Other_Results/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 procedural "cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_char'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/fun_series_conv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_cont.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_char.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Fun_Series_Sum_as_Lim.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Convergence_Criteria/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Convergence_Criteria/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Convergence_Criteria/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/Convergence_Criteria/I.con" "Convergence_Criteria__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Convergence_Criteria/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/FunctSeries/Convergence_Criteria/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 procedural "cic:/CoRN/ftc/FunctSeries/fun_str_comparison.con" as lemma.
+
+(* UNEXPORTED
+Transparent FAbs.
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/fun_comparison.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/abs_imp_conv.con" as lemma.
+
+(* UNEXPORTED
+Opaque FAbs.
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSeries/fun_ratio_test_conv.con" as lemma.
+
+(* UNEXPORTED
+End Convergence_Criteria
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/FunctSums.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/FunctSums.mma
new file mode 100644 (file)
index 0000000..3475e34
--- /dev/null
@@ -0,0 +1,163 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: FunctSums.v,v 1.5 2004/04/23 10:00:59 lcf Exp $ *)
+
+(*#* printing FSum0 %\ensuremath{\sum_0}% #&sum;<sub>0</sub># *)
+
+(*#* printing FSum %\ensuremath{\sum}% #&sum;# *)
+
+(*#* printing FSumx %\ensuremath{\sum'}% #&sum;'&*)
+
+include "reals/CSumsReals.ma".
+
+include "ftc/PartFunEquality.ma".
+
+(*#* *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}$#{f<sub>i</sub>}# 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 f<sub>m</sub> through f<sub>n</sub>#
+( [FSum]).
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum0.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum.con" as definition.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/FunctSums/FSum_FSum0.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum0_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_one.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_FSum.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_first.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_last.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_last'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_plus_FSum.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/inv_FSum.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_minus_FSum.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_wd'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_resp_less.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_resp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_comm_scal.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_comm_scal'.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/FunctSums/FSumx.con" as definition.
+
+(*#*
+This operator is well defined, as expected.
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSumx_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSumx_wd'.con" as lemma.
+
+(*#*
+As was already the case for [Sumx], in many cases we will need to
+explicitly assume that $f_i$#f<sub>1</sub># is independent of the proof that
+[i [<] n].  This holds both for the value and the domain of the partial
+function $f_i$#f<sub>i</sub>#.
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSums/ext_fun_seq.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/ext_fun_seq'.con" as definition.
+
+(* 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 procedural "cic:/CoRN/ftc/FunctSums/FSumx_pred.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSumx_pred'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSumx_char.con" as lemma.
+
+(*#*
+As we did for arbitrary groups, it is often useful to rewrite this sums as ordinary sums.
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSumx_to_FSum.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSumx_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSumx_le.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_FSumx_to_FSum.con" as lemma.
+
+(*#*
+Some useful lemmas follow.
+*)
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum0_0.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum0_S.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_0.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_S.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/FunctSums/FSum_FSum0'.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/Integral.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/Integral.mma
new file mode 100644 (file)
index 0000000..d482e21
--- /dev/null
@@ -0,0 +1,600 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Integral.v,v 1.10 2004/04/23 10:00:59 lcf Exp $ *)
+
+include "ftc/RefLemma.ma".
+
+(*#* printing integral %\ensuremath{\int_I}% #&int;<sub>I</sub># *)
+
+(*#* printing Integral %\ensuremath{\int_I}% #&int;<sub>I</sub># *)
+
+(* begin hide *)
+
+(* UNEXPORTED
+Section Lemmas
+*)
+
+inline procedural "cic:/CoRN/ftc/Integral/Lemmas/Sumx_wd_weird.con" "Lemmas__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Integral/Sumx_weird_lemma.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Integral/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Integral/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Integral/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Integral/Integral/I.con" "Integral__" as definition.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Integral/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Integral/contF.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Integral/Integral/contF'.con" "Integral__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+Section Darboux_Sum
+*)
+
+inline procedural "cic:/CoRN/ftc/Integral/integral_seq.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/Integral/Cauchy_Darboux_Seq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/integral.con" as definition.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Integral/Integral_Thm/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Integral/Integral_Thm/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Integral/Integral_Thm/e.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Integral/Integral_Thm/He.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Integral/Integral/Integral_Thm/d.con" "Integral__Integral_Thm__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Integral/Integral_Thm/HmeshP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Integral/Integral_Thm/fP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Integral/Integral_Thm/HfP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Integral/Integral_Thm/HfP'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Integral/Integral_Thm/incF.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Integral/partition_Sum_conv_integral.con" as lemma.
+
+(* UNEXPORTED
+End Integral_Thm
+*)
+
+(* UNEXPORTED
+End Integral
+*)
+
+(* UNEXPORTED
+Section Basic_Properties
+*)
+
+(*#*
+The usual extensionality and strong extensionality results hold.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Integral/Basic_Properties/I.con" "Basic_Properties__" as definition.
+
+(* end hide *)
+
+(* NOTATION
+Notation Integral := (integral _ _ Hab).
+*)
+
+(* UNEXPORTED
+Section Well_Definedness
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Well_Definedness/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Well_Definedness/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Well_Definedness/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Well_Definedness/contG.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Integral/integral_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/integral_strext'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/integral_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/integral_wd'.con" as lemma.
+
+(* 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$#&int;<sub>a</sub><sup>b</sup>dx=b-a# and $\int_a^af(x)dx=0$#&int;<sub>a</sub><sup>a</sup>=0#.
+*)
+
+inline procedural "cic:/CoRN/ftc/Integral/integral_one.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Linearity_and_Monotonicity/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Linearity_and_Monotonicity/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Linearity_and_Monotonicity/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Linearity_and_Monotonicity/contG.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Integral/integral_comm_scal.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/integral_plus.con" as lemma.
+
+(* UNEXPORTED
+Transparent Even_Partition.
+*)
+
+inline procedural "cic:/CoRN/ftc/Integral/integral_empty.con" as lemma.
+
+(* UNEXPORTED
+End Linearity_and_Monotonicity
+*)
+
+(* UNEXPORTED
+Section Linearity_and_Monotonicity'
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Linearity_and_Monotonicity'/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Linearity_and_Monotonicity'/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Linearity_and_Monotonicity'/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Linearity_and_Monotonicity'/contG.var
+*)
+
+(*#*
+%\begin{convention}% Let [alpha, beta : IR] and assume that
+[h := alpha{**}F{+}beta{**}G] is continuous.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Linearity_and_Monotonicity'/alpha.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Linearity_and_Monotonicity'/beta.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Integral/Basic_Properties/Linearity_and_Monotonicity'/h.con" "Basic_Properties__Linearity_and_Monotonicity'__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Linearity_and_Monotonicity'/contH.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Integral/linear_integral.con" as lemma.
+
+(* UNEXPORTED
+Opaque nring.
+*)
+
+inline procedural "cic:/CoRN/ftc/Integral/monotonous_integral.con" as lemma.
+
+(* UNEXPORTED
+Transparent nring.
+*)
+
+(* UNEXPORTED
+End Linearity_and_Monotonicity'
+*)
+
+(* UNEXPORTED
+Section Corollaries
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Corollaries/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Corollaries/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Corollaries/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Corollaries/contG.var
+*)
+
+(*#*
+As corollaries we can calculate integrals of group operations applied to functions.
+*)
+
+inline procedural "cic:/CoRN/ftc/Integral/integral_const.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/integral_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/integral_inv.con" as lemma.
+
+(*#*
+We can also bound integrals by bounding the integrated functions.
+*)
+
+inline procedural "cic:/CoRN/ftc/Integral/lb_integral.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/ub_integral.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/integral_leEq_norm.con" as lemma.
+
+(* 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&isin;[a,b]#.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/Hac.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/Hcb.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/Hab'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/Hac'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/Partition_Join/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/Partition_Join/m.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/Partition_Join/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/Partition_Join/Q.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Integral/partition_join_aux.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/Integral/partition_join_fun.con" as definition.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Integral/pjf_1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/pjf_2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/pjf_2'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/pjf_3.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/partition_join_prf1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/partition_join_prf2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/partition_join_start.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/partition_join_finish.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/partition_join.con" as definition.
+
+(* end hide *)
+
+(*#*
+%\begin{convention}% [fP, fQ] are choices of points respecting [P] and [Q].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/Partition_Join/fP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/Partition_Join/HfP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/Partition_Join/HfP'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/Partition_Join/fQ.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/Partition_Join/HfQ.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Integral/Basic_Properties/Integral_Sum/Partition_Join/HfQ'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Integral/partition_join_aux'.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/Integral/partition_join_pts.con" as definition.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Integral/pjp_1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/pjp_2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/pjp_3.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/Integral/partition_join_Pts_in_partition.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/partition_join_Pts_wd.con" as lemma.
+
+(* UNEXPORTED
+Opaque partition_join.
+*)
+
+(* UNEXPORTED
+Transparent partition_join.
+*)
+
+(* UNEXPORTED
+Opaque minus.
+*)
+
+(* UNEXPORTED
+Transparent minus.
+*)
+
+(* UNEXPORTED
+Opaque minus.
+*)
+
+(* UNEXPORTED
+Transparent minus.
+*)
+
+inline procedural "cic:/CoRN/ftc/Integral/partition_join_Sum_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Integral/partition_join_mesh.con" as lemma.
+
+(* UNEXPORTED
+End Partition_Join
+*)
+
+(*#*
+With these results in mind, the following is a trivial consequence:
+*)
+
+(* UNEXPORTED
+Opaque Even_Partition.
+*)
+
+inline procedural "cic:/CoRN/ftc/Integral/integral_plus_integral.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/ftc/Integral/integral_less_norm.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/Integral/integral_gt_zero.con" as lemma.
+
+(* end hide *)
+
+(*#* remove printing Integral *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/IntervalFunct.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/IntervalFunct.mma
new file mode 100644 (file)
index 0000000..cf4c9b9
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: IntervalFunct.v,v 1.5 2004/04/08 15:28:06 lcf Exp $ *)
+
+include "ftc/PartFunEquality.ma".
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Operations/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Operations/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Operations/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/Operations/I.con" "Operations__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Operations/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Operations/g.var
+*)
+
+(* UNEXPORTED
+Section Const
+*)
+
+(*#*
+Constant and identity functions are defined.
+
+%\begin{convention}% Let [c:IR].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Operations/Const/c.var
+*)
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IConst_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IConst.con" as definition.
+
+(* UNEXPORTED
+End Const
+*)
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IId_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IId.con" as definition.
+
+(*#*
+Next, we define addition, algebraic inverse, subtraction and product of functions.
+*)
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IPlus_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IPlus.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IInv_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IInv.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IMinus_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IMinus.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IMult_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IMult.con" as definition.
+
+(* UNEXPORTED
+Section Nth_Power
+*)
+
+(*#*
+Exponentiation to a natural power [n] is also useful.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Operations/Nth_Power/n.var
+*)
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/INth_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/INth.con" as definition.
+
+(* 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 *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Operations/Recip_Div/Hg.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IRecip_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IRecip.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IDiv_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IDiv.con" as definition.
+
+(* UNEXPORTED
+End Recip_Div
+*)
+
+(*#*
+Absolute value will also be needed at some point.
+*)
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IAbs_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IAbs.con" as definition.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Composition/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Composition/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Composition/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/Composition/I.con" "Composition__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Composition/a'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Composition/b'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Composition/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/Composition/I'.con" "Composition__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Composition/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Composition/g.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/IntervalFunct/Composition/Hfg.var
+*)
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IComp_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/IntervalFunct/IComp.con" as definition.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/ftc/MoreFunSeries.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/MoreFunSeries.mma
new file mode 100644 (file)
index 0000000..8553850
--- /dev/null
@@ -0,0 +1,705 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: MoreFunSeries.v,v 1.4 2004/04/23 10:00:59 lcf Exp $ *)
+
+include "ftc/FunctSeries.ma".
+
+include "ftc/MoreFunctions.ma".
+
+(*#* printing FSeries_Sum %\ensuremath{\sum_{\infty}}% #&sum;'<sub>&infin;</sub># *)
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Definitions/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Definitions/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Definitions/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Definitions/contf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Definitions/contF.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq_IR.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq_IR.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq'_IR.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq2_IR.con" as definition.
+
+(*#*
+The equivalences between these definitions still hold.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/conv_Cauchy_fun_seq'_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq_seq2_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq2_seq_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_real_IR.con" as lemma.
+
+(* UNEXPORTED
+End Definitions
+*)
+
+(* UNEXPORTED
+Section More_Definitions
+*)
+
+(*#*
+Limit is defined and works in the same way as before.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Definitions/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Definitions/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Definitions/contf.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Definitions/conv.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq_Lim_IR.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq_Lim_char.con" as lemma.
+
+(* UNEXPORTED
+End More_Definitions
+*)
+
+(* UNEXPORTED
+Section Irrelevance_of_Proofs
+*)
+
+(*#* ***Basic Properties
+
+Proofs are irrelevant as before---they just have to be present.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Irrelevance_of_Proofs/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Irrelevance_of_Proofs/f.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Irrelevance_of_Proofs/contf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Irrelevance_of_Proofs/contf0.var
+*)
+
+(* end show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Irrelevance_of_Proofs/F.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Irrelevance_of_Proofs/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Irrelevance_of_Proofs/contF0.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq'_wd_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq2_wd_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq_wd_IR.con" as lemma.
+
+(* UNEXPORTED
+End Irrelevance_of_Proofs
+*)
+
+(* UNEXPORTED
+Opaque Cauchy_fun_seq_Lim_IR.
+*)
+
+(* UNEXPORTED
+Section More_Properties
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Properties/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Properties/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Properties/g.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Properties/contf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Properties/contf0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Properties/contg.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Properties/contg0.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/Cauchy_conv_fun_seq'_IR.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Properties/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Properties/G.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Properties/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Properties/contF0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Properties/contG.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Properties/contG0.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq'_wdl_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq'_wdr_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq'_wdl'_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/conv_fun_seq'_wdr'_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/Cauchy_cont_Lim_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/Cauchy_conv_fun_seq_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/conv_Cauchy_fun_seq_IR.con" as lemma.
+
+(* UNEXPORTED
+End More_Properties
+*)
+
+(* UNEXPORTED
+Hint Resolve Cauchy_cont_Lim_IR: continuous.
+*)
+
+(* UNEXPORTED
+Section Algebraic_Properties
+*)
+
+(*#* ***Algebraic Properties
+
+Algebraic operations still work well.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Algebraic_Properties/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Algebraic_Properties/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Algebraic_Properties/g.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Algebraic_Properties/contf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Algebraic_Properties/contg.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/FLim_unique_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/Cauchy_fun_seq_wd_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_const_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_Cauchy_prop_const_IR.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Algebraic_Properties/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Algebraic_Properties/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Algebraic_Properties/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Algebraic_Properties/contG.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Algebraic_Properties/convF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Algebraic_Properties/convG.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_plus'_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_minus'_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_mult'_IR.con" as lemma.
+
+(* UNEXPORTED
+End Algebraic_Properties
+*)
+
+(* UNEXPORTED
+Section More_Algebraic_Properties
+*)
+
+(*#*
+If we work with the limit function things fit in just as well.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Algebraic_Properties/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Algebraic_Properties/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Algebraic_Properties/g.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Algebraic_Properties/contf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Algebraic_Properties/contg.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Algebraic_Properties/Hf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Algebraic_Properties/Hg.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_plus_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_Cauchy_prop_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_inv_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_Cauchy_prop_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_minus_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_Cauchy_prop_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_Lim_seq_mult_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_Cauchy_prop_mult.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/ftc/MoreFunSeries/seq_to_funseq.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/funseq_conv.con" as lemma.
+
+(*#*
+Another interesting fact: if a sequence of constant functions converges then it must converge to a constant function.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_const_Lim.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Series_Definitions/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Series_Definitions/f.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_series_convergent_IR.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_series_conv_imp_conv_IR.con" as lemma.
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Series_Definitions/H.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_series_inc_IR.con" as lemma.
+
+(*#* Assume [h(x)] is the pointwise series of [f(x)] *)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/Series_Definitions/h.con" "Series_Definitions__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_strext_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_char.con" as lemma.
+
+(* UNEXPORTED
+End Series_Definitions
+*)
+
+(* UNEXPORTED
+Implicit Arguments FSeries_Sum [J f].
+*)
+
+(* UNEXPORTED
+Section More_Series_Definitions
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Series_Definitions/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/More_Series_Definitions/f.var
+*)
+
+(*#*
+Absolute convergence still exists.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_series_abs_convergent_IR.con" as definition.
+
+(* UNEXPORTED
+End More_Series_Definitions
+*)
+
+(* UNEXPORTED
+Section Convergence_Results
+*)
+
+(*#*
+As before, any series converges to its sum.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Convergence_Results/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Convergence_Results/f.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/FSeries_conv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/convergent_imp_inc.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/convergent_imp_Continuous.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/Continuous_FSeries_Sum.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Operations/J.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/conv_fun_const_series_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_const_series_Sum_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/conv_zero_fun_series_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_zero_IR.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Operations/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Operations/g.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_series_convergent_wd_IR.con" as lemma.
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Operations/convF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Operations/convG.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_wd'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_plus_conv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_inv_conv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_minus_conv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_minus.con" as lemma.
+
+(*#*
+%\begin{convention}% Let [c:IR] and [H:PartIR] be continuous in [J].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Operations/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Operations/H.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Operations/contH.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_scal_conv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/FSeries_Sum_scal.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Convergence_Criteria/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Convergence_Criteria/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Convergence_Criteria/contF.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_str_comparison_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_comparison_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/abs_imp_conv_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/fun_ratio_test_conv_IR.con" as lemma.
+
+(* 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}$#f<sub>i+1</sub># with
+$f_i$#f<sub>i</sub># and inserting the null function in the first 
+position.  This does not affect convergence or the sum of the series.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Insert_Series/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Insert_Series/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunSeries/Insert_Series/convF.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/insert_series.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/insert_series_cont.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/insert_series_sum_char.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/insert_series_conv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunSeries/insert_series_sum.con" as lemma.
+
+(* UNEXPORTED
+End Insert_Series
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/MoreFunctions.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/MoreFunctions.mma
new file mode 100644 (file)
index 0000000..89c1d2e
--- /dev/null
@@ -0,0 +1,778 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: MoreFunctions.v,v 1.5 2004/04/20 22:38:50 hinderer Exp $ *)
+
+(*#* printing FNorm %\ensuremath{\|\cdot\|_{\infty}}% *)
+
+include "ftc/MoreIntervals.ma".
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Basic_Results/I.var
+*)
+
+(*#*
+Trivial stuff.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_imp_inc.con" as lemma.
+
+(*#*
+%\begin{convention}% Assume that [I] is compact and [F] is continuous in [I].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Basic_Results/cI.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Basic_Results/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Basic_Results/contF.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/continuous_compact.con" as lemma.
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Basic_Results/Hinc.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_I_imp_tb_image.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/FNorm.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/FNorm_bnd_AbsIR.con" as lemma.
+
+(* UNEXPORTED
+End Basic_Results
+*)
+
+(* UNEXPORTED
+Hint Resolve Continuous_imp_inc: included.
+*)
+
+(* UNEXPORTED
+Section Other_Results
+*)
+
+(*#*
+The usual stuff.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Other_Results/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Other_Results/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Other_Results/G.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_wd.con" as lemma.
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Other_Results/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Other_Results/contG.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/included_imp_Continuous.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Included_imp_Continuous.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_const.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_id.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_nth.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_scal.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_abs.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_recip.con" as lemma.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Corollaries/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Corollaries/cI.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Corollaries/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Corollaries/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Corollaries/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Corollaries/contG.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_div.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/FNorm_wd.con" as lemma.
+
+(* UNEXPORTED
+End Corollaries
+*)
+
+(* UNEXPORTED
+Hint Resolve Continuous_div: continuous.
+*)
+
+(* UNEXPORTED
+Section Sums
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Sums/I.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_Sumx.con" as lemma.
+
+(*#*
+%\begin{convention}% Assume [f] is a sequence of continuous functions.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Sums/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Sums/contF.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_Sum0.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Continuous_Sum.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Basic_Properties/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Basic_Properties/pI.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Basic_Properties/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Basic_Properties/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Basic_Properties/H.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_wdl.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_wdr.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_unique.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_imp_inc.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_imp_inc'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_imp_Continuous.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_imp_Continuous'.con" as lemma.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Results/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Results/pI.var
+*)
+
+(*#*
+%\begin{convention}% Assume that [F'] and [G'] are derivatives of [F] and [G], respectively, in [I].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Results/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Results/F'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Results/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Results/G'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Results/derF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Results/derG.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/included_imp_Derivative.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Included_imp_Derivative.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_const.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_id.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_scal.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_nth.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_recip.con" as lemma.
+
+(* UNEXPORTED
+End More_Results
+*)
+
+(* UNEXPORTED
+Section More_Corollaries
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Corollaries/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Corollaries/pI.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Corollaries/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Corollaries/F'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Corollaries/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Corollaries/G'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Corollaries/derF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Corollaries/derG.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Corollaries/Gbnd.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_div.con" as lemma.
+
+(* UNEXPORTED
+End More_Corollaries
+*)
+
+(* UNEXPORTED
+Section More_Sums
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Sums/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Sums/pI.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_Sumx.con" as lemma.
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Sums/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Sums/f'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/More_Sums/derF.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_Sum0.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_Sum.con" as lemma.
+
+(* UNEXPORTED
+End More_Sums
+*)
+
+(* UNEXPORTED
+Section Diffble_Basic_Properties
+*)
+
+(*#* **Differentiability
+
+Mutatis mutandis for differentiability.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Diffble_Basic_Properties/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Diffble_Basic_Properties/pI.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_imp_inc.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_imp_Diffble.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_wd.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Diffble_Basic_Properties/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Diffble_Basic_Properties/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Diffble_Basic_Properties/diffF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Diffble_Basic_Properties/diffG.var
+*)
+
+(*#*
+%\begin{convention}% Assume [F] and [G] are differentiable in [I].
+%\end{convention}%
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/included_imp_Diffble.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Included_imp_Diffble.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_const.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_id.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_nth.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_scal.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_recip.con" as lemma.
+
+(* UNEXPORTED
+End Diffble_Basic_Properties
+*)
+
+(* UNEXPORTED
+Hint Immediate Diffble_imp_inc: included.
+*)
+
+(* UNEXPORTED
+Section Diffble_Corollaries
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Diffble_Corollaries/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Diffble_Corollaries/pI.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Diffble_Corollaries/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Diffble_Corollaries/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Diffble_Corollaries/diffF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Diffble_Corollaries/diffG.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_div.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_Sum0.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_Sumx.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_Sum.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Nth_Derivative/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Nth_Derivative/pI.var
+*)
+
+(* UNEXPORTED
+Section Definitions
+*)
+
+(*#*
+%\begin{convention}% Let [n:nat], [F:PartIR] and assume that [F] is n-times differentiable in [I].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Nth_Derivative/Definitions/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Nth_Derivative/Definitions/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Nth_Derivative/Definitions/diffF.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/N_Deriv_fun.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/N_Deriv_char
+ (* begin hide *).con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/N_Deriv_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/N_Deriv_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/N_Deriv.con" as definition.
+
+(* UNEXPORTED
+End Definitions
+*)
+
+(* UNEXPORTED
+Section Basic_Results
+*)
+
+(*#*
+All the usual results hold.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_n_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_n_wdr.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_n_wdl.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_n_unique.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_n_imp_Diffble.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_n_imp_Diffble.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/le_imp_Diffble_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_n_imp_le.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_n_imp_inc.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_n_imp_Diffble_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_n_imp_inc.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_n_imp_inc'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/included_imp_Derivative_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/included_imp_Diffble_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Included_imp_Derivative_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Included_imp_Diffble_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_n_plus.con" as lemma.
+
+(* UNEXPORTED
+End Basic_Results
+*)
+
+(* UNEXPORTED
+Section More_Results
+*)
+
+(*#*
+Some new results hold, too:
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/N_Deriv_Feq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/N_Deriv_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/N_Deriv_S.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/N_Deriv_plus.con" as lemma.
+
+(*#*
+Some useful characterization results.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_n_O.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_n_Sn.con" as lemma.
+
+(* UNEXPORTED
+End More_Results
+*)
+
+(* UNEXPORTED
+Section Derivating_Diffble
+*)
+
+(*#*
+As a special case we get a differentiation operator%\ldots%#...#
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Nth_Derivative/Derivating_Diffble/F.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreFunctions/Nth_Derivative/Derivating_Diffble/diffF.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Diffble_imp_Diffble_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Deriv.con" as definition.
+
+(* UNEXPORTED
+End Derivating_Diffble
+*)
+
+(* UNEXPORTED
+Section Corollaries
+*)
+
+(*#*
+%\ldots%#...# for which the expected property also holds.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Deriv_lemma.con" as lemma.
+
+(*#*
+Some more interesting properties.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_n_1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_n_chain.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_n_imp_Continuous.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreFunctions/Derivative_n_imp_Continuous'.con" as lemma.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/ftc/MoreIntegrals.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/MoreIntegrals.mma
new file mode 100644 (file)
index 0000000..5fe1daf
--- /dev/null
@@ -0,0 +1,364 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: MoreIntegrals.v,v 1.6 2004/04/23 10:00:59 lcf Exp $ *)
+
+include "ftc/Integral.ma".
+
+include "ftc/MoreFunctions.ma".
+
+(* UNEXPORTED
+Section Lemmas
+*)
+
+(*#* printing Integral %\ensuremath{\int}% #&int;# *)
+
+(*#* printing integral' %\ensuremath{\int}% #&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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Lemmas/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Lemmas/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Lemmas/Hab.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/compact_inc_Min_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/compact_inc_Min_rht.con" as lemma.
+
+(* 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$#&int;<sub>a</sub><sup>b</sup>f=&int;<sub>min(a,b)</sub><sup>b</sup>f-&int;<sub>min(a,b)</sub><sup>a</sup>f#,
+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].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Definitions/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Definitions/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Definitions/Hab.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Definitions/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Definitions/HF.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_inc1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_inc2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_integral.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Properties_of_Integral/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Properties_of_Integral/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Properties_of_Integral/Hab.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Properties_of_Integral/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Properties_of_Integral/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Properties_of_Integral/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Properties_of_Integral/contG.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_strext'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_wd'.con" as lemma.
+
+(*#*
+The integral is a linear operator.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_const.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_comm_scal.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/linear_Integral.con" as lemma.
+
+(*#*
+If the endpoints are equal then the integral vanishes.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_empty.con" as lemma.
+
+(*#*
+And the norm provides an upper bound for the absolute value of the integral.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_leEq_norm.con" as lemma.
+
+(* UNEXPORTED
+End Properties_of_Integral
+*)
+
+(* UNEXPORTED
+Section More_Properties
+*)
+
+(*#*
+Two other ways of stating the addition law for domains.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/integral_plus_Integral.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/integral_plus_integral'.con" as lemma.
+
+(*#*
+And now we can prove the addition law for domains with our general operator.
+
+%\begin{convention}% Assume [c : IR].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/More_Properties/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/More_Properties/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/More_Properties/c.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/More_Properties/Hab'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/More_Properties/Hac'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/More_Properties/Hcb'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/More_Properties/Habc'.var
+*)
+
+(* end show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/More_Properties/F.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/More_Properties/Hab.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/More_Properties/Hac.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/More_Properties/Hcb.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/More_Properties/Habc.var
+*)
+
+(* end show *)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/le_abc_ab.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/le_abc_ac.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/le_abc_cb.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/le_abc_a.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/le_abc_b.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/le_abc_c.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/le_ab_a.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/le_cb_c.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/le_ac_a.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/le_ab_b.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/le_cb_b.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/le_ac_c.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/Habc_abc.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/Habc_ab.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/Habc_ac.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/Habc_cb.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/Habc_a.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/Habc_b.con" "More_Properties__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/More_Properties/Habc_c.con" "More_Properties__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_plus_Integral.con" as lemma.
+
+(*#*
+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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Corollaries/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Corollaries/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Corollaries/Hab.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Corollaries/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntegrals/Corollaries/contF.var
+*)
+
+(*#* As a corollary, we get the following rule: *)
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_op.con" as lemma.
+
+(*#* Finally, some miscellaneous results: *)
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_less_norm.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/ub_Integral.con" as lemma.
+
+(* UNEXPORTED
+End Corollaries
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntegrals/Integral_eq_zero.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/MoreIntervals.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/MoreIntervals.mma
new file mode 100644 (file)
index 0000000..0b92263
--- /dev/null
@@ -0,0 +1,472 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: MoreIntervals.v,v 1.6 2004/04/23 10:00:59 lcf Exp $ *)
+
+include "ftc/NthDerivative.ma".
+
+(* UNEXPORTED
+Opaque Min Max.
+*)
+
+(* UNEXPORTED
+Section Intervals
+*)
+
+(*#* printing realline %\ensuremath{\RR}% #(-&infin;,+&infin;)# *)
+
+(*#* printing openl %\ensuremath{(\cdot,+\infty)}% #(&sdot;,+&infin;)# *)
+
+(*#* printing openr %\ensuremath{(-\infty,\cdot)}% #(-&infin;,&sdot;)# *)
+
+(*#* printing closel %\ensuremath{[\cdot,+\infty)}% #[&sdot;,+&infin;)# *)
+
+(*#* printing closer %\ensuremath{(-\infty,\cdot]}% #(-&infin;,&sdot;]# *)
+
+(*#* printing olor %\ensuremath{(\cdot,\cdot)}% #(&sdot;,&sdot;)# *)
+
+(*#* printing clor %\ensuremath{[\cdot,\cdot)}% #[&sdot;,&sdot;)# *)
+
+(*#* printing olcr %\ensuremath{(\cdot,\cdot]}% #(&sdot;,&sdot;]# *)
+
+(*#* printing clcr %\ensuremath{[\cdot,\cdot]}% #[&sdot;,&sdot;]# *)
+
+(*#* *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 procedural "cic:/CoRN/ftc/MoreIntervals/interval.ind".
+
+(*#*
+To each interval a predicate (set) is assigned by the following map:
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/iprop.con" as definition.
+
+(* begin hide *)
+
+(* COERCION
+cic:/matita/CoRN-Procedural/ftc/MoreIntervals/iprop.con
+*)
+
+(* end hide *)
+
+(*#*
+This map is made into a coercion, so that intervals
+%\emph{%#<i>#are%}%#</i># 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 procedural "cic:/CoRN/ftc/MoreIntervals/nonvoid.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/proper.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/finite.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_.con" as definition.
+
+(*#* Finite intervals have a left end and a right end. *)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/left_end.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/right_end.con" as definition.
+
+(*#*
+Some trivia: compact intervals are finite; proper intervals are nonvoid; an interval is nonvoid iff it contains some point.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_finite.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/proper_nonvoid.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/nonvoid_point.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/nonvoid_char.con" as lemma.
+
+(*#*
+For practical reasons it helps to define left end and right end of compact intervals.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Lend.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Rend.con" as definition.
+
+(*#* In a compact interval, the left end is always less than or equal
+to the right end.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Lend_leEq_Rend.con" as lemma.
+
+(*#*
+Some nice characterizations of inclusion:
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_included.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/included_interval'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/included_interval.con" as lemma.
+
+(*#*
+A weirder inclusion result.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/included3_interval.con" as lemma.
+
+(*#*
+Finally, all intervals are characterized by well defined predicates.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/iprop_wd.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Single_Compact_Interval/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Single_Compact_Interval/wdP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Single_Compact_Interval/x.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Single_Compact_Interval/Hx.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_single.con" as definition.
+
+(*#*
+This interval contains [x] and only (elements equal to) [x]; furthermore, for every (well-defined) [P], if $x\in P$#x&isin;P# then $[x,x]\subseteq P$#[x,x]&sube;P#.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_single_prop.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_single_pt.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_single_inc.con" as lemma.
+
+(* UNEXPORTED
+End Single_Compact_Interval
+*)
+
+(*#*
+The special case of intervals is worth singling out, as one of the hypothesis becomes a theorem.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_single_iprop.con" as definition.
+
+(*#*
+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&isin;[a,b]&sube;I#.
+*)
+
+(* UNEXPORTED
+Section Proper_Compact_with_One_or_Two_Points
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Proper_Compact_with_One_or_Two_Points/cip1'.con" "Compact_Constructions__Proper_Compact_with_One_or_Two_Points__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Proper_Compact_with_One_or_Two_Points/cip1''.con" "Compact_Constructions__Proper_Compact_with_One_or_Two_Points__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Proper_Compact_with_One_or_Two_Points/cip1'''.con" "Compact_Constructions__Proper_Compact_with_One_or_Two_Points__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Proper_Compact_with_One_or_Two_Points/cip1''''.con" "Compact_Constructions__Proper_Compact_with_One_or_Two_Points__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Proper_Compact_with_One_or_Two_Points/cip2.con" "Compact_Constructions__Proper_Compact_with_One_or_Two_Points__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Proper_Compact_with_One_or_Two_Points/cip2'.con" "Compact_Constructions__Proper_Compact_with_One_or_Two_Points__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Proper_Compact_with_One_or_Two_Points/cip2''.con" "Compact_Constructions__Proper_Compact_with_One_or_Two_Points__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Proper_Compact_with_One_or_Two_Points/cip2'''.con" "Compact_Constructions__Proper_Compact_with_One_or_Two_Points__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Proper_Compact_with_One_or_Two_Points/cip3.con" "Compact_Constructions__Proper_Compact_with_One_or_Two_Points__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Proper_Compact_with_One_or_Two_Points/cip3'.con" "Compact_Constructions__Proper_Compact_with_One_or_Two_Points__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Proper_Compact_with_One_or_Two_Points/cip3''.con" "Compact_Constructions__Proper_Compact_with_One_or_Two_Points__" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Compact_Constructions/Proper_Compact_with_One_or_Two_Points/cip3'''.con" "Compact_Constructions__Proper_Compact_with_One_or_Two_Points__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_in_interval.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_compact_in_interval.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/proper_compact_in_interval.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/proper_compact_in_interval'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/included_compact_in_interval.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval_inc1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval_inc2.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/MoreIntervals/compact_in_interval_wd1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_in_interval_wd2.con" as lemma.
+
+(*#*
+We can make an analogous construction for two points.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_in_interval2.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_compact_in_interval2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/proper_compact_in_interval2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/proper_compact_in_interval2'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/included_compact_in_interval2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval2x.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval2y.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval2x'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval2y'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval2_inc1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/iprop_compact_in_interval2_inc2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_in_interval_x_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_in_interval_y_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_in_interval_x_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_in_interval_y_rht.con" as lemma.
+
+(* UNEXPORTED
+End Proper_Compact_with_One_or_Two_Points
+*)
+
+(*#*
+Compact intervals are exactly compact intervals(!).
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/interval_compact_inc.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_interval_inc.con" as lemma.
+
+(*#*
+A generalization of the previous results: if $[a,b]\subseteq J$#[a,b]&sube;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]&sube;[a',b']&sube;J#.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/compact_proper_in_interval.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntervals/Functions/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/MoreIntervals/Functions/I.var
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Continuous.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Derivative.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Diffble.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Derivative_n.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Diffble_n.con" as definition.
+
+(* UNEXPORTED
+End Functions
+*)
+
+(* UNEXPORTED
+Section Reflexivity_Properties
+*)
+
+(*#*
+In the case of compact intervals, this definitions collapse to the old ones.
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Continuous_Int.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Int_Continuous.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Derivative_Int.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Int_Derivative.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Diffble_Int.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/Int_Diffble.con" as lemma.
+
+(* UNEXPORTED
+End Reflexivity_Properties
+*)
+
+(* UNEXPORTED
+Section Lemmas
+*)
+
+(*#*
+Interestingly, inclusion and equality in an interval are also characterizable in a similar way:
+*)
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/included_imp_inc.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/included_Feq''.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/MoreIntervals/included_Feq'.con" as lemma.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/ftc/NthDerivative.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/NthDerivative.mma
new file mode 100644 (file)
index 0000000..064989e
--- /dev/null
@@ -0,0 +1,330 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: NthDerivative.v,v 1.5 2004/04/20 22:38:50 hinderer Exp $ *)
+
+include "ftc/Differentiability.ma".
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/NthDerivative/Nth_Derivative/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/NthDerivative/Nth_Derivative/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/NthDerivative/Nth_Derivative/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Nth_Derivative/Hab.con" "Nth_Derivative__" as definition.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Nth_Derivative/I.con" "Nth_Derivative__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Derivative_I_n.con" as definition.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/NthDerivative/Diffble_I_n.con" as definition.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/NthDerivative/Trivia/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/NthDerivative/Trivia/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/NthDerivative/Trivia/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Trivia/Hab.con" "Trivia__" as definition.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Trivia/I.con" "Trivia__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Diffble_I_n_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Derivative_I_n_wdr.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Derivative_I_n_wdl.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Derivative_I_n_unique.con" as lemma.
+
+(* 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].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/NthDerivative/Basic_Results/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/NthDerivative/Basic_Results/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/NthDerivative/Basic_Results/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Basic_Results/Hab.con" "Basic_Results__" as definition.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Basic_Results/I.con" "Basic_Results__" as definition.
+
+(* end hide *)
+
+(*#*
+We begin by showing that having a higher order derivative implies being differentiable.
+*)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Diffble_I_n_imp_diffble.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/deriv_n_imp_diffble.con" as lemma.
+
+(*#*
+If a function is [n] times differentiable then it is also [m] times differentiable for every [m] less or equal than [n].
+*)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/le_imp_Diffble_I.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/NthDerivative/Diffble_I_imp_le.con" as lemma.
+
+(*#*
+As expected, an [n] times differentiable in [[a,b]] function must be
+defined in that interval.
+*)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Diffble_I_n_imp_inc.con" as lemma.
+
+(*#*
+Also, the notions of derivative and differentiability are related as expected.
+*)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Diffble_I_n_imp_deriv_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/deriv_n_imp_Diffble_I_n.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/NthDerivative/Derivative_I_n_imp_inc.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Derivative_I_n_imp_inc'.con" as lemma.
+
+(* UNEXPORTED
+Section aux
+*)
+
+(*#*
+First order differentiability is just a special case.
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/NthDerivative/Basic_Results/aux/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/NthDerivative/Basic_Results/aux/diffF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/NthDerivative/Basic_Results/aux/diffFn.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/deriv_1_deriv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/deriv_1_deriv'.con" as lemma.
+
+(* UNEXPORTED
+End aux
+*)
+
+(*#*
+As usual, nth order derivability is preserved by shrinking the interval.
+*)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/included_imp_deriv_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/included_imp_diffble_n.con" as lemma.
+
+(*#*
+And finally we have an addition rule for the order of the derivative.
+*)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/Derivative_I_n_plus.con" as lemma.
+
+(* UNEXPORTED
+End Basic_Results
+*)
+
+(* UNEXPORTED
+Section More_Results
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/NthDerivative/More_Results/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/NthDerivative/More_Results/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/NthDerivative/More_Results/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/More_Results/Hab.con" "More_Results__" as definition.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/More_Results/I.con" "More_Results__" as definition.
+
+(* 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 procedural "cic:/CoRN/ftc/NthDerivative/n_deriv_I.con" as definition.
+
+(*#*
+This operator is well defined and works as expected.
+*)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/n_deriv_I_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/n_deriv_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/n_deriv_inc.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/n_deriv_inc'.con" as lemma.
+
+(*#*
+Some basic properties of this operation.
+*)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/n_Sn_deriv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/n_deriv_plus.con" as lemma.
+
+(* UNEXPORTED
+End More_Results
+*)
+
+(* UNEXPORTED
+Section More_on_n_deriv
+*)
+
+(*#*
+Some not so basic properties of this operation (needed in rather specific situations).
+*)
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/n_deriv_I_wd'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/n_deriv_I_wd''.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/NthDerivative/n_deriv_I_strext'.con" as lemma.
+
+(* UNEXPORTED
+End More_on_n_deriv
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/PartFunEquality.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/PartFunEquality.mma
new file mode 100644 (file)
index 0000000..98b19c4
--- /dev/null
@@ -0,0 +1,473 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: PartFunEquality.v,v 1.8 2004/04/23 10:00:59 lcf Exp $ *)
+
+(*#* printing Feq %\ensuremath{\approx}% #&asymp;# *)
+
+include "reals/Intervals.ma".
+
+include "tactics/DiffTactics1.ma".
+
+(* 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 procedural "cic:/CoRN/ftc/PartFunEquality/subset.con" as definition.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/PartFunEquality/Feq.con" as definition.
+
+(*#*
+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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Equality_Results/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Equality_Results/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Equality_Results/G.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Equality_Results/P.con" "Equality_Results__" as definition.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Equality_Results/Q.con" "Equality_Results__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Equality_Results/R.var
+*)
+
+(*#*
+We start with two lemmas which make it much easier to prove and use
+this definition:
+*)
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/eq_imp_Feq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Feq_imp_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/included_IR.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/ftc/PartFunEquality/included_Feq.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Away_from_Zero/Definitions/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Away_from_Zero/Definitions/F.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Away_from_Zero/Definitions/P.con" "Away_from_Zero__Definitions__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/bnd_away_zero.con" as definition.
+
+(*#*
+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 *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Away_from_Zero/Definitions/Hf.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/bnd_imp_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/bnd_imp_inc_recip.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/bnd_imp_inc_div.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Away_from_Zero/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Away_from_Zero/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Away_from_Zero/Q.var
+*)
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/included_imp_bnd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/FRestr_bnd.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/PartFunEquality/bnd_away_zero_everywhere.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/bnd_away_zero_in_P.con" as definition.
+
+(*#*
+An immediate consequence:
+*)
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/bnd_in_P_imp_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/FRestr_bnd'.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/More_on_Equality/I.var
+*)
+
+(* UNEXPORTED
+Section Feq_Equivalence
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/More_on_Equality/Feq_Equivalence/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/More_on_Equality/Feq_Equivalence/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/More_on_Equality/Feq_Equivalence/H.var
+*)
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Feq_reflexive.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Feq_symmetric.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Feq_transitive.con" as lemma.
+
+(* UNEXPORTED
+End Feq_Equivalence
+*)
+
+(* UNEXPORTED
+Section Operations
+*)
+
+(*#*
+Also it is preserved through application of functional constructors and restriction.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/More_on_Equality/Operations/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/More_on_Equality/Operations/F'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/More_on_Equality/Operations/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/More_on_Equality/Operations/G'.var
+*)
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Feq_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Feq_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Feq_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Feq_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Feq_nth.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Feq_recip.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Feq_recip'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Feq_div.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Feq_div'.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/PartFunEquality/FRestr_wd.con" as lemma.
+
+(*#*
+The image of a set is extensional.
+*)
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/fun_image_wd.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Nth_Power/F.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Nth_Power/P.con" "Nth_Power__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Nth_Power/Q.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Nth_Power/H.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Nth_Power/Hf.var
+*)
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/FNth_zero.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Nth_Power/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Nth_Power/H'.var
+*)
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/FNth_mult.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Strong_Nth_Power/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Strong_Nth_Power/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Strong_Nth_Power/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/Strong_Nth_Power/I.con" "Strong_Nth_Power__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Strong_Nth_Power/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartFunEquality/Strong_Nth_Power/incF.var
+*)
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/FNth_zero'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartFunEquality/FNth_mult'.con" as lemma.
+
+(* UNEXPORTED
+End Strong_Nth_Power
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/PartInterval.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/PartInterval.mma
new file mode 100644 (file)
index 0000000..6f3197b
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: PartInterval.v,v 1.6 2004/04/23 10:01:00 lcf Exp $ *)
+
+include "ftc/IntervalFunct.ma".
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Conversion/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Conversion/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Conversion/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Conversion/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/PartInterval/Conversion/I.con" "Conversion__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Conversion/Hf.var
+*)
+
+inline procedural "cic:/CoRN/ftc/PartInterval/IntPartIR_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartInterval/IntPartIR.con" as definition.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/AntiConversion/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/AntiConversion/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/AntiConversion/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/PartInterval/AntiConversion/I.con" "AntiConversion__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/AntiConversion/f.var
+*)
+
+inline procedural "cic:/CoRN/ftc/PartInterval/PartInt_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartInterval/PartInt.con" as definition.
+
+(* UNEXPORTED
+End AntiConversion
+*)
+
+(* UNEXPORTED
+Implicit Arguments PartInt [a b Hab].
+*)
+
+(* UNEXPORTED
+Section Inverses
+*)
+
+(*#*
+In one direction these operators are inverses.
+*)
+
+inline procedural "cic:/CoRN/ftc/PartInterval/int_part_int.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Equivalences/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Equivalences/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Equivalences/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Equivalences/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Equivalences/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Equivalences/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/PartInterval/Equivalences/I.con" "Equivalences__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Equivalences/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Equivalences/g.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Equivalences/Ff.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Equivalences/Gg.var
+*)
+
+inline procedural "cic:/CoRN/ftc/PartInterval/part_int_const.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartInterval/part_int_id.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartInterval/part_int_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartInterval/part_int_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartInterval/part_int_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartInterval/part_int_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartInterval/part_int_nth.con" as lemma.
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Equivalences/HG.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/PartInterval/Equivalences/Hg.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/PartInterval/part_int_recip.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/PartInterval/part_int_div.con" as lemma.
+
+(* UNEXPORTED
+End Equivalences
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/Partitions.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/Partitions.mma
new file mode 100644 (file)
index 0000000..b4a8424
--- /dev/null
@@ -0,0 +1,560 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Partitions.v,v 1.7 2004/04/23 10:01:00 lcf Exp $ *)
+
+include "ftc/Continuity.ma".
+
+(*#* printing Partition_Sum %\ensuremath{\sum_P}% #&sum;<sub>P</sub># *)
+
+(* 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 procedural "cic:/CoRN/ftc/Partitions/Partition.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/ftc/Partitions/Pts.con
+*)
+
+(*#* Two immediate consequences of this are that [ai [<=] aj] whenever
+[i < j] and that [ai] is in [[a,b]] for all [i].
+*)
+
+inline procedural "cic:/CoRN/ftc/Partitions/Partition_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Partitions/Partition_in_compact.con" as lemma.
+
+(*#*
+Each partition of [[a,b]] implies a partition of the interval
+$[a,a_{n-1}]$#[a,a<sub>n-1</sub>]#.  This partition will play an
+important role in much of our future work, so we take some care to
+define it.
+*)
+
+inline procedural "cic:/CoRN/ftc/Partitions/part_pred_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Partitions/Partition_Dom.con" as definition.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/Partitions/Part_Mesh_List.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/Partitions/Mesh.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/Partitions/AntiMesh.con" as definition.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/Partitions/even_part_1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Partitions/even_part_2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Partitions/Even_Partition.con" as definition.
+
+(* UNEXPORTED
+Section Refinements
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Definitions/Refinements/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Definitions/Refinements/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Definitions/Refinements/Hab.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Definitions/Refinements/m.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Definitions/Refinements/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Definitions/Refinements/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Definitions/Refinements/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 procedural "cic:/CoRN/ftc/Partitions/Refinement.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/Partitions/Refinement_prop.con" as lemma.
+
+(*#*
+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(x<sub>i</sub>)(a<sub>i+1</sub>-a<sub>i</sub>)# where
+$x_i\in[a_i,a_{i+1}]$#x<sub>i</sub>&isin;[a<sub>i</sub>,a<sub>i+1</sub>]#.
+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 procedural "cic:/CoRN/ftc/Partitions/Points_in_Partition.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/Partitions/Pts_part_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Partitions/Partition_Sum.con" as definition.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Definitions/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Definitions/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Definitions/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Partitions/Definitions/I.con" "Definitions__" as definition.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Definitions/Getting_Points/m.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Definitions/Getting_Points/Q.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Partitions/Partition_imp_points.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/Partitions/Partition_imp_points_1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Partitions/Partition_imp_points_2.con" as lemma.
+
+(* 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]].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Definitions/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Definitions/contF.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Partitions/Even_Partition_Sum.con" as definition.
+
+(* 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 procedural "cic:/CoRN/ftc/Partitions/length_Part_Mesh_List.con" as lemma.
+
+(*#*
+Any element of the auxiliary list defined to calculate the mesh of a partition has a very specific form.
+*)
+
+inline procedural "cic:/CoRN/ftc/Partitions/Part_Mesh_List_lemma.con" as lemma.
+
+(*#*
+Mesh and antimesh are always nonnegative.
+*)
+
+inline procedural "cic:/CoRN/ftc/Partitions/Mesh_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Partitions/AntiMesh_nonneg.con" as lemma.
+
+(*#*
+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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Lemmas/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Lemmas/b.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Partitions/Lemmas/I.con" "Lemmas__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Lemmas/Hab.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Lemmas/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Lemmas/P.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Partitions/Mesh_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Partitions/AntiMesh_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Partitions/Mesh_leEq.con" as lemma.
+
+(* UNEXPORTED
+End Lemmas
+*)
+
+(* UNEXPORTED
+Section Even_Partitions
+*)
+
+(*#* More technical stuff.  Two equal partitions have the same mesh.
+*)
+
+inline procedural "cic:/CoRN/ftc/Partitions/Mesh_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Partitions/Mesh_wd'.con" as lemma.
+
+(*#*
+The mesh of an even partition is easily calculated.
+*)
+
+inline procedural "cic:/CoRN/ftc/Partitions/even_partition_Mesh.con" as lemma.
+
+(*#* ** Miscellaneous
+%\begin{convention}% Throughout this section, let [a,b:IR] and [I] be [[a,b]].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Even_Partitions/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Even_Partitions/b.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Partitions/Even_Partitions/I.con" "Even_Partitions__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Even_Partitions/Hab.var
+*)
+
+(*#*
+An interesting property: in a partition, if [ai [<] aj] then [i < j].
+*)
+
+inline procedural "cic:/CoRN/ftc/Partitions/Partition_Points_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Partitions/refinement_resp_mult.con" as lemma.
+
+(*#*
+%\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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Even_Partitions/m.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Even_Partitions/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Even_Partitions/Hm.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Even_Partitions/Hn.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Partitions/Even_Partitions/P.con" "Even_Partitions__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Partitions/Even_Partitions/Q.con" "Even_Partitions__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/Partitions/even_partition_refinement.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/More_Definitions/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/More_Definitions/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/More_Definitions/Hab.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Partitions/_Separated.con" as definition.
+
+(*#*
+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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/More_Definitions/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/More_Definitions/m.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/More_Definitions/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/More_Definitions/Q.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Partitions/Separated.con" as definition.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Sep_Partitions/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Sep_Partitions/b.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Partitions/Sep_Partitions/I.con" "Sep_Partitions__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Partitions/Sep_Partitions/Hab.var
+*)
+
+(*#*
+The antimesh of a separated partition is always positive.
+*)
+
+inline procedural "cic:/CoRN/ftc/Partitions/pos_AntiMesh.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/ftc/Partitions/partition_length_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Partitions/_Separated_imp_length_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Partitions/partition_less_imp_gt_zero.con" as lemma.
+
+(* UNEXPORTED
+End Sep_Partitions
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/RefLemma.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/RefLemma.mma
new file mode 100644 (file)
index 0000000..932d40d
--- /dev/null
@@ -0,0 +1,749 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: RefLemma.v,v 1.7 2004/04/23 10:01:00 lcf Exp $ *)
+
+include "ftc/RefSeparating.ma".
+
+include "ftc/RefSeparated.ma".
+
+include "ftc/RefSepRef.ma".
+
+(* 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{%#<b>#Theorem#</b>#%}% 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)-&int;f(x)dx|&le;&epsilon;(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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/I.con" "Refinement_Lemma__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/incF.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/contF'.con" "Refinement_Lemma__" as definition.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/e.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/He.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/d.con" "Refinement_Lemma__First_Refinement_Lemma__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/m.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/HMesh.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/Q.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/Href.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/fP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/HfP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/HfP'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/fQ.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/HfQ.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/HfQ'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/sub.con" "Refinement_Lemma__First_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_sub_0.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_sub_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_sub_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_sub_mon'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_sub_hyp.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_sub_S.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/H.con" "Refinement_Lemma__First_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/H'.con" "Refinement_Lemma__First_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/First_Refinement_Lemma/H0.con" "Refinement_Lemma__First_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_sub_SS.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_h.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_g.con" as definition.
+
+(* NOTATION
+Notation g := RL_g.
+*)
+
+(* NOTATION
+Notation h := RL_h.
+*)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/ref_calc1.con" as lemma.
+
+(* NOTATION
+Notation just1 := (incF _ (Pts_part_lemma _ _ _ _ _ _ HfP _ _)).
+*)
+
+(* NOTATION
+Notation just2 := (incF _ (Pts_part_lemma _ _ _ _ _ _ HfQ _ _)).
+*)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/ref_calc2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/ref_calc3.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/ref_calc4.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/ref_calc5.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/ref_calc6.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/ref_calc7.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/ref_calc8.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/first_refinement_lemma.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/j.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/k.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/Q.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/R.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/HrefP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/HrefR.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/e.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/e'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/He.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/He'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/d.con" "Refinement_Lemma__Second_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/d'.con" "Refinement_Lemma__Second_Refinement_Lemma__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/HMeshP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/HMeshR.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/fP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/HfP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/HfP'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/fR.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/HfR.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Second_Refinement_Lemma/HfR'.var
+*)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/second_refinement_lemma.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/m.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/R.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/e.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/e'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/He.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/He'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/d.con" "Refinement_Lemma__Third_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/d'.con" "Refinement_Lemma__Third_Refinement_Lemma__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/HMeshP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/HMeshR.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/fP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/HfP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/HfP'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/fR.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/HfR.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/HfR'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/Hab'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/beta.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/Hbeta.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/alpha.con" "Refinement_Lemma__Third_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_alpha.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/csi1.con" "Refinement_Lemma__Third_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_csi1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/delta1.con" "Refinement_Lemma__Third_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_delta1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/P'.con" "Refinement_Lemma__Third_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_P'_sep.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_P'_Mesh.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/fP'.con" "Refinement_Lemma__Third_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_fP'_in_P'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_P'_P_sum.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/csi2.con" "Refinement_Lemma__Third_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_csi2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/delta2.con" "Refinement_Lemma__Third_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_delta2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/R'.con" "Refinement_Lemma__Third_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_R'_sep.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_R'_Mesh.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/fR'.con" "Refinement_Lemma__Third_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_fR'_in_R'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_R'_R_sum.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/csi3.con" "Refinement_Lemma__Third_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_csi3.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/Q.con" "Refinement_Lemma__Third_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_Q_Mesh.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_Q_sep.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Third_Refinement_Lemma/fQ.con" "Refinement_Lemma__Third_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_fQ_in_Q.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_Q_P'_sum.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/third_refinement_lemma.con" as lemma.
+
+(* UNEXPORTED
+End Third_Refinement_Lemma
+*)
+
+(* UNEXPORTED
+Section Fourth_Refinement_Lemma
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/Fa.con" "Refinement_Lemma__Fourth_Refinement_Lemma__" as definition.
+
+(* NOTATION
+Notation just := (fun z => incF _ (Pts_part_lemma _ _ _ _ _ _ z _ _)).
+*)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/RL_sum_lemma_aux.con" as lemma.
+
+(* end hide *)
+
+(*#*
+Finally, this is inequality (2.6.7) exactly as stated (same conventions as
+above)
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/m.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/R.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/e.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/e'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/He.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/He'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/d.con" "Refinement_Lemma__Fourth_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/d'.con" "Refinement_Lemma__Fourth_Refinement_Lemma__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/HMeshP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/HMeshR.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/fP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/HfP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/HfP'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/fR.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/HfR.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/HfR'.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Fourth_Refinement_Lemma/Hab'.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/fourth_refinement_lemma.con" as lemma.
+
+(* UNEXPORTED
+End Fourth_Refinement_Lemma
+*)
+
+(* UNEXPORTED
+Section Main_Refinement_Lemma
+*)
+
+(*#* We finish by presenting Theorem 9. *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/m.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/R.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/e.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/e'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/He.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/He'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/d.con" "Refinement_Lemma__Main_Refinement_Lemma__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/d'.con" "Refinement_Lemma__Main_Refinement_Lemma__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/HMeshP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/HMeshR.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/fP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/HfP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/HfP'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/fR.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/HfR.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefLemma/Refinement_Lemma/Main_Refinement_Lemma/HfR'.var
+*)
+
+inline procedural "cic:/CoRN/ftc/RefLemma/refinement_lemma.con" as lemma.
+
+(* UNEXPORTED
+End Main_Refinement_Lemma
+*)
+
+(* UNEXPORTED
+End Refinement_Lemma
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/RefSepRef.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/RefSepRef.mma
new file mode 100644 (file)
index 0000000..93c80f6
--- /dev/null
@@ -0,0 +1,168 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: RefSepRef.v,v 1.6 2004/04/23 10:01:00 lcf Exp $ *)
+
+(* begin hide *)
+
+include "ftc/COrdLemmas.ma".
+
+include "ftc/Partitions.ma".
+
+(* UNEXPORTED
+Section Refining_Separated
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSepRef/Refining_Separated/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSepRef/Refining_Separated/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSepRef/Refining_Separated/Hab.var
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/Refining_Separated/I.con" "Refining_Separated__" as definition.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSepRef/Refining_Separated/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSepRef/Refining_Separated/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSepRef/Refining_Separated/incF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSepRef/Refining_Separated/m.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSepRef/Refining_Separated/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSepRef/Refining_Separated/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSepRef/Refining_Separated/R.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSepRef/Refining_Separated/HPR.var
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_HP.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_HP'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_HR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_HR'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_mn0.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_nm0.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_H'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/Refining_Separated/f'.con" "Refining_Separated__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/Refining_Separated/g'.con" "Refining_Separated__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_f'_nlnf.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_g'_nlnf.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_f'_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_g'_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_f'_ap_g'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/Refining_Separated/h.con" "Refining_Separated__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_h_nlnf.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_h_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_h_mon'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_h_f'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_h_g'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_h_PropAll.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_h_PropEx.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/Separated_Refinement_fun.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/Separated_Refinement_lemma1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/Separated_Refinement_lemma3.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/Separated_Refinement_lemma4.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/Separated_Refinement_lemma2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/Separated_Refinement.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_auxP.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_auxR.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_auxP_lemma0.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_h_inj.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_auxP_lemmai.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_auxP_lemman.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_auxP_lemma1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_auxP_lemma2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/Separated_Refinement_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_auxR_lemma0.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_auxR_lemmai.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_auxR_lemmam.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_auxR_lemma1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/RSR_auxR_lemma2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSepRef/Separated_Refinement_rht.con" as lemma.
+
+(* UNEXPORTED
+End Refining_Separated
+*)
+
+(* end hide *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/RefSeparated.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/RefSeparated.mma
new file mode 100644 (file)
index 0000000..d74e1bd
--- /dev/null
@@ -0,0 +1,225 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: RefSeparated.v,v 1.8 2004/04/23 10:01:00 lcf Exp $ *)
+
+(* begin hide *)
+
+include "ftc/COrdLemmas.ma".
+
+include "ftc/Partitions.ma".
+
+(* UNEXPORTED
+Section Separating__Separated
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/Hab.var
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/Separating__Separated/I.con" "Separating__Separated__" as definition.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/incF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/Hab'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/m.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/R.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/HP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/HR.var
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/RS_pos_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/RS_pos_m.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/alpha.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/Halpha.var
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/Separating__Separated/e.con" "Separating__Separated__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/RS_He.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/Separating__Separated/contF'.con" "Separating__Separated__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/Separating__Separated/d.con" "Separating__Separated__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/RS_Hd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/RS_Hd'.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/csi.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/Hcsi.var
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/Separating__Separated/M.con" "Separating__Separated__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/Separating__Separated/deltaP.con" "Separating__Separated__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/Separating__Separated/deltaR.con" "Separating__Separated__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/Separating__Separated/delta.con" "Separating__Separated__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/RS_delta_deltaP.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/RS_delta_deltaR.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/RS_delta_csi.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/RS_delta_d.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/RS_delta_pos.con" as lemma.
+
+(* UNEXPORTED
+Section Defining_ai'
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/Defining_ai'/i.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/Defining_ai'/Hi.var
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/separation_conseq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/Separating__Separated/Defining_ai'/pred1.con" "Separating__Separated__Defining_ai'__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/Separating__Separated/Defining_ai'/pred2.con" "Separating__Separated__Defining_ai'__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_aux_lemma.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/Defining_ai'/Hi0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/Defining_ai'/Hin.var
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_fun_i.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_less.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_ap.con" as lemma.
+
+(* UNEXPORTED
+End Defining_ai'
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_fun.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_fun_i_delta.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_fun_delta.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_mon_i.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_fun_i_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_fun_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_part.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_lemma.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/g.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparated/Separating__Separated/gP.var
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_points.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_points_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_aux.con" as lemma.
+
+(* NOTATION
+Notation just1 := (incF _ (Pts_part_lemma _ _ _ _ _ _ gP _ _)).
+*)
+
+(* NOTATION
+Notation just2 :=
+  (incF _ (Pts_part_lemma _ _ _ _ _ _ sep__sep_points_lemma _ _)).
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_Sum.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparated/sep__sep_Mesh.con" as lemma.
+
+(* UNEXPORTED
+End Separating__Separated
+*)
+
+(* end hide *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/RefSeparating.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/RefSeparating.mma
new file mode 100644 (file)
index 0000000..c52b729
--- /dev/null
@@ -0,0 +1,217 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: RefSeparating.v,v 1.7 2004/04/23 10:01:01 lcf Exp $ *)
+
+(* begin hide *)
+
+include "ftc/COrdLemmas.ma".
+
+include "ftc/Partitions.ma".
+
+(* UNEXPORTED
+Section Separating_Partition
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/Hab.var
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/Separating_Partition/I.con" "Separating_Partition__" as definition.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/contF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/incF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/Hab'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/P.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/alpha.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/Halpha.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/csi.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/Hcsi.var
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/Separating_Partition/M.con" "Separating_Partition__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/RS'_pos_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/SPap_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/Separating_Partition/delta.con" "Separating_Partition__" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/RS'_delta_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/RS'_delta_csi.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/Hab''.var
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_h.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_h_bnd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_h_mon_1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_h_mon_2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_h_mon_3.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_app_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_h_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_h_lemma2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_h_lemma3.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/RS'_delta2_delta4.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/RS'_m1.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/RS'_m.con" as definition.
+
+(* NOTATION
+Notation m := RS'_m.
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_length.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/RS'_m_m1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/RS'_pos_m.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_fun.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_fun_bnd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_fun_0.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_fun_i.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_fun_m.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_fun_i'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_fun_bnd'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_fun_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_fun_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_fun_mon_pts.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_mon_Mesh.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/g.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/gP.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/RefSeparating/Separating_Partition/gP'.var
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_pts.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_pts_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_pts_in_Partition.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/RS'_Hsep_S.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/RS'_Hsep.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/RS'_h.con" as definition.
+
+(* 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 _ _)).
+*)
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_suRS'_m1.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_Sum2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_Sum3.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_Sum4.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_aux.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/RefSeparating/sep__part_Sum.con" as lemma.
+
+(* UNEXPORTED
+End Separating_Partition
+*)
+
+(* end hide *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/Rolle.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/Rolle.mma
new file mode 100644 (file)
index 0000000..d9ba262
--- /dev/null
@@ -0,0 +1,342 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Rolle.v,v 1.6 2004/04/23 10:01:01 lcf Exp $ *)
+
+include "tactics/DiffTactics2.ma".
+
+include "ftc/MoreFunctions.ma".
+
+(* 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 *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Rolle/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Rolle/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Rolle/Hab'.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Hab.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/I.con" "Rolle__" as definition.
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Rolle/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Rolle/F'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Rolle/derF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Rolle/Ha.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Rolle/Hb.var
+*)
+
+(* end hide *)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Rolle/Fab.var
+*)
+
+(* end show *)
+
+(* begin hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Rolle/e.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Rolle/He.var
+*)
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/contF'.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/derivF.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Rolle_lemma2.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/df.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Hdf.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Hf.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Rolle_lemma3.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/df'.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Hdf'.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Hf'.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/d.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Hd.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/incF.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/n.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/fcp.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Rolle_lemma1.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/incF'.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/fcp'.con" "Rolle__" as definition.
+
+(* NOTATION
+Notation cp := (compact_part a b Hab' d Hd).
+*)
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Rolle_lemma4.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Rolle_lemma5.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Rolle_lemma6.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Rolle_lemma7.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/j.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Hj.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Hj'.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/k.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Hk.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Hk'.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Rolle_lemma8.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Rolle_lemma9.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Rolle_lemma10.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Rolle_lemma11.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Rolle_lemma12.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Rolle_lemma13.con" "Rolle__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle/Rolle_lemma15.con" "Rolle__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle.con" as theorem.
+
+(* UNEXPORTED
+End Rolle
+*)
+
+(* UNEXPORTED
+Section Law_of_the_Mean
+*)
+
+(*#*
+The following is a simple corollary:
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Law_of_the_Mean/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Law_of_the_Mean/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Law_of_the_Mean/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Rolle/Law_of_the_Mean/Hab.con" "Law_of_the_Mean__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Law_of_the_Mean/I.con" "Law_of_the_Mean__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Law_of_the_Mean/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Law_of_the_Mean/F'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Law_of_the_Mean/HF.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Law_of_the_Mean/HA.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Law_of_the_Mean/HB.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/Rolle/Law_of_the_Mean_I.con" as lemma.
+
+(* UNEXPORTED
+End Law_of_the_Mean
+*)
+
+(* UNEXPORTED
+Section Corollaries
+*)
+
+(*#*
+We can also state these theorems without expliciting the derivative of [F].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Corollaries/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Corollaries/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Corollaries/Hab'.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Rolle/Corollaries/Hab.con" "Corollaries__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Corollaries/F.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Corollaries/HF.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/Rolle/Rolle'.con" as theorem.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Law_of_the_Mean'_I.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Generalizations/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Generalizations/pI.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Generalizations/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Generalizations/F'.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Rolle/Generalizations/derF.var
+*)
+
+(* end show *)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Rolle/Generalizations/incF.con" "Generalizations__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Rolle/Generalizations/incF'.con" "Generalizations__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/Rolle/Law_of_the_Mean.con" as theorem.
+
+(*#*
+We further generalize the mean law by writing as an explicit bound.
+*)
+
+inline procedural "cic:/CoRN/ftc/Rolle/Law_of_the_Mean_ineq.con" as theorem.
+
+(* UNEXPORTED
+End Generalizations
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/StrongIVT.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/StrongIVT.mma
new file mode 100644 (file)
index 0000000..c964d74
--- /dev/null
@@ -0,0 +1,182 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: StrongIVT.v,v 1.5 2004/04/23 10:01:01 lcf Exp $ *)
+
+include "ftc/WeakIVT.ma".
+
+include "ftc/CalculusTheorems.ma".
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/StrongIVT/IVT'/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/StrongIVT/IVT'/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/StrongIVT/IVT'/Hab'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/StrongIVT/IVT'/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT'/I.con" "IVT'__" as definition.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT'/I'.con" "IVT'__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/StrongIVT/IVT'/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/StrongIVT/IVT'/contF.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT'/incF.con" "IVT'__" as definition.
+
+(* end hide *)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/StrongIVT/IVT'/incrF.var
+*)
+
+(* end show *)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT'/Ha.con" "IVT'__" as definition.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT'/Hb.con" "IVT'__" as definition.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT'/HFab'.con" "IVT'__" as definition.
+
+(* end hide *)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/StrongIVT/IVT'/z.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/StrongIVT/IVT'/Haz.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/StrongIVT/IVT'/Hzb.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT'_seq_lemma.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT'_aux_seq_type.ind".
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT'_iter.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT'_seq.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/a'_seq.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/b'_seq.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/a'_seq_I.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/b'_seq_I.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/a'_seq_less_b'_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/a'_seq_less_z.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/z_less_b'_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/a'_seq_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/b'_seq_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/a'_seq_b'_seq_dist_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/a'_seq_b'_seq_dist.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/a'_seq_Cauchy.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/b'_seq_Cauchy.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT'/xa.con" "IVT'__" as definition.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT'/xb.con" "IVT'__" as definition.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/a'_seq_b'_seq_lim.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/xa'_in_interval.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT'_I.con" as lemma.
+
+(* UNEXPORTED
+End IVT'
+*)
+
+(*#* **Other formulations
+
+We now generalize the various statements of the intermediate value
+theorem to more widely applicable forms.
+*)
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/Weak_IVT.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT_inc.con" as lemma.
+
+(* UNEXPORTED
+Transparent Min.
+*)
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT_dec.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT'_inc.con" as lemma.
+
+(* UNEXPORTED
+Transparent Min.
+*)
+
+inline procedural "cic:/CoRN/ftc/StrongIVT/IVT'_dec.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/Taylor.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/Taylor.mma
new file mode 100644 (file)
index 0000000..f632a69
--- /dev/null
@@ -0,0 +1,196 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Taylor.v,v 1.10 2004/04/23 10:01:01 lcf Exp $ *)
+
+include "ftc/TaylorLemma.ma".
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/More_Taylor_Defs/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/More_Taylor_Defs/pI.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/More_Taylor_Defs/F.var
+*)
+
+(* begin show *)
+
+inline procedural "cic:/CoRN/ftc/Taylor/More_Taylor_Defs/deriv_Sn.con" "More_Taylor_Defs__" as definition.
+
+(* end show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/More_Taylor_Defs/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/More_Taylor_Defs/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/More_Taylor_Defs/Ha.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/More_Taylor_Defs/Hb.var
+*)
+
+(* begin show *)
+
+inline procedural "cic:/CoRN/ftc/Taylor/More_Taylor_Defs/fi.con" "More_Taylor_Defs__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Taylor/More_Taylor_Defs/funct_i.con" "More_Taylor_Defs__" as definition.
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/Taylor/Taylor_Seq'.con" as definition.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Taylor/TaylorB.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/Taylor/Taylor_Rem.con" as definition.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/Taylor/Taylor_Sumx_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/Taylor/Taylor_lemma_ap.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/Taylor/Taylor'.con" as theorem.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/Taylor_Theorem/I.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/Taylor_Theorem/pI.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/Taylor_Theorem/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/Taylor_Theorem/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/Taylor_Theorem/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/Taylor_Theorem/goodF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/Taylor_Theorem/goodF'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/Taylor_Theorem/derF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/Taylor_Theorem/F'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/Taylor_Theorem/derF'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/Taylor_Theorem/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/Taylor_Theorem/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/Taylor_Theorem/Ha.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/Taylor/Taylor_Theorem/Hb.var
+*)
+
+(* begin show *)
+
+inline procedural "cic:/CoRN/ftc/Taylor/Taylor_Theorem/funct_i.con" "Taylor_Theorem__" as definition.
+
+inline procedural "cic:/CoRN/ftc/Taylor/Taylor_Seq.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/Taylor/Taylor_Theorem/deriv_Sn.con" "Taylor_Theorem__" as definition.
+
+(* end show *)
+
+inline procedural "cic:/CoRN/ftc/Taylor/Taylor_aux.con" as lemma.
+
+(* UNEXPORTED
+Transparent N_Deriv.
+*)
+
+inline procedural "cic:/CoRN/ftc/Taylor/Taylor.con" as theorem.
+
+(* UNEXPORTED
+End Taylor_Theorem
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/TaylorLemma.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/TaylorLemma.mma
new file mode 100644 (file)
index 0000000..6f2e563
--- /dev/null
@@ -0,0 +1,344 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: TaylorLemma.v,v 1.8 2004/04/23 10:01:01 lcf Exp $ *)
+
+include "ftc/Rolle.ma".
+
+(* 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)]].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/Hap.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/Hab'.con" "Taylor_Defs__" as definition.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/Hab.con" "Taylor_Defs__" as definition.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/I.con" "Taylor_Defs__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/Ha.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/Hb.var
+*)
+
+(* begin show *)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/fi.con" "Taylor_Defs__" as definition.
+
+(* end show *)
+
+(*#*
+This last local definition is simply:
+$f_i=f^{(i)}$#f<sub>i</sub>=f<sup>(i)</sup>#.
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_lemma1.con" as lemma.
+
+(* 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<sup>(i)</sup>(a)/i!*(x-a)<sup>i</sup>.#
+We denote by [A] and [B] the elements of [[Min(a,b),Max(a,b)]]
+corresponding to [a] and [b].
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/TL_compact_a.con" "Taylor_Defs__" as definition.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/TL_compact_b.con" "Taylor_Defs__" as definition.
+
+(* NOTATION
+Notation A := (Build_subcsetoid_crr IR _ _ TL_compact_a).
+*)
+
+(* NOTATION
+Notation B := (Build_subcsetoid_crr IR _ _ TL_compact_b).
+*)
+
+(* end hide *)
+
+(* begin show *)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/funct_i.con" "Taylor_Defs__" as definition.
+
+(* end show *)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/funct_i'.con" "Taylor_Defs__" as definition.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/TL_a_i.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/TL_b_i.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/TL_x_i.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/TL_a_i'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/TL_b_i'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/TL_x_i'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_lemma2.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_lemma2'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_lemma3.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_lemma3'.con" as lemma.
+
+(* end hide *)
+
+(*#*
+Adding the previous expressions up to a given bound [n] gives us the
+Taylor sum of order [n].
+*)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_seq'.con" as definition.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/Taylor_seq'_aux.con" "Taylor_Defs__" as definition.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/TL_lemma_a.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/ftc/TaylorLemma/TL_lemma_b.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/TL_lemma_a'.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/TL_lemma_b'.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_rem.con" as definition.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/g.con" "Taylor_Defs__" as definition.
+
+(* 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 procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_lemma4.con" as lemma.
+
+(* UNEXPORTED
+Transparent funct_i funct_i'.
+*)
+
+(* UNEXPORTED
+Opaque Taylor_seq'_aux.
+*)
+
+(* UNEXPORTED
+Transparent Taylor_seq'_aux.
+*)
+
+(* UNEXPORTED
+Opaque FSumx.
+*)
+
+(* UNEXPORTED
+Opaque funct_i'.
+*)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_lemma5.con" as lemma.
+
+(* UNEXPORTED
+Transparent funct_i' FSumx.
+*)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/funct_aux.con" "Taylor_Defs__" as definition.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_lemma6.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_lemma7.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_lemma8.con" as lemma.
+
+(* UNEXPORTED
+Opaque funct_aux.
+*)
+
+(* UNEXPORTED
+Transparent funct_aux.
+*)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_lemma9.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/g'.con" "Taylor_Defs__" as definition.
+
+(* UNEXPORTED
+Opaque Taylor_rem funct_aux.
+*)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_lemma10.con" as lemma.
+
+(* UNEXPORTED
+Transparent Taylor_rem funct_aux.
+*)
+
+(* end hide *)
+
+(*#*
+Now Taylor's theorem.
+
+%\begin{convention}% Let [e] be a positive real number.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/e.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/He.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_lemma11.con" as lemma.
+
+(* end hide *)
+
+(* begin show *)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_Defs/deriv_Sn'.con" "Taylor_Defs__" as definition.
+
+(* end show *)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/TLH.con" as lemma.
+
+(* end hide *)
+
+(* UNEXPORTED
+Opaque funct_aux.
+*)
+
+(* UNEXPORTED
+Opaque Taylor_rem.
+*)
+
+(* UNEXPORTED
+Transparent Taylor_rem funct_aux.
+*)
+
+inline procedural "cic:/CoRN/ftc/TaylorLemma/Taylor_lemma.con" as lemma.
+
+(* UNEXPORTED
+End Taylor_Defs
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/ftc/WeakIVT.mma b/helm/software/matita/contribs/procedural/CoRN/ftc/WeakIVT.mma
new file mode 100644 (file)
index 0000000..39f0392
--- /dev/null
@@ -0,0 +1,275 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: WeakIVT.v,v 1.9 2004/04/23 10:01:01 lcf Exp $ *)
+
+(*#* printing ** %\ensuremath\times% #&times;# *)
+
+(* begin hide *)
+
+(* NOTATION
+Infix "**" := prodT (at level 20).
+*)
+
+(* end hide *)
+
+include "ftc/Continuity.ma".
+
+(*#* *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&isin;[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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/Lemma1/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/Lemma1/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/Lemma1/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/Lemma1/I.con" "Lemma1__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/Lemma1/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/Lemma1/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&isin;[a,b]# such that [f(x)] is close
+enough to [z].
+*)
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/Weak_IVT_ap_lft.con" as lemma.
+
+(* UNEXPORTED
+End Lemma1
+*)
+
+(* UNEXPORTED
+Section Lemma2
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/Lemma2/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/Lemma2/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/Lemma2/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/Lemma2/I.con" "Lemma2__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/Lemma2/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/Lemma2/contF.var
+*)
+
+(*#*
+If [f(b) [<] f(a)], a similar result holds:
+*)
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/Weak_IVT_ap_rht.con" as lemma.
+
+(* 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].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/IVT/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/IVT/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/IVT/Hab'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/IVT/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/IVT/I.con" "IVT__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/IVT/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/IVT/contF.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/IVT/incF.con" "IVT__" as definition.
+
+(* end hide *)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/IVT/incrF.var
+*)
+
+(* end show *)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/IVT/Ha.con" "IVT__" as definition.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/IVT/Hb.con" "IVT__" as definition.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/IVT/HFab'.con" "IVT__" as definition.
+
+(* end hide *)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/IVT/z.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/IVT/Haz.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/ftc/WeakIVT/IVT/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 procedural "cic:/CoRN/ftc/WeakIVT/IVT_seq_lemma.con" as lemma.
+
+(* end hide *)
+
+(*#*
+We now iterate this construction.
+*)
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/IVT_aux_seq_type.ind".
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/IVT_iter.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/IVT_seq.con" as definition.
+
+(*#*
+We now define the sequences built from this iteration, starting with [a] and [b].
+*)
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/b_seq.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_I.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/b_seq_I.con" as definition.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_less_b_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_leEq_z.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/z_leEq_b_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/b_seq_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_b_seq_dist_n.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_b_seq_dist.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_Cauchy.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/b_seq_Cauchy.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/IVT/xa.con" "IVT__" as definition.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/IVT/xb.con" "IVT__" as definition.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/a_seq_b_seq_lim.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/xa_in_interval.con" as lemma.
+
+inline procedural "cic:/CoRN/ftc/WeakIVT/IVT_I.con" as lemma.
+
+(* UNEXPORTED
+End IVT
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/metrics/CMetricSpaces.mma b/helm/software/matita/contribs/procedural/CoRN/metrics/CMetricSpaces.mma
new file mode 100644 (file)
index 0000000..b0d848e
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CMetricSpaces.v,v 1.4 2004/04/23 10:01:01 lcf Exp $ *)
+
+include "metrics/Prod_Sub.ma".
+
+include "metrics/Equiv.ma".
+
+(* UNEXPORTED
+Section Definition_MS
+*)
+
+(*#* **Definition of Metric Space
+*)
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/CMetricSpace.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/metrics/CMetricSpaces/scms_crr.con
+*)
+
+(* UNEXPORTED
+End Definition_MS
+*)
+
+(* UNEXPORTED
+Section MS_basics
+*)
+
+(*#* **Metric Space basics
+*)
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/d_CMetricSpace_apdiag_imp_grzero.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/d_zero_imp_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/is_CMetricSpace_diag_zero.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/metrics/CMetricSpaces/Prod0CMetricSpaces_apdiag_grzero.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/Prod0CMetricSpace.con" as definition.
+
+(*#*
+A subspace of a metric space is again a metric space.
+*)
+
+(* UNEXPORTED
+Implicit Arguments SubPsMetricSpace [X].
+*)
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/SubMetricSpace_apdiag_grzero.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/SubMetricSpace.con" as definition.
+
+(* 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 procedural "cic:/CoRN/metrics/CMetricSpaces/zf_nis_CMetricSpace.con" as lemma.
+
+(*#*
+But a pseudo metric space induces a metric space:
+*)
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/metric_ap.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/metric_eq.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/metric_ap_irreflexive.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/metric_ap_symmetric.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/metric_ap_cotransitive.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/metric_ap_tight.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/Metric_CSet_is_CSetoid.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/Metric_CSetoid.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/metric_d.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/metric_d_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/Metric_d.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/Metric_d_com.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/Metric_d_nneg.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/Metric_d_pos_imp_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/Metric_d_tri_ineq.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/QuotientCSetoid_is_CPsMetricSpace.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/QuotientCPsMetricSpace.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/Metric_d_apdiag_grzero.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/QuotientCMetricSpace.con" as definition.
+
+(*#*
+Some pseudo metric spaces already are a metric space:
+*)
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/dIR_apdiag_grzero.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/IR_as_CMetricSpace.con" as definition.
+
+(*#*
+In that case the induced metric space is equivalent to the original one:
+*)
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/emb.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/emb_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/Emb.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/Quotient_pres_CMetricSpace.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/metrics/CMetricSpaces/nz.con" as lemma.
+
+(* end hide *)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/d_wd.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/metrics/CMetricSpaces/unique_MSseqLim.con" as lemma.
+
+(* UNEXPORTED
+End Limitt
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/metrics/CPMSTheory.mma b/helm/software/matita/contribs/procedural/CoRN/metrics/CPMSTheory.mma
new file mode 100644 (file)
index 0000000..04afb43
--- /dev/null
@@ -0,0 +1,226 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CPMSTheory.v,v 1.6 2004/04/23 10:01:02 lcf Exp $ *)
+
+include "metrics/Prod_Sub.ma".
+
+(* 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 procedural "cic:/CoRN/metrics/CPMSTheory/MSmember.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments MSmember [X].
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/to_IR.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/from_IR.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/list_IR.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/is_P.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/metrics/CPMSTheory/member1.con" as lemma.
+
+(*#*
+The image under a certain mapping of an element of a list $l$ #<I>l</I># is member 
+of the list of images of elements of $l$ #<I>l</I>#.
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/map_member.con" as lemma.
+
+(* UNEXPORTED
+End lists
+*)
+
+(* UNEXPORTED
+Section loc_and_bound
+*)
+
+(*#* **Pseudo Metric Space theory
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/Re_co_do.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/Re_co_do_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/re_co_do.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/re_co_do_well_def.con" as lemma.
+
+(* UNEXPORTED
+Implicit Arguments MSmember [X].
+*)
+
+(*#*
+Again we see that the image under a certain mapping of an element of a list $l$
+#<I>l</I># is member of the list of images of elements of $l$ #<I>l</I>#.
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/map_member'.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/bounded.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/MStotally_bounded.con" as definition.
+
+(*#*
+Total boundedness is preserved under uniformly continuous mappings.
+*)
+
+(* UNEXPORTED
+Implicit Arguments SubPsMetricSpace [X].
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/unicon_resp_totallybounded.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/MStotallybounded_totallybounded.con" as lemma.
+
+(*#*
+Every image under an uniformly continuous function of an totally bounded 
+pseudo metric space has an infimum and a supremum.
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/infimum_exists.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/supremum_exists.con" as lemma.
+
+(*#*
+A subspace $P$#<I>P</I># of a pseudo metric space $X$#<I>X</I># is said to be located if for all 
+elements $x$#<I>x</I># of $X$#<I>X</I># there exists an infimum for the distance 
+between $x$#<I>x</I># and the elements of $P$#<I>P</I>#.
+*)
+
+(* UNEXPORTED
+Implicit Arguments dsub'_as_cs_fun [X].
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/located.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments located [X].
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/located'.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments located' [X].
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/located_imp_located'.con" as lemma.
+
+(*#*
+Every totally bounded pseudo metric space is located.
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/MStotally_bounded_imp_located.con" as lemma.
+
+(*#*
+For all $x$#<I>x</I># in a pseudo metric space $X$#<I>X</I>#, for all located subspaces $P$#<I>P</I># of $X$#<I>X</I>#,
+[Floc] chooses for a given natural number $n$#<I>n</I># an $y$#<I>y</I># in $P$#<I>P</I># such that:
+$d(x,y)\leq \mbox{inf}\{d(x,p)|p \in P\}+(n+1)^{-1}$
+#d(x,y) &le; inf&#x007B;d(x,p)&#x007C; p&#x03F5;P&#x007D; + (n+1)<SUP>-1</SUP>#.
+[Flocfun] does (almost) the same, but has a different type. This enables 
+one to use the latter as an argument of [map].
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/Floc.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/Flocfun.con" as definition.
+
+(*#*
+A located subset $P$#<I>P</I># of a totally bounded pseudo metric space $X$
+#<I>X</I># is totally
+bounded.
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/locatedsub_totallybounded_imp_totallyboundedsub.con" as lemma.
+
+(*#*
+Here are some definitions that could come in handy:
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/MSCauchy_seq.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments MSseqLimit' [X].
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/MSComplete.con" as definition.
+
+(*#*
+A compact pseudo metric space is a pseudo metric space which is complete and 
+totally bounded.
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/MSCompact.con" as definition.
+
+(*#*
+A subset $P$#<I>P</I># is %\emph{open}%#<I>open</I># if for all $x$#<I>x</I># in $P$#<I>P</I># there exists an open sphere 
+with centre $x$#<I>x</I># that is contained in $P$#<I>P</I>#.
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/open.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments open [X].
+*)
+
+(*#*
+The operator [infima] gives the infimum for the distance between an 
+element $x$#<I>x</I># of a located pseudo metric space $X$#<I>X</I># and the elements of a 
+subspace $P$#<I>P</I># of $X$#<I>X</I>#.
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/infima.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments infima [X].
+*)
+
+(*#*
+A non-empty totally bounded sub-pseudo-metric-space $P$#<I>P</I># is said to be 
+%\emph{well contained}% #<I>well contained</I># in an open sub-pseudo-metric-space $Q$#<I>Q</I># if $Q$#<I>Q</I># contains 
+all points that are in some sense close to $P$#<I>P</I>#.
+*)
+
+inline procedural "cic:/CoRN/metrics/CPMSTheory/well_contained.con" as definition.
+
+(* UNEXPORTED
+End loc_and_bound
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/metrics/CPseudoMSpaces.mma b/helm/software/matita/contribs/procedural/CoRN/metrics/CPseudoMSpaces.mma
new file mode 100644 (file)
index 0000000..ec35411
--- /dev/null
@@ -0,0 +1,200 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CPseudoMSpaces.v,v 1.3 2004/04/23 10:01:02 lcf Exp $ *)
+
+include "reals/Intervals.ma".
+
+(*#* *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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/metrics/CPseudoMSpaces/Relations/A.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/metrics/CPseudoMSpaces/Relations/d.var
+*)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(* UNEXPORTED
+Unset Strict Implicit.
+*)
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/com.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/nneg.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/pos_imp_ap.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/tri_ineq.con" as definition.
+
+(* UNEXPORTED
+Set Strict Implicit.
+*)
+
+(* UNEXPORTED
+Unset Implicit Arguments.
+*)
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/diag_zero.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/apdiag_imp_grzero.con" as definition.
+
+(* 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 procedural "cic:/CoRN/metrics/CPseudoMSpaces/is_CPsMetricSpace.ind".
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/CPsMetricSpace.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/metrics/CPseudoMSpaces/cms_crr.con
+*)
+
+(* UNEXPORTED
+End Definition_PsMS0
+*)
+
+(* UNEXPORTED
+Implicit Arguments cms_d [c].
+*)
+
+(* NOTATION
+Infix "[-d]" := cms_d (at level 68, left associativity).
+*)
+
+(* UNEXPORTED
+Section PsMS_axioms
+*)
+
+(*#* **Pseudo Metric Space axioms
+%\begin{convention}%
+Let [A] be a pseudo metric space.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/metrics/CPseudoMSpaces/PsMS_axioms/A.var
+*)
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/CPsMetricSpace_is_CPsMetricSpace.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/d_com.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/d_nneg.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/d_pos_imp_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/d_tri_ineq.con" as lemma.
+
+(* UNEXPORTED
+End PsMS_axioms
+*)
+
+(* UNEXPORTED
+Section PsMS_basics
+*)
+
+(*#* **Pseudo Metric Space basics
+%\begin{convention}%
+Let [Y] be a pseudo metric space.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/metrics/CPseudoMSpaces/PsMS_basics/Y.var
+*)
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/rev_tri_ineq.con" as lemma.
+
+(*#*
+Instead of taking [pos_imp_ap] as axiom, 
+we could as well have taken [diag_zero]. 
+*)
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/diag_zero_imp_pos_imp_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/pos_imp_ap_imp_diag_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/is_CPsMetricSpace_diag_zero.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/metrics/CPseudoMSpaces/zero_fun.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/zero_fun_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/Zero_fun.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/zero_fun_com.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/zero_fun_nneg.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/zero_fun_pos_imp_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/zero_fun_tri_ineq.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/zf_is_CPsMetricSpace.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/CPseudoMSpaces/zf_as_CPsMetricSpace.con" as definition.
+
+(* UNEXPORTED
+End Zerof
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/metrics/ContFunctions.mma b/helm/software/matita/contribs/procedural/CoRN/metrics/ContFunctions.mma
new file mode 100644 (file)
index 0000000..d60d1d2
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: ContFunctions.v,v 1.3 2004/04/23 10:01:02 lcf Exp $ *)
+
+include "metrics/CPseudoMSpaces.ma".
+
+(* UNEXPORTED
+Section Continuous_functions
+*)
+
+(*#* **Continuous functions, uniformly continuous functions and Lipschitz functions
+%\begin{convention}%
+Let [A] and [B] be pseudo metric spaces.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/metrics/ContFunctions/Continuous_functions/A.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/metrics/ContFunctions/Continuous_functions/B.var
+*)
+
+(*#*
+We will look at some notions of continuous functions.
+*)
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/continuous.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/continuous'.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/uni_continuous.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/uni_continuous'.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/uni_continuous''.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/lipschitz.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/lipschitz'.con" as definition.
+
+(* 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 procedural "cic:/CoRN/metrics/ContFunctions/nexp_power.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/continuous_imp_continuous'.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/continuous'_imp_continuous.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/uni_continuous_imp_uni_continuous'.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/uni_continuous'_imp_uni_continuous.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/uni_continuous'_imp_uni_continuous''.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/lipschitz_imp_lipschitz'.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/lipschitz'_imp_lipschitz.con" as lemma.
+
+(*#*
+Every uniformly continuous function is continuous and 
+every Lipschitz function is uniformly continuous.
+*)
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/uni_continuous_imp_continuous.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/lipschitz_imp_uni_continuous.con" as lemma.
+
+(* UNEXPORTED
+End Lemmas
+*)
+
+(* UNEXPORTED
+Section Identity
+*)
+
+(*#* **Identity 
+*)
+
+(*#*
+The identity function is Lipschitz. 
+Hence it is uniformly continuous and continuous.
+*)
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/id_is_lipschitz.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/id_is_uni_continuous.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/id_is_continuous.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/metrics/ContFunctions/Constant/B.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/metrics/ContFunctions/Constant/X.var
+*)
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/const_fun_is_lipschitz.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/const_fun_is_uni_continuous.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/const_fun_is_continuous.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/metrics/ContFunctions/Composition/X.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/metrics/ContFunctions/Composition/B.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/metrics/ContFunctions/Composition/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/metrics/ContFunctions/Composition/C.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/metrics/ContFunctions/Composition/g.var
+*)
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/comp_resp_lipschitz.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/comp_resp_uni_continuous.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/comp_resp_continuous.con" as lemma.
+
+(* UNEXPORTED
+End Composition
+*)
+
+(* UNEXPORTED
+Section Limit
+*)
+
+(*#* **Limit
+*)
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/MSseqLimit.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments MSseqLimit [X].
+*)
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/MSseqLimit'.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments MSseqLimit' [X].
+*)
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/MSseqLimit_imp_MSseqLimit'.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/MSseqLimit'_imp_MSseqLimit.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/seqcontinuous'.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments seqcontinuous' [A B].
+*)
+
+inline procedural "cic:/CoRN/metrics/ContFunctions/continuous'_imp_seqcontinuous'.con" as lemma.
+
+(* UNEXPORTED
+End Limit
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/metrics/Equiv.mma b/helm/software/matita/contribs/procedural/CoRN/metrics/Equiv.mma
new file mode 100644 (file)
index 0000000..8886328
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Equiv.v,v 1.4 2004/04/23 10:01:02 lcf Exp $ *)
+
+include "metrics/IR_CPMSpace.ma".
+
+(* 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 procedural "cic:/CoRN/metrics/Equiv/equivalent_psmetric.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/Equiv/isopsmetry.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments isopsmetry [X Y].
+*)
+
+inline procedural "cic:/CoRN/metrics/Equiv/isopsmetry_imp_bij.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/Equiv/isopsmetry_imp_lipschitz.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/Equiv/id_is_isopsmetry.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/Equiv/comp_resp_isopsmetry.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/Equiv/inv_isopsmetry.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/Equiv/MSequivalent.con" as definition.
+
+(*#*
+Not all pseudo metric spaces are equivalent:
+*)
+
+inline procedural "cic:/CoRN/metrics/Equiv/MSequivalent_discr.con" as lemma.
+
+(* UNEXPORTED
+End equivalent
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/metrics/IR_CPMSpace.mma b/helm/software/matita/contribs/procedural/CoRN/metrics/IR_CPMSpace.mma
new file mode 100644 (file)
index 0000000..189eade
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: IR_CPMSpace.v,v 1.4 2004/04/23 10:01:02 lcf Exp $ *)
+
+include "metrics/ContFunctions.ma".
+
+(* 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 procedural "cic:/CoRN/metrics/IR_CPMSpace/dIR.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/IR_CPMSpace/bin_fun_strext_dIR.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/IR_CPMSpace/dIR_as_CSetoid_fun.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/IR_CPMSpace/dIR_nneg.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/IR_CPMSpace/dIR_com.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/IR_CPMSpace/dIR_pos_imp_ap.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/metrics/IR_CPMSpace/IR_tri_ineq.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/metrics/IR_CPMSpace/dIR_tri_ineq.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/IR_CPMSpace/IR_dIR_is_CPsMetricSpace.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/IR_CPMSpace/IR_as_CPsMetricSpace.con" as definition.
+
+(* UNEXPORTED
+cic:/CoRN/metrics/IR_CPMSpace/Reals/X.var
+*)
+
+inline procedural "cic:/CoRN/metrics/IR_CPMSpace/rev_tri_ineq'.con" as lemma.
+
+(*#*
+A pseudo metric is Lipschitz. Hence it is uniformly continuous and continuous.
+*)
+
+inline procedural "cic:/CoRN/metrics/IR_CPMSpace/d_is_lipschitz.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/IR_CPMSpace/d_is_uni_continuous.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/IR_CPMSpace/d_is_continuous.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/metrics/IR_CPMSpace/plus_resp_lipschitz.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/IR_CPMSpace/plus_resp_uni_continuous.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/IR_CPMSpace/plus_resp_continuous.con" as lemma.
+
+(* UNEXPORTED
+End Addition
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/metrics/Prod_Sub.mma b/helm/software/matita/contribs/procedural/CoRN/metrics/Prod_Sub.mma
new file mode 100644 (file)
index 0000000..2ab75da
--- /dev/null
@@ -0,0 +1,129 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Prod_Sub.v,v 1.4 2004/04/23 10:01:02 lcf Exp $ *)
+
+include "metrics/IR_CPMSpace.ma".
+
+(* 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)$
+# d<SUB>prod</SUB>((a<SUB>1</SUB>,b<SUB>1</SUB>),(a<SUB>2</SUB>,b<SUB>2</SUB>)):= d<SUB>A</SUB>(a<SUB>1</SUB>,b<SUB>1</SUB>)+d<SUB>B</SUB>(b<SUB>1</SUB>,b<SUB>2</SUB>)#.
+This is %\emph{not}% #<I>not</I># the one used to make the metric of 
+$\RR^{2}$ #IR<SUP>2</SUP># out of the metric of $\RR$ #IR#. 
+*)
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/dprod0.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/dprod0_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/d_prod0.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/prod0cpsmetricspace_is_CPsMetricSpace.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/Prod0CPsMetricSpace.con" as definition.
+
+(* 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 procedural "cic:/CoRN/metrics/Prod_Sub/restr_bin_fun.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments restr_bin_fun [X].
+*)
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/restr_bin_fun'.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments restr_bin_fun' [X].
+*)
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/restr_bin_fun_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/Build_SubCSetoid_bin_fun.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/dsub.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments dsub [X].
+*)
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/dsub_com.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/dsub_nneg.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/dsub_pos_imp_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/dsub_tri_ineq.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/is_SubPsMetricSpace.con" as definition.
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/SubPsMetricSpace.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments SubPsMetricSpace [X].
+*)
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/from_SubPsMetricSpace.con" as definition.
+
+(*#*
+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 procedural "cic:/CoRN/metrics/Prod_Sub/dsub'.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments dsub' [X].
+*)
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/dsub'_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/dsub'_as_cs_fun.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments dsub'_as_cs_fun [X].
+*)
+
+inline procedural "cic:/CoRN/metrics/Prod_Sub/dsub'_uni_continuous''.con" as lemma.
+
+(* UNEXPORTED
+End subpsmetrics
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/abgroups/QSposabgroup.mma b/helm/software/matita/contribs/procedural/CoRN/model/abgroups/QSposabgroup.mma
new file mode 100644 (file)
index 0000000..e01f261
--- /dev/null
@@ -0,0 +1,32 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: QSposabgroup.v,v 1.5 2004/04/08 08:20:31 lcf Exp $ *)
+
+include "model/groups/QSposgroup.ma".
+
+include "algebra/CAbGroups.ma".
+
+(*#* **Example of an abelian group: $\langle$#&lang;#[Qpos],$(x,y) \mapsto xy/2$ #(x,y) &#x21A6; xy/2#$\rangle$#&rang;#
+The positive rational numbers form with the operation  $(x,y) \mapsto xy/2$  #(x,y) &#x21A6; xy/2# an abelian group.
+*)
+
+inline procedural "cic:/CoRN/model/abgroups/QSposabgroup/Qpos_multdiv2_is_CAbGroup.con" as lemma.
+
+inline procedural "cic:/CoRN/model/abgroups/QSposabgroup/Qpos_multdiv2_as_CAbGroup.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/abgroups/Qabgroup.mma b/helm/software/matita/contribs/procedural/CoRN/model/abgroups/Qabgroup.mma
new file mode 100644 (file)
index 0000000..568d785
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Qabgroup.v,v 1.5 2004/04/08 08:20:31 lcf Exp $ *)
+
+include "model/groups/Qgroup.ma".
+
+include "algebra/CAbGroups.ma".
+
+(*#* **Example of an abelian group: $\langle$#&lang;#[Q],[[+]]$\rangle$#&rang;#
+*)
+
+(*#* Addition is commutative, so the rationals form with the addition a 
+CAbGroup.
+*)
+
+inline procedural "cic:/CoRN/model/abgroups/Qabgroup/Q_is_CAbGroup.con" as lemma.
+
+inline procedural "cic:/CoRN/model/abgroups/Qabgroup/Q_as_CAbGroup.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/abgroups/Qposabgroup.mma b/helm/software/matita/contribs/procedural/CoRN/model/abgroups/Qposabgroup.mma
new file mode 100644 (file)
index 0000000..de1f956
--- /dev/null
@@ -0,0 +1,32 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Qposabgroup.v,v 1.6 2004/04/08 08:20:31 lcf Exp $ *)
+
+include "model/groups/Qposgroup.ma".
+
+include "algebra/CAbGroups.ma".
+
+(*#* **Example of an abelian group: $\langle$#&lang;#[Qpos],[[*]]$\rangle$#&rang;#
+The positive rationals form with the multiplication a CAbgroup.
+*)
+
+inline procedural "cic:/CoRN/model/abgroups/Qposabgroup/Qpos_mult_is_CAbGroup.con" as definition.
+
+inline procedural "cic:/CoRN/model/abgroups/Qposabgroup/Qpos_mult_as_CAbGroup.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/abgroups/Zabgroup.mma b/helm/software/matita/contribs/procedural/CoRN/model/abgroups/Zabgroup.mma
new file mode 100644 (file)
index 0000000..69d1e1b
--- /dev/null
@@ -0,0 +1,33 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Zabgroup.v,v 1.5 2004/04/08 08:20:32 lcf Exp $ *)
+
+include "model/groups/Zgroup.ma".
+
+include "algebra/CAbGroups.ma".
+
+(*#* **Example of an abelian group: $\langle$#&lang;#[Z],[[+]]$\rangle$#&rang;#
+*)
+
+inline procedural "cic:/CoRN/model/abgroups/Zabgroup/Z_is_CAbGroup.con" as lemma.
+
+inline procedural "cic:/CoRN/model/abgroups/Zabgroup/Z_as_CAbGroup.con" as definition.
+
+(*#* The term [Z_as_CAbGroup] is of type [CAbGroup]. Hence we have proven that [Z] is a constructive Abelian group. *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/fields/Qfield.mma b/helm/software/matita/contribs/procedural/CoRN/model/fields/Qfield.mma
new file mode 100644 (file)
index 0000000..cd1b552
--- /dev/null
@@ -0,0 +1,33 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Qfield.v,v 1.8 2004/04/08 08:20:32 lcf Exp $ *)
+
+include "model/rings/Qring.ma".
+
+include "algebra/CFields.ma".
+
+(*#* **Example of a field: $\langle$#&lang;#[Q],[[+]],[[*]]$\rangle$#&rang;#
+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 procedural "cic:/CoRN/model/fields/Qfield/Q_is_CField.con" as lemma.
+
+inline procedural "cic:/CoRN/model/fields/Qfield/Q_as_CField.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/groups/QSposgroup.mma b/helm/software/matita/contribs/procedural/CoRN/model/groups/QSposgroup.mma
new file mode 100644 (file)
index 0000000..edddc70
--- /dev/null
@@ -0,0 +1,33 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: QSposgroup.v,v 1.6 2004/04/08 08:20:32 lcf Exp $ *)
+
+include "model/monoids/QSposmonoid.ma".
+
+include "algebra/CGroups.ma".
+
+(*#* **Example of a group: $\langle$#&lang;#[Qpos],$(x,y) \mapsto xy/2$ #(x,y) &#x21A6; xy/2#$\rangle$#&rang;#
+The positive rationals form with the operation  $(x,y) \mapsto xy/2$ 
+#(x,y) &#x21A6; xy/2# a CGroup.
+*)
+
+inline procedural "cic:/CoRN/model/groups/QSposgroup/Qpos_multdiv2_is_CGroup.con" as lemma.
+
+inline procedural "cic:/CoRN/model/groups/QSposgroup/Qpos_multdiv2_as_CGroup.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/groups/Qgroup.mma b/helm/software/matita/contribs/procedural/CoRN/model/groups/Qgroup.mma
new file mode 100644 (file)
index 0000000..080e86f
--- /dev/null
@@ -0,0 +1,32 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Qgroup.v,v 1.5 2004/04/08 08:20:32 lcf Exp $ *)
+
+include "model/monoids/Qmonoid.ma".
+
+include "algebra/CGroups.ma".
+
+(*#* **Example of a group: $\langle$#&lang;#[Q],[[+]]$\rangle$#&rang;#
+The rational numbers with addition form a group. The inverse function is taking the opposite.
+*)
+
+inline procedural "cic:/CoRN/model/groups/Qgroup/Q_is_CGroup.con" as lemma.
+
+inline procedural "cic:/CoRN/model/groups/Qgroup/Q_as_CGroup.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/groups/Qposgroup.mma b/helm/software/matita/contribs/procedural/CoRN/model/groups/Qposgroup.mma
new file mode 100644 (file)
index 0000000..00cc590
--- /dev/null
@@ -0,0 +1,32 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Qposgroup.v,v 1.6 2004/04/08 08:20:32 lcf Exp $ *)
+
+include "model/monoids/Qposmonoid.ma".
+
+include "algebra/CGroups.ma".
+
+(*#* **Example of a group: $\langle$#&lang;#[Qpos],[[*]]$\rangle$#&rang;#
+The positive rational numbers form a multiplicative group.
+*)
+
+inline procedural "cic:/CoRN/model/groups/Qposgroup/Qpos_is_CGroup.con" as lemma.
+
+inline procedural "cic:/CoRN/model/groups/Qposgroup/Qpos_as_CGroup.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/groups/Zgroup.mma b/helm/software/matita/contribs/procedural/CoRN/model/groups/Zgroup.mma
new file mode 100644 (file)
index 0000000..ba3b164
--- /dev/null
@@ -0,0 +1,33 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Zgroup.v,v 1.5 2004/04/08 08:20:32 lcf Exp $ *)
+
+include "model/monoids/Zmonoid.ma".
+
+include "algebra/CGroups.ma".
+
+(*#* **Example of a group: $\langle$#&lang;#[Z],[[+]]$\rangle$#&rang;#
+*)
+
+inline procedural "cic:/CoRN/model/groups/Zgroup/Z_is_CGroup.con" as lemma.
+
+inline procedural "cic:/CoRN/model/groups/Zgroup/Z_as_CGroup.con" as definition.
+
+(*#* The term [Z_as_CGroup] is of type [CGroup]. Hence we have proven that [Z] is a constructive group. *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/monoids/Nmonoid.mma b/helm/software/matita/contribs/procedural/CoRN/model/monoids/Nmonoid.mma
new file mode 100644 (file)
index 0000000..cd3d80f
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Nmonoid.v,v 1.5 2004/04/08 08:20:32 lcf Exp $ *)
+
+include "model/semigroups/Nsemigroup.ma".
+
+include "algebra/CMonoids.ma".
+
+(*#* **Example of a monoid: $\langle$#&lang;#[nat],[[+]]$\rangle$#&rang;#
+Zero is an unit for the addition.
+*)
+
+inline procedural "cic:/CoRN/model/monoids/Nmonoid/O_as_rht_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/model/monoids/Nmonoid/O_as_lft_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/model/monoids/Nmonoid/nat_is_CMonoid.con" as definition.
+
+(*#*
+ Whence we can define #<i>#%\emph{%the monoid of natural numbers%}%#</i>#:
+*)
+
+inline procedural "cic:/CoRN/model/monoids/Nmonoid/nat_as_CMonoid.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/monoids/Nposmonoid.mma b/helm/software/matita/contribs/procedural/CoRN/model/monoids/Nposmonoid.mma
new file mode 100644 (file)
index 0000000..bd0f386
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Nposmonoid.v,v 1.6 2004/04/08 08:20:33 lcf Exp $ *)
+
+include "model/semigroups/Npossemigroup.ma".
+
+include "algebra/CMonoids.ma".
+
+(*#* **Example of a monoid: $\langle$#&lang;#[Npos],[[*]]$\rangle$#&rang;#
+One is the right unit as well as the left unit of the multiplication on the
+positive natural numbers.
+*)
+
+inline procedural "cic:/CoRN/model/monoids/Nposmonoid/rhtunitNpos.con" as lemma.
+
+inline procedural "cic:/CoRN/model/monoids/Nposmonoid/lftunitNpos.con" as lemma.
+
+(*#* So, the positive natural numbers with multiplication form a CMonoid.
+*)
+
+inline procedural "cic:/CoRN/model/monoids/Nposmonoid/Nposmult_is_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/model/monoids/Nposmonoid/Nposmult_as_CMonoid.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/monoids/QSposmonoid.mma b/helm/software/matita/contribs/procedural/CoRN/model/monoids/QSposmonoid.mma
new file mode 100644 (file)
index 0000000..50866df
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: QSposmonoid.v,v 1.5 2004/04/08 08:20:33 lcf Exp $ *)
+
+include "model/semigroups/QSpossemigroup.ma".
+
+include "algebra/CMonoids.ma".
+
+(*#* **Example of a monoid: $\langle$#&lang;#[Qpos],$(x,y) \mapsto xy/2$ #(x,y) &#x21A6; xy/2#$\rangle$#&rang;#
+Two is the unit of the operation  $(x,y) \mapsto xy/2$ #(x,y) 
+  &#x21A6; xy/2# on the positive rationals. So we have another monoid structure on the positive rational numbers.
+*)
+
+inline procedural "cic:/CoRN/model/monoids/QSposmonoid/QTWOpos_is_rht_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/model/monoids/QSposmonoid/QTWOpos_is_lft_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/model/monoids/QSposmonoid/Qpos_multdiv2_is_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/model/monoids/QSposmonoid/Qpos_multdiv2_as_CMonoid.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/monoids/Qmonoid.mma b/helm/software/matita/contribs/procedural/CoRN/model/monoids/Qmonoid.mma
new file mode 100644 (file)
index 0000000..3acc779
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Qmonoid.v,v 1.7 2004/04/08 08:20:33 lcf Exp $ *)
+
+include "model/semigroups/Qsemigroup.ma".
+
+include "algebra/CMonoids.ma".
+
+(*#* **Examples of a monoid: $\langle$#&lang;#[Q],[[+]]$\rangle$#&rang;# and $\langle$#&lang;#[Q],[[*]]$\rangle$#&rang;#
+***$\langle$#&lang;#[Q],[[+]]$\rangle$#&rang;#
+The rational numbers form with addition a CMonoid. [QZERO] is the unit.
+*)
+
+inline procedural "cic:/CoRN/model/monoids/Qmonoid/ZEROQ_as_rht_unit3.con" as lemma.
+
+inline procedural "cic:/CoRN/model/monoids/Qmonoid/ZEROQ_as_lft_unit3.con" as lemma.
+
+inline procedural "cic:/CoRN/model/monoids/Qmonoid/Q_is_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/model/monoids/Qmonoid/Q_as_CMonoid.con" as definition.
+
+(*#* ***$\langle$#&lang;#[Q],[[*]]$\rangle$#&rang;#
+Also with multiplication Q forms a CMonoid. Here, the unit is [QONE].
+*)
+
+inline procedural "cic:/CoRN/model/monoids/Qmonoid/ONEQ_as_rht_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/model/monoids/Qmonoid/ONEQ_as_lft_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/model/monoids/Qmonoid/Q_mul_is_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/model/monoids/Qmonoid/Q_mul_as_CMonoid.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/monoids/Qposmonoid.mma b/helm/software/matita/contribs/procedural/CoRN/model/monoids/Qposmonoid.mma
new file mode 100644 (file)
index 0000000..3c2fe2a
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Qposmonoid.v,v 1.7 2004/04/08 08:20:33 lcf Exp $ *)
+
+include "model/semigroups/Qpossemigroup.ma".
+
+include "algebra/CMonoids.ma".
+
+(*#* **Example of a monoid: $\langle$#&lang;#[Qpos],[[*]]$\rangle$#&rang;#
+One is the unit for multiplication on positive integers. Therefore the positive rational numbers together with the multiplication are a CMonoid.
+*)
+
+inline procedural "cic:/CoRN/model/monoids/Qposmonoid/QONEpos_is_rht_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/model/monoids/Qposmonoid/QONEpos_is_lft_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/model/monoids/Qposmonoid/Qpos_mult_is_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/model/monoids/Qposmonoid/Qpos_mult_as_CMonoid.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/monoids/Zmonoid.mma b/helm/software/matita/contribs/procedural/CoRN/model/monoids/Zmonoid.mma
new file mode 100644 (file)
index 0000000..57a8e01
--- /dev/null
@@ -0,0 +1,55 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Zmonoid.v,v 1.6 2004/04/08 08:20:33 lcf Exp $ *)
+
+include "model/semigroups/Zsemigroup.ma".
+
+include "algebra/CMonoids.ma".
+
+(*#* **Examples of monoids: $\langle$#&lang;#[Z],[[+]]$\rangle$#&rang;# and $\langle$#&lang;#[Z],[[*]]$\rangle$#&rang;#
+***$\langle$#&lang;#[Z],[[+]]$\rangle$#&rang;#
+We use the addition [ZERO] (defined in the standard library) as the
+unit of monoid:
+*)
+
+inline procedural "cic:/CoRN/model/monoids/Zmonoid/ZERO_as_rht_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/model/monoids/Zmonoid/ZERO_as_lft_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/model/monoids/Zmonoid/Z_is_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/model/monoids/Zmonoid/Z_as_CMonoid.con" as definition.
+
+(*#* The term [Z_as_CMonoid] is of type [CMonoid]. Hence we have proven that [Z] is a constructive monoid.
+
+***$\langle$#&lang;#[Z],[[*]]$\rangle$#&rang;#
+As the multiplicative unit we should use [`1`], which is [(POS xH)] in
+the representation we have for integers.
+*)
+
+inline procedural "cic:/CoRN/model/monoids/Zmonoid/ONE_as_rht_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/model/monoids/Zmonoid/ONE_as_lft_unit.con" as lemma.
+
+inline procedural "cic:/CoRN/model/monoids/Zmonoid/Z_mul_is_CMonoid.con" as definition.
+
+inline procedural "cic:/CoRN/model/monoids/Zmonoid/Z_mul_as_CMonoid.con" as definition.
+
+(*#* The term [Z_mul_as_CMonoid] is another term of type [CMonoid]. *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/non_examples/N_no_group.mma b/helm/software/matita/contribs/procedural/CoRN/model/non_examples/N_no_group.mma
new file mode 100644 (file)
index 0000000..5ae9aa3
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: N_no_group.v,v 1.5 2004/04/08 08:20:33 lcf Exp $ *)
+
+include "model/monoids/Nmonoid.ma".
+
+include "algebra/CGroups.ma".
+
+(*#* **Non-example of a group: $\langle$#&lang;#[nat],[[+]]$\rangle$#&rang;#
+There is no inverse function for the natural numbers with addition.
+*)
+
+inline procedural "cic:/CoRN/model/non_examples/N_no_group/no_inverse_nat_plus.con" as lemma.
+
+(*#* Hence they do not form a CGroup.
+*)
+
+inline procedural "cic:/CoRN/model/non_examples/N_no_group/no_group_nat_plus.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/non_examples/Npos_no_group.mma b/helm/software/matita/contribs/procedural/CoRN/model/non_examples/Npos_no_group.mma
new file mode 100644 (file)
index 0000000..ab83d88
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Npos_no_group.v,v 1.6 2004/04/08 08:20:33 lcf Exp $ *)
+
+include "algebra/CGroups.ma".
+
+include "model/monoids/Nposmonoid.ma".
+
+(*#* **Non-example of a group: $\langle$#&lang;#[Npos],[[+]]$\rangle$#&rang;#
+There is no inverse for multiplication on the positive natural numbers.
+*)
+
+inline procedural "cic:/CoRN/model/non_examples/Npos_no_group/no_inverse_Nposmult.con" as lemma.
+
+(*#* Hence the natural numbers with multiplication do not form a group.
+*)
+
+inline procedural "cic:/CoRN/model/non_examples/Npos_no_group/no_group_Nposmult.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/non_examples/Npos_no_monoid.mma b/helm/software/matita/contribs/procedural/CoRN/model/non_examples/Npos_no_monoid.mma
new file mode 100644 (file)
index 0000000..c61d3ce
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Npos_no_monoid.v,v 1.5 2004/04/08 08:20:34 lcf Exp $ *)
+
+include "model/semigroups/Npossemigroup.ma".
+
+include "algebra/CMonoids.ma".
+
+(*#* **Non-example of a monoid: $\langle$#&lang;#[Npos],[[+]]$\rangle$#&rang;#
+There is no right unit for the addition on the positive natural numbers.
+*)
+
+inline procedural "cic:/CoRN/model/non_examples/Npos_no_monoid/no_rht_unit_Npos.con" as lemma.
+
+(*#* Therefore the set of positive natural numbers doesn't form a group with 
+addition.
+*)
+
+inline procedural "cic:/CoRN/model/non_examples/Npos_no_monoid/no_monoid_Npos.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/ordfields/Qordfield.mma b/helm/software/matita/contribs/procedural/CoRN/model/ordfields/Qordfield.mma
new file mode 100644 (file)
index 0000000..4e04160
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Qordfield.v,v 1.9 2004/04/23 10:01:03 lcf Exp $ *)
+
+include "model/fields/Qfield.ma".
+
+include "algebra/COrdFields.ma".
+
+(*#* **Example of an ordered field: $\langle$#&lang;#[Q],[[+]],[[*]],[[<]]$\rangle$#&rang;#
+ [Q] is an archemaedian ordered field.
+*)
+
+inline procedural "cic:/CoRN/model/ordfields/Qordfield/Qlt_is_strict_order.con" as definition.
+
+inline procedural "cic:/CoRN/model/ordfields/Qordfield/Q_is_COrdField.con" as definition.
+
+inline procedural "cic:/CoRN/model/ordfields/Qordfield/Q_as_COrdField.con" as definition.
+
+inline procedural "cic:/CoRN/model/ordfields/Qordfield/Q_is_archemaedian.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/reals/Cauchy_IR.mma b/helm/software/matita/contribs/procedural/CoRN/model/reals/Cauchy_IR.mma
new file mode 100644 (file)
index 0000000..afa798a
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Cauchy_IR.v,v 1.2 2004/04/06 15:46:03 lcf Exp $ *)
+
+include "model/ordfields/Qordfield.ma".
+
+include "reals/Cauchy_CReals.ma".
+
+(*#* * 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 procedural "cic:/CoRN/model/reals/Cauchy_IR/Cauchy_IR.con" as definition.
+
+(*#* The term [Cauchy_IR] is of type [CReals]. *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/rings/Qring.mma b/helm/software/matita/contribs/procedural/CoRN/model/rings/Qring.mma
new file mode 100644 (file)
index 0000000..a35056c
--- /dev/null
@@ -0,0 +1,46 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Qring.v,v 1.8 2004/04/23 10:01:03 lcf Exp $ *)
+
+include "model/abgroups/Qabgroup.ma".
+
+include "algebra/CRings.ma".
+
+include "model/rings/Zring.ma".
+
+(*#* **Example of a ring: $\langle$#&lang;#[Q],[[+]],[[*]]$\rangle$#&rang;#
+Because [Q] forms an abelian group with addition, a monoid with 
+multiplication and it satisfies the distributive law, it is a ring.
+*)
+
+inline procedural "cic:/CoRN/model/rings/Qring/Q_mult_plus_is_dist.con" as lemma.
+
+inline procedural "cic:/CoRN/model/rings/Qring/Q_is_CRing.con" as definition.
+
+inline procedural "cic:/CoRN/model/rings/Qring/Q_as_CRing.con" as definition.
+
+(*#* The following lemmas are used in the proof that [Q] is Archimeadian.
+*)
+
+inline procedural "cic:/CoRN/model/rings/Qring/injz_Nring.con" as lemma.
+
+inline procedural "cic:/CoRN/model/rings/Qring/injZ_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/model/rings/Qring/nring_Q.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/rings/Zring.mma b/helm/software/matita/contribs/procedural/CoRN/model/rings/Zring.mma
new file mode 100644 (file)
index 0000000..5d43568
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Zring.v,v 1.6 2004/04/08 08:20:34 lcf Exp $ *)
+
+include "model/abgroups/Zabgroup.ma".
+
+include "algebra/CRings.ma".
+
+(*#* **Example of a ring: $\langle$#&lang;#[Z],[[+]],[[*]]$\rangle$#&rang;#
+
+The multiplication and the addition are distributive.
+*)
+
+inline procedural "cic:/CoRN/model/rings/Zring/Z_mult_plus_is_dist.con" as lemma.
+
+inline procedural "cic:/CoRN/model/rings/Zring/Z_is_CRing.con" as definition.
+
+inline procedural "cic:/CoRN/model/rings/Zring/Z_as_CRing.con" as definition.
+
+(*#* The term [Z_as_CRing] is of type [CRing]. Hence we have proven that [Z] is a constructive ring. *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/semigroups/Npossemigroup.mma b/helm/software/matita/contribs/procedural/CoRN/model/semigroups/Npossemigroup.mma
new file mode 100644 (file)
index 0000000..d4e0faa
--- /dev/null
@@ -0,0 +1,42 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Npossemigroup.v,v 1.6 2004/04/08 08:20:34 lcf Exp $ *)
+
+include "algebra/CSemiGroups.ma".
+
+include "model/semigroups/Nsemigroup.ma".
+
+include "model/setoids/Npossetoid.ma".
+
+(*#* **Examples of semi-groups:  $\langle$#&lang;#[Npos],[[+]]$\rangle$#&rang;# and $\langle$#&lang;#[Npos],[[*]]$\rangle$#&rang;#
+***$\langle$#&lang;#[Npos],[[+]]$\rangle$#&rang;#
+The positive natural numbers form together with addition a subsemigroup 
+ of the semigroup of the natural numbers with addition.
+*)
+
+inline procedural "cic:/CoRN/model/semigroups/Npossemigroup/Npos_as_CSemiGroup.con" as definition.
+
+(*#* ***$\langle$#&lang;#[Npos],[[*]]$\rangle$#&rang;#
+Also together with multiplication, the positive numbers form a semigroup.
+*)
+
+inline procedural "cic:/CoRN/model/semigroups/Npossemigroup/Nposmult_is_CSemiGroup.con" as lemma.
+
+inline procedural "cic:/CoRN/model/semigroups/Npossemigroup/Nposmult_as_CSemiGroup.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/semigroups/Nsemigroup.mma b/helm/software/matita/contribs/procedural/CoRN/model/semigroups/Nsemigroup.mma
new file mode 100644 (file)
index 0000000..cd2568e
--- /dev/null
@@ -0,0 +1,32 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Nsemigroup.v,v 1.6 2004/04/08 08:20:34 lcf Exp $ *)
+
+include "model/setoids/Nsetoid.ma".
+
+include "algebra/CSemiGroups.ma".
+
+(*#* **Example of a semi-group: $\langle$#&lang;#[nat],[[+]]$\rangle$#&rang;#
+*)
+
+(*#* Because addition is associative, the natural numbers form a CSemiGroup.
+*)
+
+inline procedural "cic:/CoRN/model/semigroups/Nsemigroup/nat_as_CSemiGroup.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/semigroups/QSpossemigroup.mma b/helm/software/matita/contribs/procedural/CoRN/model/semigroups/QSpossemigroup.mma
new file mode 100644 (file)
index 0000000..3c445a4
--- /dev/null
@@ -0,0 +1,31 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: QSpossemigroup.v,v 1.5 2004/04/08 08:20:35 lcf Exp $ *)
+
+include "model/setoids/Qpossetoid.ma".
+
+include "algebra/CSemiGroups.ma".
+
+(*#* **Example of a semi-group: $\langle$#&lang;#[Qpos],$(x,y) \mapsto xy/2$#(x,y) &#x21A6; xy/2#$\rangle$#&rang;#
+The positive rationals form with the operation
+$(x,y) \mapsto xy/2$#(x,y) &#x21A6; xy/2# a CSemiGroup.
+*)
+
+inline procedural "cic:/CoRN/model/semigroups/QSpossemigroup/Qpos_multdiv2_as_CSemiGroup.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/semigroups/Qpossemigroup.mma b/helm/software/matita/contribs/procedural/CoRN/model/semigroups/Qpossemigroup.mma
new file mode 100644 (file)
index 0000000..c691043
--- /dev/null
@@ -0,0 +1,30 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Qpossemigroup.v,v 1.6 2004/04/08 08:20:35 lcf Exp $ *)
+
+include "model/setoids/Qpossetoid.ma".
+
+include "algebra/CSemiGroups.ma".
+
+(*#* **Example of a semi-group: $\langle$#&lang;#[Qpos],[[*]]$\rangle$#&rang;#
+The positive rationals form with the multiplication a CSemiGroup.
+*)
+
+inline procedural "cic:/CoRN/model/semigroups/Qpossemigroup/Qpos_mult_as_CSemiGroup.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/semigroups/Qsemigroup.mma b/helm/software/matita/contribs/procedural/CoRN/model/semigroups/Qsemigroup.mma
new file mode 100644 (file)
index 0000000..c528080
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Qsemigroup.v,v 1.6 2004/04/08 08:20:35 lcf Exp $ *)
+
+include "model/setoids/Qsetoid.ma".
+
+include "algebra/CSemiGroups.ma".
+
+(*#* **Examples of semi-groups: $\langle$#&lang;#[Q],[[+]]$\rangle$#&rang;# and $\langle$#&lang;#[Q],[[*]]$\rangle$#&rang;#
+***$\langle$#&lang;#[Q],[[+]]$\rangle$#&rang;#
+*)
+
+inline procedural "cic:/CoRN/model/semigroups/Qsemigroup/Q_as_CSemiGroup.con" as definition.
+
+(*#* ***$\langle$#&lang;#[Q],[[*]]$\rangle$#&rang;#
+*)
+
+inline procedural "cic:/CoRN/model/semigroups/Qsemigroup/Q_mul_as_CSemiGroup.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/semigroups/Zsemigroup.mma b/helm/software/matita/contribs/procedural/CoRN/model/semigroups/Zsemigroup.mma
new file mode 100644 (file)
index 0000000..2f29fc0
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Zsemigroup.v,v 1.6 2004/04/08 08:20:35 lcf Exp $ *)
+
+include "model/setoids/Zsetoid.ma".
+
+include "algebra/CSemiGroups.ma".
+
+(*#* **Examples of semi-groups: $\langle$#&lang;#[Z],[[+]]$\rangle$#&rang;# and $\langle$#&lang;#[Z],[[*]]$\rangle$#&rang;#
+***$\langle$#&lang;#[Z],[[+]]$\rangle$#&rang;#
+*)
+
+inline procedural "cic:/CoRN/model/semigroups/Zsemigroup/Z_as_CSemiGroup.con" as definition.
+
+(*#* The term [Z_as_CSemiGroup] is of type [CSemiGroup]. Hence we have proven that [Z] is a constructive semi-group. *)
+
+(*#* ***$\langle$#&lang;#[Z],[[*]]$\rangle$#&rang;#
+*)
+
+inline procedural "cic:/CoRN/model/semigroups/Zsemigroup/Z_mul_as_CSemiGroup.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/setoids/Npossetoid.mma b/helm/software/matita/contribs/procedural/CoRN/model/setoids/Npossetoid.mma
new file mode 100644 (file)
index 0000000..dda551f
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Npossetoid.v,v 1.3 2004/04/06 15:46:04 lcf Exp $ *)
+
+include "model/setoids/Nsetoid.ma".
+
+include "model/structures/Npossec.ma".
+
+include "algebra/CSetoidFun.ma".
+
+(*#* **Example of a setoid: [Npos]
+
+*** Setoid
+The positive natural numbers [Npos] will be defined as a subsetoid of the
+natural numbers.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Npossetoid/Npos.con" as definition.
+
+inline procedural "cic:/CoRN/model/setoids/Npossetoid/NposP.con" as definition.
+
+(*#* One and two are elements of it.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Npossetoid/ONEpos.con" as definition.
+
+inline procedural "cic:/CoRN/model/setoids/Npossetoid/TWOpos.con" as definition.
+
+(*#* ***Addition and multiplication
+Because addition and multiplication preserve positivity, we can define 
+them on this subsetoid.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Npossetoid/plus_resp_Npos.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Npossetoid/Npos_plus.con" as definition.
+
+inline procedural "cic:/CoRN/model/setoids/Npossetoid/mult_resp_Npos.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Npossetoid/Npos_mult.con" as definition.
+
+(*#* The addition has no right unit on this set.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Npossetoid/no_rht_unit_Npos1.con" as lemma.
+
+(*#* And the multiplication doesn't have an inverse, because there can't be an
+inverse for 2.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Npossetoid/no_inverse_Nposmult1.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/setoids/Nsetoid.mma b/helm/software/matita/contribs/procedural/CoRN/model/setoids/Nsetoid.mma
new file mode 100644 (file)
index 0000000..8108471
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Nsetoid.v,v 1.4 2004/04/06 15:46:04 lcf Exp $ *)
+
+include "model/structures/Nsec.ma".
+
+include "algebra/CSetoidFun.ma".
+
+(*#* **Example of a setoid: [nat]
+
+We will show that the natural numbers form a CSetoid. 
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Nsetoid/ap_nat_irreflexive.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Nsetoid/ap_nat_symmetric.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Nsetoid/ap_nat_cotransitive.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Nsetoid/ap_nat_tight.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Nsetoid/ap_nat_is_apartness.con" as definition.
+
+inline procedural "cic:/CoRN/model/setoids/Nsetoid/nat_as_CSetoid.con" as definition.
+
+(*#* ***Addition
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Nsetoid/plus_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Nsetoid/plus_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Nsetoid/plus_is_bin_fun.con" as definition.
+
+(*#* It is associative and commutative.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Nsetoid/plus_is_assoc.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Nsetoid/plus_is_commut.con" as lemma.
+
+(*#* ***Multiplication
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Nsetoid/mult_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Nsetoid/mult_as_bin_fun.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/setoids/Qpossetoid.mma b/helm/software/matita/contribs/procedural/CoRN/model/setoids/Qpossetoid.mma
new file mode 100644 (file)
index 0000000..fb7426c
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Qpossetoid.v,v 1.4 2004/04/06 15:46:05 lcf Exp $ *)
+
+include "model/setoids/Qsetoid.ma".
+
+include "algebra/CSetoidFun.ma".
+
+include "model/structures/Qpossec.ma".
+
+(*#* **Example of a setoid: [Qpos]
+***Setoid
+We will examine the subsetoid of positive rationals of the setoid of 
+rational numbers.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/Qpos.con" as definition.
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/QposP.con" as definition.
+
+(*#* One, two and four are elements of it.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/QONEpos.con" as definition.
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/QTWOpos.con" as definition.
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/QFOURpos.con" as definition.
+
+(*#* ***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 procedural "cic:/CoRN/model/setoids/Qpossetoid/Qmult_pres_pos1.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/Qpos_mult.con" as definition.
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/associative_Qpos_mult.con" as lemma.
+
+(*#* ***Inverse
+We restrict the domain of the inverse to the set of positive rationals.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/Qpos_inv.con" as definition.
+
+(*#* The restricted inverse preserves positivity.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/inv_pres_pos1.con" as lemma.
+
+(*#* Now, we can also restrict the co-domain.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/Qpos_Qpos_inv.con" as definition.
+
+(*#* This restricted inverse map appears a setoid function.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/Qpos_Qpos_inv_strong_ext.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/Qpos_Qpos_inv_op.con" as definition.
+
+(*#* ***Special multiplication and inverse
+We define [multdiv2]: $(x,y) \mapsto xy/2$ #(x,y) &#x21A6; xy/2#.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/Qpos_div2.con" as definition.
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/multdiv2.con" as definition.
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/associative_multdiv2.con" as lemma.
+
+(*#* And its inverse [multdiv4]: $x \mapsto 4/x$ #x &#x21A6; 4/x#.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/mult4.con" as definition.
+
+inline procedural "cic:/CoRN/model/setoids/Qpossetoid/divmult4.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/setoids/Qsetoid.mma b/helm/software/matita/contribs/procedural/CoRN/model/setoids/Qsetoid.mma
new file mode 100644 (file)
index 0000000..4fa3c33
--- /dev/null
@@ -0,0 +1,88 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Qsetoid.v,v 1.6 2004/04/06 15:46:05 lcf Exp $ *)
+
+include "model/structures/Qsec.ma".
+
+include "algebra/CSetoidFun.ma".
+
+(*#* **Example of a setoid: [Q]
+***Setoid
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/ap_Q_irreflexive1.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/ap_Q_symmetric1.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/ap_Q_cotransitive1.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/ap_Q_tight1.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/ap_Q_is_apartness.con" as definition.
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Q_as_CSetoid.con" as definition.
+
+(*#* ***Addition
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Qplus_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Qplus_strext1.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Qplus_is_bin_fun.con" as definition.
+
+(*#* It is associative and commutative.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Qplus_is_assoc.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Qplus_is_commut1.con" as lemma.
+
+(*#* ***Opposite
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Qopp_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Qopp_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Qopp_is_fun.con" as definition.
+
+(*#* ***Multiplication
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Qmult_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Qmult_strext1.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Qmult_is_bin_fun.con" as definition.
+
+(*#* It is associative and commutative.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Qmult_is_assoc.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Qmult_is_commut.con" as lemma.
+
+(*#* ***Less-than
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Qlt_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Qsetoid/Qlt_is_CSetoid_relation.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/setoids/Zsetoid.mma b/helm/software/matita/contribs/procedural/CoRN/model/setoids/Zsetoid.mma
new file mode 100644 (file)
index 0000000..ea9b92b
--- /dev/null
@@ -0,0 +1,82 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Zsetoid.v,v 1.5 2004/04/07 15:08:08 lcf Exp $ *)
+
+include "model/structures/Zsec.ma".
+
+include "algebra/CSetoidFun.ma".
+
+(*#* **Example of a setoid: [Z]
+*** [Z]
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/ap_Z_irreflexive.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/ap_Z_symmetric.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/ap_Z_cotransitive.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/ap_Z_tight.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/ap_Z_is_apartness.con" as definition.
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/Z_as_CSetoid.con" as definition.
+
+(*#* 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 procedural "cic:/CoRN/model/setoids/Zsetoid/Zplus_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/Zplus_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/Zplus_is_bin_fun.con" as definition.
+
+(*#* What's more: the addition is also associative and commutative.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/Zplus_is_assoc.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/Zplus_is_commut.con" as lemma.
+
+(*#* ***Opposite
+Taking the opposite of an integer is a setoid function.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/Zopp_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/Zopp_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/Zopp_is_fun.con" as definition.
+
+(*#* ***Multiplication
+Finally the multiplication is a setoid function and is associative and commutative.
+*)
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/Zmult_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/Zmult_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/Zmult_is_bin_fun.con" as definition.
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/Zmult_is_assoc.con" as lemma.
+
+inline procedural "cic:/CoRN/model/setoids/Zsetoid/Zmult_is_commut.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/structures/Npossec.mma b/helm/software/matita/contribs/procedural/CoRN/model/structures/Npossec.mma
new file mode 100644 (file)
index 0000000..7e292a4
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Npossec.v,v 1.3 2004/04/06 15:46:05 lcf Exp $ *)
+
+(*#* printing Npos $\mathbb{N}^{+}$ #N<SUP>+</SUP># *)
+
+include "model/structures/Nsec.ma".
+
+(*#* **[Npos]
+The positive natural numbers have some nice properties. Addition as well 
+as multiplication preserve the feature of being positive.
+*)
+
+inline procedural "cic:/CoRN/model/structures/Npossec/plus_resp_Npos0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Npossec/Npos_is_suc.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Npossec/mult_resp_Npos0.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/structures/Nsec.mma b/helm/software/matita/contribs/procedural/CoRN/model/structures/Nsec.mma
new file mode 100644 (file)
index 0000000..a4e44ce
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Nsec.v,v 1.6 2004/04/06 15:46:05 lcf Exp $ *)
+
+(*#* printing {#N} $\ensuremath{\mathrel\#_{\mathbb N}}$ *)
+
+include "algebra/CLogic.ma".
+
+(*#* *[nat]
+**About [nat]
+
+We prove some basic lemmas of the natural numbers.
+
+A variant of [0_S] from the standard library
+*)
+
+inline procedural "cic:/CoRN/model/structures/Nsec/S_O.con" as lemma.
+
+(*#* ***Apartness
+*)
+
+inline procedural "cic:/CoRN/model/structures/Nsec/ap_nat.con" as definition.
+
+(* NOTATION
+Infix "{#N}" := ap_nat (no associativity, at level 90).
+*)
+
+inline procedural "cic:/CoRN/model/structures/Nsec/ap_nat_irreflexive0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Nsec/ap_nat_symmetric0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Nsec/ap_nat_cotransitive0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Nsec/ap_nat_tight0.con" as lemma.
+
+(*#* ***Addition
+*)
+
+inline procedural "cic:/CoRN/model/structures/Nsec/plus_strext0.con" as lemma.
+
+(*#* There is no inverse for addition, because every candidate will fail for 2
+*)
+
+inline procedural "cic:/CoRN/model/structures/Nsec/no_inverse0.con" as lemma.
+
+(*#* ***Multiplication
+*)
+
+inline procedural "cic:/CoRN/model/structures/Nsec/mult_strext0.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/structures/Qpossec.mma b/helm/software/matita/contribs/procedural/CoRN/model/structures/Qpossec.mma
new file mode 100644 (file)
index 0000000..81d7c1c
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Qpossec.v,v 1.5 2004/04/06 15:46:05 lcf Exp $ *)
+
+(*#* printing Qpos $\mathbb{Q}^{+}$ #Q<SUP>+</SUP># *)
+
+include "model/structures/Qsec.ma".
+
+include "algebra/CLogic.ma".
+
+(*#* **About [Qpos]
+We will prove some lemmas concerning rationals bigger than 0.
+
+***Constants
+One, two and four are all bigger than zero.
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qpossec/pos_QONE.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qpossec/pos_QTWO.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qpossec/pos_QFOUR.con" as lemma.
+
+(*#* A positive rational is not zero.
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qpossec/pos_imp_nonzero.con" as definition.
+
+(*#* ***Multiplication
+The product of two positive rationals is again positive.
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qpossec/Qmult_pres_pos0.con" as lemma.
+
+(*#* ***Inverse
+The inverse of a positive rational is again positive.
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qpossec/inv_pres_pos0.con" as lemma.
+
+(*#* ***Special multiplication
+Now we will investigate the function $(x,y) \mapsto xy/2$#(x,y)
+&#x21A6; xy/2#. We will see that its unit is 2. Its inverse map is $x
+\mapsto 4/x$ #x &#x21A6; 4/x#.
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qpossec/QTWOpos_is_rht_unit0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qpossec/QTWOpos_is_left_unit0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qpossec/multdiv2_is_inv.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/structures/Qsec.mma b/helm/software/matita/contribs/procedural/CoRN/model/structures/Qsec.mma
new file mode 100644 (file)
index 0000000..3964117
--- /dev/null
@@ -0,0 +1,266 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $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}}% #0<sub>Q</sub># *)
+
+(*#* printing QONE %\ensuremath{1_\mathbb{Q}}% #1<sub>Q</sub># *)
+
+(*#* printing QTWO %\ensuremath{2_\mathbb{Q}}% #2<sub>Q</sub># *)
+
+(*#* printing QFOUR %\ensuremath{4_\mathbb{Q}}% #4<sub>Q</sub># *)
+
+include "algebra/CLogic.ma".
+
+include "model/structures/Zsec.ma".
+
+(*#* *[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$#&lang;a,n&rang;# with [a:Z] and
+[n:positive]. Intuitively, $\langle a,n\rangle$#&lang;a,n&rang;#
+represents the rational number [a[/]n]. Then there is the equality on
+[Q]: $\langle a,m\rangle=\langle
+b,n\rangle$#&lang;a,m&rang;=&lang;b,n&rang;# iff [an [=] bm]. We
+also define apartness, order, addition, multiplication, opposite,
+inverse an de constants 0 and 1.  *)
+
+(* UNEXPORTED
+Section Q
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Q.ind".
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qeq.con" as definition.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qap.con" as definition.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qlt.con" as definition.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qplus.con" as definition.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qmult.con" as definition.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qopp.con" as definition.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/QZERO.con" as definition.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/QONE.con" as definition.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qinv.con" as definition.
+
+(* UNEXPORTED
+End Q
+*)
+
+(* NOTATION
+Infix "{=Q}" := Qeq (no associativity, at level 90).
+*)
+
+(* NOTATION
+Infix "{#Q}" := Qap (no associativity, at level 90).
+*)
+
+(* NOTATION
+Infix "{<Q}" := Qlt (no associativity, at level 90).
+*)
+
+(* NOTATION
+Infix "{+Q}" := Qplus (no associativity, at level 85).
+*)
+
+(* NOTATION
+Infix "{*Q}" := Qmult (no associativity, at level 80).
+*)
+
+(* NOTATION
+Notation "{-Q}" := Qopp (at level 1, left associativity).
+*)
+
+(*#* ***Constants
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/QTWO.con" as definition.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/QFOUR.con" as definition.
+
+(*#* ***Equality
+Here we prove that [QONE] is #<i>#%\emph{%not equal%}%#</i># to [QZERO]: 
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/ONEQ_neq_ZEROQ.con" as theorem.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/refl_Qeq.con" as theorem.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/sym_Qeq.con" as theorem.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/trans_Qeq.con" as theorem.
+
+(*#*
+ The equality is decidable: 
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/dec_Qeq.con" as theorem.
+
+(*#* ***Apartness
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Q_non_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/ap_Q_irreflexive0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/ap_Q_symmetric0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/ap_Q_cotransitive0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/ap_Q_tight0.con" as lemma.
+
+(*#* ***Addition
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qplus_simpl.con" as theorem.
+
+(*#* 
+ Addition is associative:
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qplus_assoc.con" as theorem.
+
+(*#*
+ [QZERO] as the neutral element for addition:
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/QZERO_right.con" as theorem.
+
+(*#*
+ Commutativity of addition:
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qplus_sym.con" as theorem.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qplus_strext0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/ZEROQ_as_rht_unit0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/ZEROQ_as_lft_unit0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qplus_is_commut0.con" as lemma.
+
+(*#* ***Opposite
+ [{-Q}] is a well defined unary operation: 
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qopp_simpl.con" as lemma.
+
+(*#*
+ The group equation for [{-Q}]
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qplus_inverse_r.con" as theorem.
+
+(*#* ***Multiplication
+Next we shall prove the properties of multiplication. First we prove
+that [{*Q}] is well-defined
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qmult_simpl.con" as theorem.
+
+(*#*
+ and it is associative:
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qmult_assoc.con" as theorem.
+
+(*#*
+ [QONE] is the neutral element for multiplication:
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qmult_n_1.con" as theorem.
+
+(*#*
+ The commutativity for [{*Q}]:
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qmult_sym.con" as theorem.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qmult_plus_distr_r.con" as theorem.
+
+(*#*
+ And a property of multiplication which says if [x [~=] Zero] and [xy [=] Zero] then [y [=] Zero]:
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qmult_eq.con" as theorem.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qmult_strext0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/nonZero.con" as lemma.
+
+(*#* ***Inverse
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qinv_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qinv_is_inv.con" as lemma.
+
+(*#* ***Less-than
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qlt_wd_right.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qlt_wd_left.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qlt_eq_gt_dec.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qlt_is_transitive_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qlt_strext_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qlt_is_irreflexive_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qlt_is_antisymmetric_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qplus_resp_Qlt.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qmult_resp_pos_Qlt.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Qlt_gives_apartness.con" as lemma.
+
+(*#* ***Miscellaneous
+We consider the injection [inject_Z] from [Z] to [Q] as a coercion.
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/inject_Z.con" as definition.
+
+(* COERCION
+cic:/matita/CoRN-Procedural/model/structures/Qsec/inject_Z.con
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/injz_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Qsec/injZ_One.con" as lemma.
+
+(*#* We can always find a natural number that is bigger than a given rational
+number.
+*)
+
+inline procedural "cic:/CoRN/model/structures/Qsec/Q_is_archemaedian0.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/model/structures/Zsec.mma b/helm/software/matita/contribs/procedural/CoRN/model/structures/Zsec.mma
new file mode 100644 (file)
index 0000000..b30c4c8
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Zsec.v,v 1.5 2004/04/06 15:46:05 lcf Exp $ *)
+
+(*#* printing {#Z} %\ensuremath{\mathrel\#_{\mathbb Z}}% *)
+
+include "algebra/CLogic.ma".
+
+(*#* *[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 procedural "cic:/CoRN/model/structures/Zsec/ap_Z.con" as definition.
+
+(* NOTATION
+Infix "{#Z}" := ap_Z (no associativity, at level 90).
+*)
+
+(*#* Some properties of apartness:
+*)
+
+inline procedural "cic:/CoRN/model/structures/Zsec/ap_Z_irreflexive0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Zsec/ap_Z_symmetric0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Zsec/ap_Z_cotransitive0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Zsec/ap_Z_tight0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Zsec/ONE_neq_O.con" as lemma.
+
+(*#* ***Addition
+Some properties of the addition. [Zplus] is also defined in the standard 
+library.
+*)
+
+inline procedural "cic:/CoRN/model/structures/Zsec/Zplus_wd0.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Zsec/Zplus_strext0.con" as lemma.
+
+(*#* ***Multiplication
+The multiplication is extensional:
+*)
+
+inline procedural "cic:/CoRN/model/structures/Zsec/Zmult_strext0.con" as lemma.
+
+(*#* ***Miscellaneous
+*)
+
+inline procedural "cic:/CoRN/model/structures/Zsec/Zpos.con" as definition.
+
+(* begin hide *)
+
+(* COERCION
+cic:/Coq/ZArith/BinInt/Z.ind#xpointer(1/1/2)
+*)
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/model/structures/Zsec/a_very_specific_lemma1.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Zsec/a_very_specific_lemma2.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Zsec/a_very_specific_lemma3.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Zsec/a_very_specific_lemma4.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Zsec/a_very_specific_lemma5.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Zsec/Zpos_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Zsec/Zpos_neg.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Zsec/Zpos_Zsgn.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Zsec/Zpos_Zsgn2.con" as lemma.
+
+inline procedural "cic:/CoRN/model/structures/Zsec/a_very_specific_lemma5'.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/preamble.ma b/helm/software/matita/contribs/procedural/CoRN/preamble.ma
new file mode 100644 (file)
index 0000000..8c32521
--- /dev/null
@@ -0,0 +1,21 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "coq.ma".
+
+alias id "refl_equal" = "cic:/Coq/Init/Logic/eq.ind#xpointer(1/1/1)".
+alias id "False" = "cic:/Coq/Init/Logic/False.ind#xpointer(1/1)".
+alias id "True" = "cic:/Coq/Init/Logic/True.ind#xpointer(1/1)".
+alias id "I" = "cic:/Coq/Init/Logic/True.ind#xpointer(1/1/1)".
+alias id "sym_eq" = "cic:/Coq/Init/Logic/sym_eq.con".  
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/Bridges_LUB.mma b/helm/software/matita/contribs/procedural/CoRN/reals/Bridges_LUB.mma
new file mode 100644 (file)
index 0000000..69f62c2
--- /dev/null
@@ -0,0 +1,232 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* 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 "reals/iso_CReals.ma".
+
+include "algebra/Expon.ma".
+
+(* UNEXPORTED
+Section LUBP
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_LUB/LUBP/R1.var
+*)
+
+(* SUBSECTION ON GENRAL DEFINITIONS *)
+
+(* UNEXPORTED
+Section lub_definitions
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_LUB/LUBP/lub_definitions/OF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_LUB/LUBP/lub_definitions/SS.var
+*)
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/member.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/Pmember.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/is_upper_bound.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/l_u_b.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/supremum.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/Psupremum.con" as definition.
+
+(* the following definitions are not used in *)
+
+(* this file but later we will need them     *)
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/is_lower_bound.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/g_l_b.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/infimum.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/Pinfimum.con" as definition.
+
+(* UNEXPORTED
+End lub_definitions
+*)
+
+(* MAIN SECTION *)
+
+(* UNEXPORTED
+Section upper_bound_sequence
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_LUB/LUBP/upper_bound_sequence/A.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_LUB/LUBP/upper_bound_sequence/is_inhabitted.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_LUB/LUBP/upper_bound_sequence/bounded_above.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_LUB/LUBP/upper_bound_sequence/located.var
+*)
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/LUBP/upper_bound_sequence/s.con" "LUBP__upper_bound_sequence__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/LUBP/upper_bound_sequence/Ps.con" "LUBP__upper_bound_sequence__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/LUBP/upper_bound_sequence/b0.con" "LUBP__upper_bound_sequence__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/LUBP/upper_bound_sequence/Pb0.con" "LUBP__upper_bound_sequence__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/b0_is_upper_bound.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/s_inhabits_A.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/LUBP/upper_bound_sequence/dstart_l.con" "LUBP__upper_bound_sequence__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/LUBP/upper_bound_sequence/dstart_r.con" "LUBP__upper_bound_sequence__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/dl_less_dr.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/shrink23d.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/shrink13d.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/shrink24d.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/Real_Interval.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/dcotrans_analyze.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/dcotrans_analyze_strong.con" as lemma.
+
+(* NOTATION
+Notation "( p , q )" := (pairT p q).
+*)
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/dif_cotrans.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/dif_cotrans_strong.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/dIntrvl.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/LUBP/upper_bound_sequence/U.con" "LUBP__upper_bound_sequence__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/LUBP/upper_bound_sequence/V.con" "LUBP__upper_bound_sequence__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/LUBP/upper_bound_sequence/W.con" "LUBP__upper_bound_sequence__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/delta_dIntrvl.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/Length_dIntrvl.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/dIntrvl_inside_l_n.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/dIntrvl_inside_r_n.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/V_increase.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/W_decrease.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/U_m_n_V.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/U_m_n_W.con" as lemma.
+
+(*  These lemma are *very* similar to those in  *)
+
+(*  Cauchy_rationals_approach_reals.v           *)
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/a_familiar_simple_inequality.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/U_conversion_rate2.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/CS_seq_U.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/U_as_CauchySeq.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/LUBP/upper_bound_sequence/B.con" "LUBP__upper_bound_sequence__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/U_minus_V.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/U_minus_W.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/U_V_upper.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/U_W_lower.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/AbsSmall_U_V.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/AbsSmall_U_W.con" as lemma.
+
+(* Two properties of exponentiation in COrdFields *)
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/nexp_resp_great_One.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/very_weak_binomial.con" as lemma.
+
+(* A consequence of Archimedean property -         *)
+
+(* the every basis of definition of e=lim(1+1/n)^n *)
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/nexp_resp_Two.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/twisted_archimedean.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/B_limit_V.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/B_limit_W.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/W_n_is_upper.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/A_bounds_V_n.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_LUB/cauchy_gives_lub.con" as theorem.
+
+(* UNEXPORTED
+End upper_bound_sequence
+*)
+
+(* UNEXPORTED
+End LUBP
+*)
+
+(* end hide *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/Bridges_iso.mma b/helm/software/matita/contribs/procedural/CoRN/reals/Bridges_iso.mma
new file mode 100644 (file)
index 0000000..9b8cf3b
--- /dev/null
@@ -0,0 +1,327 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* 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 "reals/Bridges_LUB.ma".
+
+(* This lemma comes from lemmas.v of Martijn Oostdijk *)
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/le_witness_informative.con" as lemma.
+
+(* UNEXPORTED
+Section bridges_axioms_imply_ours
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/OF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/lubp.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/is_Archimedes.var
+*)
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/is_Archimedes'.con" as lemma.
+
+(* UNEXPORTED
+Section proofs_in_TCS
+*)
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/leEq_geEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/glbp.con" as theorem.
+
+(* UNEXPORTED
+Section supremum
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/proofs_in_TCS/supremum/P.var
+*)
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/inequality1.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/inequality2.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/inequality3.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/inequality4.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Hum.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/bound_tk1.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/bound_tk2.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/trick.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/trick'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/up_bound_for_n_element.con" as theorem.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/low_bound_for_n_element.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/saghf.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Psaghf.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/kaf.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Pkaf.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/proofs_in_TCS/supremum/is_finite_P.var
+*)
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/card.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Pcard1.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/seq.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Pseq1.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Pseq1_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/indeks.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Pindeks.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/proofs_in_TCS/supremum/is_onto_seq_P.var
+*)
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/P_is_inhabited.con" as lemma.
+
+(*
+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 procedural "cic:/CoRN/reals/Bridges_iso/bounded_quantifier_informative.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/bridges_lemma1a.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/proofs_in_TCS/supremum/P_is_strongly_extensional.var
+*)
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/bridges_lemma1b.con" as lemma.
+
+(* UNEXPORTED
+End supremum
+*)
+
+(*#**********************************)
+
+(*#**********************************)
+
+(*#**********************************)
+
+(*#**********************************)
+
+(* UNEXPORTED
+Section Every_Cauchy_Sequence_is_bounded
+*)
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/seq2set.con" as definition.
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/proofs_in_TCS/Every_Cauchy_Sequence_is_bounded/g.var
+*)
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/proofs_in_TCS/Every_Cauchy_Sequence_is_bounded/g_.con" "bridges_axioms_imply_ours__proofs_in_TCS__Every_Cauchy_Sequence_is_bounded__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/proofs_in_TCS/Every_Cauchy_Sequence_is_bounded/pg.con" "bridges_axioms_imply_ours__proofs_in_TCS__Every_Cauchy_Sequence_is_bounded__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/proofs_in_TCS/Every_Cauchy_Sequence_is_bounded/P.con" "bridges_axioms_imply_ours__proofs_in_TCS__Every_Cauchy_Sequence_is_bounded__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/fin_is_fin.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/card_fin.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/finite_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/bridges_lemma2a.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/sup.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Psup.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Psup_proj1.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Psup_unfolded1.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Psup_unfolded2.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/bridges_lemma2b.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/inf.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Pinf.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Pinf_proj1.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Pinf_unfolded1.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Pinf_unfolded2.con" as lemma.
+
+(* I tried very much not to mention this lemma! *)
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/sup_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/inf_geEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/tail_is_Cauchy.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/tail_seq.con" as definition.
+
+(* UNEXPORTED
+End Every_Cauchy_Sequence_is_bounded
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/proofs_in_TCS/g.var
+*)
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/proofs_in_TCS/g_.con" "bridges_axioms_imply_ours__proofs_in_TCS__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/proofs_in_TCS/pg.con" "bridges_axioms_imply_ours__proofs_in_TCS__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/proofs_in_TCS/sup_tail.con" "bridges_axioms_imply_ours__proofs_in_TCS__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/sup_tail_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/sup_tail_is_Cauchy.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/sup_tail_as_Cauchy.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/bridges_axioms_imply_ours/proofs_in_TCS/L.con" "bridges_axioms_imply_ours__proofs_in_TCS__" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/sup_tail_decrease.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/L_less_sup_n.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Psup_unfolded2_informative.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Pinf_unfolded2_informative.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/convergent_subseq.con" as lemma.
+
+(* very elegant proof almost as short as text version! *)
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/lubp_gives_Cauchy.con" as theorem.
+
+(* UNEXPORTED
+End proofs_in_TCS
+*)
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Bridges_R_is_CReals.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Bridges_iso/Bridges_R_as_CReals.con" as definition.
+
+(* UNEXPORTED
+End bridges_axioms_imply_ours
+*)
+
+(* end hide *)
+
+(*#* remove printing Q *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/CMetricFields.mma b/helm/software/matita/contribs/procedural/CoRN/reals/CMetricFields.mma
new file mode 100644 (file)
index 0000000..4230a88
--- /dev/null
@@ -0,0 +1,93 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CMetricFields.v,v 1.6 2004/04/23 10:01:03 lcf Exp $ *)
+
+include "reals/CReals1.ma".
+
+(* UNEXPORTED
+Section CMetric_Fields
+*)
+
+(*#* *Metric Fields *)
+
+inline procedural "cic:/CoRN/reals/CMetricFields/is_CMetricField.ind".
+
+inline procedural "cic:/CoRN/reals/CMetricFields/CMetricField.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/reals/CMetricFields/cmf_crr.con
+*)
+
+(* UNEXPORTED
+End CMetric_Fields
+*)
+
+(* NOTATION
+Notation MAbs := (cmf_abs _).
+*)
+
+(* UNEXPORTED
+Section basics
+*)
+
+inline procedural "cic:/CoRN/reals/CMetricFields/MAbs_one.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CMetricFields/Hulp.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CMetricFields/MAbs_one_recip_one.con" as lemma.
+
+(* end hide *)
+
+(* UNEXPORTED
+End basics
+*)
+
+(* UNEXPORTED
+Section CMetric_Field_Cauchy
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CMetricFields/CMetric_Field_Cauchy/F.var
+*)
+
+(*#*
+%\begin{convention}% Let [F:CMetricField].
+%\end{convention}%
+*)
+
+inline procedural "cic:/CoRN/reals/CMetricFields/MCauchy_prop.con" as definition.
+
+inline procedural "cic:/CoRN/reals/CMetricFields/MCauchySeq.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/reals/CMetricFields/MCS_seq.con
+*)
+
+inline procedural "cic:/CoRN/reals/CMetricFields/MseqLimit.con" as definition.
+
+inline procedural "cic:/CoRN/reals/CMetricFields/is_MCauchyCompl.con" as definition.
+
+(* UNEXPORTED
+End CMetric_Field_Cauchy
+*)
+
+(* UNEXPORTED
+Implicit Arguments MseqLimit [F].
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/CPoly_Contin.mma b/helm/software/matita/contribs/procedural/CoRN/reals/CPoly_Contin.mma
new file mode 100644 (file)
index 0000000..a9e6c78
--- /dev/null
@@ -0,0 +1,32 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CPoly_Contin.v,v 1.6 2004/04/23 10:01:03 lcf Exp $ *)
+
+(*#* * Continuity of polynomials *)
+
+include "reals/RealFuncts.ma".
+
+inline procedural "cic:/CoRN/reals/CPoly_Contin/plus_op_contin.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CPoly_Contin/mult_op_contin.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CPoly_Contin/linear_op_contin.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CPoly_Contin/cpoly_op_contin.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/CReals.mma b/helm/software/matita/contribs/procedural/CoRN/reals/CReals.mma
new file mode 100644 (file)
index 0000000..724ff89
--- /dev/null
@@ -0,0 +1,51 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CReals.v,v 1.2 2004/04/05 11:35:38 lcf Exp $ *)
+
+(*#* printing Lim %\ensuremath{\lim}% *)
+
+include "algebra/COrdCauchy.ma".
+
+(*#* * 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 procedural "cic:/CoRN/reals/CReals/is_CReals.ind".
+
+inline procedural "cic:/CoRN/reals/CReals/CReals.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/reals/CReals/crl_crr.con
+*)
+
+(* End_SpecReals *)
+
+inline procedural "cic:/CoRN/reals/CReals/Lim.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments Lim [IR].
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/CReals1.mma b/helm/software/matita/contribs/procedural/CoRN/reals/CReals1.mma
new file mode 100644 (file)
index 0000000..3fc8a87
--- /dev/null
@@ -0,0 +1,194 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CReals1.v,v 1.4 2004/04/23 10:01:04 lcf Exp $ *)
+
+include "reals/Max_AbsIR.ma".
+
+include "algebra/Expon.ma".
+
+include "algebra/CPoly_ApZero.ma".
+
+(* 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 procedural "cic:/CoRN/reals/CReals1/twice_inv_seq_Lim.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CReals1/twice_inv_seq.con" as definition.
+
+(*#* 
+Next, we prove that the sequence of absolute values of a Cauchy 
+sequence is also Cauchy.
+*)
+
+inline procedural "cic:/CoRN/reals/CReals1/Cauchy_Lim_abs.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CReals1/Cauchy_abs.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CReals1/Lim_abs.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CReals1/Subsequences/seq1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CReals1/Subsequences/seq2.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CReals1/Subsequences/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CReals1/Subsequences/monF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CReals1/Subsequences/crescF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CReals1/Subsequences/subseq.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CReals1/Subsequences/mon_seq2.var
+*)
+
+inline procedural "cic:/CoRN/reals/CReals1/unbnd_f.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/CReals1/Subsequences/mon_F'.con" "Subsequences__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/CReals1/conv_subseq_imp_conv_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CReals1/Cprop2_seq_imp_Cprop2_subseq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CReals1/conv_seq_imp_conv_subseq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CReals1/Cprop2_subseq_imp_Cprop2_seq.con" as lemma.
+
+(* UNEXPORTED
+End Subsequences
+*)
+
+(* UNEXPORTED
+Section Cauchy_Subsequences
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CReals1/Cauchy_Subsequences/seq1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CReals1/Cauchy_Subsequences/seq2.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CReals1/Cauchy_Subsequences/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CReals1/Cauchy_Subsequences/monF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CReals1/Cauchy_Subsequences/crescF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CReals1/Cauchy_Subsequences/subseq.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CReals1/Cauchy_Subsequences/mon_seq2.var
+*)
+
+inline procedural "cic:/CoRN/reals/CReals1/Lim_seq_eq_Lim_subseq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CReals1/Lim_subseq_eq_Lim_seq.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/reals/CReals1/power_big'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CReals1/power_big.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CReals1/qi_yields_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CReals1/qi_lim_zero.con" as lemma.
+
+(* UNEXPORTED
+End Properties_of_Exponentiation
+*)
+
+(*#* *** [IR] has characteristic zero *)
+
+inline procedural "cic:/CoRN/reals/CReals1/char0_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CReals1/poly_apzero_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CReals1/poly_IR_extensional.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/CSumsReals.mma b/helm/software/matita/contribs/procedural/CoRN/reals/CSumsReals.mma
new file mode 100644 (file)
index 0000000..6d3adf1
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: CSumsReals.v,v 1.5 2004/04/23 10:01:04 lcf Exp $ *)
+
+include "reals/CReals1.ma".
+
+(*#* * 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&le; i &le; n) c^k = frac (c^(n+1) -c^m) (c-1)#
+*)
+
+(* UNEXPORTED
+Section Sums_over_Reals
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/CSumsReals/Sums_over_Reals/c.var
+*)
+
+inline procedural "cic:/CoRN/reals/CSumsReals/Sum0_c_exp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Sum0_c_exp.
+*)
+
+inline procedural "cic:/CoRN/reals/CSumsReals/Sum_c_exp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Sum_c_exp.
+*)
+
+(*#* The following formulation is often more useful if [c [<] 1]. *)
+
+inline procedural "cic:/CoRN/reals/CSumsReals/Sum_c_exp'.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/reals/CSumsReals/diff_is_Sum0.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CSumsReals/diff_is_sum.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CSumsReals/Sum0_pres_less.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CSumsReals/Sum_pres_less.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CSumsReals/Sum_pres_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CSumsReals/Sum0_comm_scal.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Sum0_comm_scal: algebra.
+*)
+
+inline procedural "cic:/CoRN/reals/CSumsReals/Sum_comm_scal.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CSumsReals/Sum0_comm_scal'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CSumsReals/Sum_comm_scal'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CSumsReals/Sumx_comm_scal'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CSumsReals/Sum2_comm_scal'.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/CauchySeq.mma b/helm/software/matita/contribs/procedural/CoRN/reals/CauchySeq.mma
new file mode 100644 (file)
index 0000000..d736856
--- /dev/null
@@ -0,0 +1,313 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $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 "reals/CReals.ma".
+
+(*#* *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 procedural "cic:/CoRN/reals/CauchySeq/IR.con".
+
+(* NOTATION
+Notation PartIR := (PartFunct IR).
+*)
+
+(* NOTATION
+Notation ProjIR1 := (prj1 IR _ _ _).
+*)
+
+(* NOTATION
+Notation ProjIR2 := (prj2 IR _ _ _).
+*)
+
+include "tactics/Transparent_algebra.ma".
+
+(* begin hide *)
+
+(* NOTATION
+Notation ZeroR := (Zero:IR).
+*)
+
+(* NOTATION
+Notation OneR := (One:IR).
+*)
+
+(* end hide *)
+
+(* UNEXPORTED
+Section CReals_axioms
+*)
+
+(*#* ** [CReals] axioms *)
+
+inline procedural "cic:/CoRN/reals/CauchySeq/CReals_is_CReals.con" as lemma.
+
+(*#* First properties which follow trivially from the axioms.  *)
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_Cauchy.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Archimedes.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Archimedes'.con" as lemma.
+
+(*#* A stronger version, which often comes in useful.  *)
+
+inline procedural "cic:/CoRN/reals/CauchySeq/str_Archimedes.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/CauchySeqR.con" as definition.
+
+(* 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&gt;0 there exists N such that for all m&ge; N |seqm-seqN|&le; 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 &ge; N |seqm-seqN| &le; 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 procedural "cic:/CoRN/reals/CauchySeq/Cauchy_prop1.con" as definition.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop2.con" as definition.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_prop2.con" as definition.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop3.con" as definition.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_prop3.con" as definition.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop4.con" as definition.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_prop4.con" as definition.
+
+(* UNEXPORTED
+End Cauchy_Defs
+*)
+
+(* UNEXPORTED
+Section Inequalities
+*)
+
+(*#* *** Inequalities of Limits
+
+The next lemma is equal to lemma [Lim_Cauchy].  *)
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_complete.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/less_Lim_so_less_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_less_so_seq_less.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_less_Lim_so_seq_less_seq.con" as lemma.
+
+(*#* The next lemma follows from [less_Lim_so_less_seq] with [y := (y[+] (Lim seq)) [/]TwoNZ].  *)
+
+inline procedural "cic:/CoRN/reals/CauchySeq/less_Lim_so.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_less_so.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/leEq_seq_so_leEq_Lim.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/str_leEq_seq_so_leEq_Lim.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_leEq_Lim.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/seq_leEq_so_Lim_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/str_seq_leEq_so_Lim_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Limits_unique.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_ap_imp_seq_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_ap_imp_seq_ap'.con" as lemma.
+
+(* UNEXPORTED
+End Inequalities
+*)
+
+(* UNEXPORTED
+Section Equiv_Cauchy
+*)
+
+(*#* *** Equivalence of formulations of Cauchy *)
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_prop1_prop.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_prop2_prop.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop3_prop2.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_prop3_prop2.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_prop3_prop.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Build_CauchySeq1.con" as definition.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop4_prop3.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop4_prop2.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_prop4_prop3.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_prop4_prop.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Build_CauchySeq4.con" as definition.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Build_CauchySeq4_y.con" as definition.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_CauchySeq4.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Build_CauchySeq2.con" as definition.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Build_CauchySeq2_y.con" as definition.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_CauchySeq2.con" as lemma.
+
+(*#* Well definedness. *)
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_prop_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_prop2_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_wd'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_unique.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/reals/CauchySeq/Cauchy_const.con" as definition.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_const.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_Lim_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Cauchy_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/CauchySeq/Lim_mult.con" as lemma.
+
+(* UNEXPORTED
+End Cauchy_props
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/Cauchy_CReals.mma b/helm/software/matita/contribs/procedural/CoRN/reals/Cauchy_CReals.mma
new file mode 100644 (file)
index 0000000..0fd1edd
--- /dev/null
@@ -0,0 +1,138 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Cauchy_CReals.v,v 1.5 2004/04/23 10:01:04 lcf Exp $ *)
+
+include "algebra/Cauchy_COF.ma".
+
+include "reals/CReals.ma".
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Cauchy_CReals/R_CReals/F.var
+*)
+
+(* NOTATION
+Notation "'R_COrdField''" := (R_COrdField F).
+*)
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/inject_Q.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_min.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_lt.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_ap.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_cancel_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_cancel_less.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_le.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_cancel_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_cancel_AbsSmall.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_One.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_nring'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_nring.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_mult.con" as lemma.
+
+(* UNEXPORTED
+Opaque R_COrdField.
+*)
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_div_three.con" as lemma.
+
+(* UNEXPORTED
+Transparent R_COrdField.
+*)
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/ing_n.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/expand_Q_R.con" as theorem.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/conv_modulus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/R_CReals/T.con" "R_CReals__" as definition.
+
+(*#* We now assume our original field is archimedean and prove that the
+resulting one is, too.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Cauchy_CReals/R_CReals/F_is_archemaedian.var
+*)
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/R_is_archemaedian.con" as theorem.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/R_CReals/PT.con" "R_CReals__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/modulus_property.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/modulus_property_2.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/expand_Q_R_2.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/CS_seq_diagonal.con" as lemma.
+
+(*#* ** Cauchy Completeness
+We can also define a limit operator.
+*)
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/Q_dense_in_R.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/LimR_CauchySeq.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/R_is_complete.con" as theorem.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/R_is_CReals.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Cauchy_CReals/R_as_CReals.con" as definition.
+
+(* UNEXPORTED
+End R_CReals
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/IVT.mma b/helm/software/matita/contribs/procedural/CoRN/reals/IVT.mma
new file mode 100644 (file)
index 0000000..b44cbcc
--- /dev/null
@@ -0,0 +1,288 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: IVT.v,v 1.5 2004/04/23 10:01:04 lcf Exp $ *)
+
+include "reals/CPoly_Contin.ma".
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Nested_Intervals/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Nested_Intervals/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Nested_Intervals/a_mon.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Nested_Intervals/b_mon.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Nested_Intervals/a_b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Nested_Intervals/b_a.var
+*)
+
+inline procedural "cic:/CoRN/reals/IVT/a_mon'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/IVT/b_mon'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/IVT/a_b'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/IVT/intervals_cauchy.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/IVT/Nested_Intervals/a'.con" "Nested_Intervals__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/IVT/Cnested_intervals_limit.con" as lemma.
+
+(*#* %\begin{convention}% Let [f] be a continuous real function.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Nested_Intervals/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Nested_Intervals/f_contin.var
+*)
+
+inline procedural "cic:/CoRN/reals/IVT/f_contin_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/IVT/f_contin_neg.con" as lemma.
+
+(*#* Assume also that [forall i, f (a i) [<=] Zero [<=] f (b i)]. *)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Nested_Intervals/f_a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Nested_Intervals/f_b.var
+*)
+
+inline procedural "cic:/CoRN/reals/IVT/Cnested_intervals_zero.con" as lemma.
+
+(* UNEXPORTED
+End Nested_Intervals
+*)
+
+(* UNEXPORTED
+Section Bisection
+*)
+
+(*#* ** Bissections *)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Bisection/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Bisection/f_apzero_interval.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Bisection/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Bisection/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Bisection/a_b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Bisection/f_a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Bisection/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 procedural "cic:/CoRN/reals/IVT/Bisection/Small.con" "Bisection__" as definition.
+
+inline procedural "cic:/CoRN/reals/IVT/Bisection/lft.con" "Bisection__" as definition.
+
+inline procedural "cic:/CoRN/reals/IVT/Bisection/rht.con" "Bisection__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/IVT/a_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/IVT/rht_b.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/IVT/lft_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/IVT/smaller_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/IVT/smaller_rht.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve smaller_lft smaller_rht: algebra.
+*)
+
+inline procedural "cic:/CoRN/reals/IVT/Cbisect'.con" as lemma.
+
+(* UNEXPORTED
+End Bisection
+*)
+
+(* UNEXPORTED
+Section Bisect_Interval
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Bisect_Interval/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/Bisect_Interval/C_f_apzero_interval.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/IVT/Bisect_Interval/Small.con" "Bisect_Interval__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/IVT/bisect_interval.ind".
+
+inline procedural "cic:/CoRN/reals/IVT/Cbisect_exists.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/IVT/bisect.con" as definition.
+
+inline procedural "cic:/CoRN/reals/IVT/bisect_prop.con" as lemma.
+
+(* UNEXPORTED
+End Bisect_Interval
+*)
+
+(* UNEXPORTED
+Section IVT_Op
+*)
+
+(*#* ** IVT for operations
+Same conventions as before.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/IVT_Op/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/IVT_Op/f_contin.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/IVT_Op/f_apzero_interval.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/IVT_Op/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/IVT_Op/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/IVT_Op/a_b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/IVT_Op/f_a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/IVT/IVT_Op/f_b.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/IVT/IVT_Op/Small.con" "IVT_Op__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/IVT/interval_sequence.con" as definition.
+
+inline procedural "cic:/CoRN/reals/IVT/IVT_Op/a_.con" "IVT_Op__" as definition.
+
+inline procedural "cic:/CoRN/reals/IVT/IVT_Op/b_.con" "IVT_Op__" as definition.
+
+inline procedural "cic:/CoRN/reals/IVT/intervals_smaller.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/IVT/intervals_small''.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/IVT/intervals_small'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/IVT/intervals_small.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/IVT/Civt_op.con" as lemma.
+
+(* UNEXPORTED
+End IVT_Op
+*)
+
+(* UNEXPORTED
+Section IVT_Poly
+*)
+
+(*#* ** IVT for polynomials *)
+
+inline procedural "cic:/CoRN/reals/IVT/Civt_poly.con" as lemma.
+
+(* UNEXPORTED
+End IVT_Poly
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/Intervals.mma b/helm/software/matita/contribs/procedural/CoRN/reals/Intervals.mma
new file mode 100644 (file)
index 0000000..db16077
--- /dev/null
@@ -0,0 +1,329 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Intervals.v,v 1.10 2004/04/23 10:01:04 lcf Exp $ *)
+
+include "algebra/CSetoidInc.ma".
+
+include "reals/RealLists.ma".
+
+(* 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 procedural "cic:/CoRN/reals/Intervals/compact.con" as definition.
+
+(*#*
+%\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)]].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Intervals/Intervals/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Intervals/Intervals/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Intervals/Intervals/Hab.var
+*)
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_inc_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_inc_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_Min_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_Min_rht.con" as lemma.
+
+(*#*
+As we will be interested in taking functions with domain in a compact
+interval, we want this predicate to be well defined.
+*)
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_wd.con" as lemma.
+
+(*#*
+Also, it will sometimes be necessary to rewrite the endpoints of an interval.
+*)
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_wd'.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/reals/Intervals/Frestr.con" as definition.
+
+(* UNEXPORTED
+End Intervals
+*)
+
+(* NOTATION
+Notation Compact := (compact _ _).
+*)
+
+(* UNEXPORTED
+Implicit Arguments Frestr [F P].
+*)
+
+(* NOTATION
+Notation FRestr := (Frestr (compact_wd _ _ _)).
+*)
+
+(* UNEXPORTED
+Section More_Intervals
+*)
+
+inline procedural "cic:/CoRN/reals/Intervals/included_refl'.con" as lemma.
+
+(*#* We prove some inclusions of compact intervals.  *)
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_map1.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_map2.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_map3.con" as definition.
+
+(* 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\]%#&forall;e&gt;0
+&exist;x<sub>1</sub>,...,x<sub>n</sub>&forall;y&isin;P&exist;
+1&le;i&le;n.|y-x<sub>i</sub>|&lt;e#.
+
+Notice the use of lists for quantification.
+*)
+
+inline procedural "cic:/CoRN/reals/Intervals/totally_bounded.con" as definition.
+
+(*#*
+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 procedural "cic:/CoRN/reals/Intervals/compact_is_totally_bounded.con" as lemma.
+
+(*#*
+Suprema and infima will be needed throughout; we define them here both
+for arbitrary subsets of [IR] and for images of functions.
+*)
+
+inline procedural "cic:/CoRN/reals/Intervals/set_glb_IR.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Intervals/set_lub_IR.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Intervals/fun_image.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Intervals/fun_glb_IR.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Intervals/fun_lub_IR.con" as definition.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/Intervals/Totally_Bounded/aux_seq_lub.con" "Totally_Bounded__" as definition.
+
+inline procedural "cic:/CoRN/reals/Intervals/Totally_Bounded/aux_seq_lub_prop.con" "Totally_Bounded__" as definition.
+
+(* end hide *)
+
+(*#*
+The following are probably the most important results in this section.
+*)
+
+inline procedural "cic:/CoRN/reals/Intervals/totally_bounded_has_lub.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/Intervals/Totally_Bounded/aux_seq_glb.con" "Totally_Bounded__" as definition.
+
+inline procedural "cic:/CoRN/reals/Intervals/Totally_Bounded/aux_seq_glb_prop.con" "Totally_Bounded__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/Intervals/totally_bounded_has_glb.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/reals/Intervals/included_compact.con" as lemma.
+
+(*#*
+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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Intervals/Compact/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Intervals/Compact/b.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Intervals/Compact/Hab.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/Intervals/Compact/I.con" "Compact__" as definition.
+
+(* end hide *)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Intervals/Compact/Hab'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Intervals/Compact/e.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Intervals/Compact/He.var
+*)
+
+(*#*
+We start by finding a natural number [n] such that [(b[-]a) [/] n [<] e].
+*)
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_nat.con" as definition.
+
+(*#* Obviously such an [n] must be greater than zero.*)
+
+inline procedural "cic:/CoRN/reals/Intervals/pos_compact_nat.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/reals/Intervals/compact_part.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_part_hyp.con" as lemma.
+
+(*#*
+This sequence is strictly increasing and each two consecutive points
+are apart by less than [e].*)
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_less.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_leEq.con" as lemma.
+
+(*#* When we proceed to integration, this lemma will also be useful: *)
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_partition_lemma.con" as lemma.
+
+(*#* The next lemma provides an upper bound for the distance between two points in an interval: *)
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_elements.con" as lemma.
+
+(* UNEXPORTED
+Opaque Min Max.
+*)
+
+(*#* The following is a variation on the previous lemma: *)
+
+inline procedural "cic:/CoRN/reals/Intervals/compact_elements'.con" as lemma.
+
+(*#* 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 procedural "cic:/CoRN/reals/Intervals/compact_bnd_AbsIR.con" as lemma.
+
+(*#* 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 procedural "cic:/CoRN/reals/Intervals/included2_compact.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Intervals/included3_compact.con" as lemma.
+
+(* UNEXPORTED
+End Compact
+*)
+
+(* UNEXPORTED
+Hint Resolve included_compact included2_compact included3_compact : included.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/Max_AbsIR.mma b/helm/software/matita/contribs/procedural/CoRN/reals/Max_AbsIR.mma
new file mode 100644 (file)
index 0000000..246c406
--- /dev/null
@@ -0,0 +1,433 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Max_AbsIR.v,v 1.13 2004/04/23 10:01:04 lcf Exp $ *)
+
+(*#* printing Max %\ensuremath{\max}% *)
+
+(*#* printing Min %\ensuremath{\min}% *)
+
+include "reals/CauchySeq.ma".
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Max_AbsIR/Maximum/Max_function/x.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Max_AbsIR/Maximum/Max_function/y.var
+*)
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Max_seq.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Max_seq_char.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Cauchy_Max_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Max_CauchySeq.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/MAX.con" as definition.
+
+(*#*
+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 procedural "cic:/CoRN/reals/Max_AbsIR/lft_leEq_MAX.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/rht_leEq_MAX.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/less_MAX_imp.con" as lemma.
+
+(* UNEXPORTED
+End Max_function
+*)
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/MAX_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/MAX_wd.con" as lemma.
+
+(* UNEXPORTED
+Section properties_of_Max
+*)
+
+(*#* *** Maximum *)
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Max.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Max_wd_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/lft_leEq_Max.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/rht_leEq_Max.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/less_Max_imp.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Max_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Max_less.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/equiv_imp_eq_max.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Max_id.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Max_comm.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/leEq_imp_Max_is_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Max_is_rht_imp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Max_minus_eps_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/max_one_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/pos_max_one.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/x_div_Max_leEq_x.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/reals/Max_AbsIR/MIN.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/MIN_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/MIN_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Min.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Min_wd_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Min_strext_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Min_leEq_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Min_leEq_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Min_less_imp.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/leEq_Min.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/less_Min.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/equiv_imp_eq_min.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Min_id.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Min_comm.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/leEq_imp_Min_is_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Min_is_lft_imp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/leEq_Min_plus_eps.con" as lemma.
+
+(* UNEXPORTED
+cic:/CoRN/reals/Max_AbsIR/Minimum/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Max_AbsIR/Minimum/b.var
+*)
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Min_leEq_Max.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Min_leEq_Max'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Min3_leEq_Max3.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Min_less_Max.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/ap_imp_Min_less_Max.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Min_less_Max_imp_ap.con" as lemma.
+
+(* UNEXPORTED
+End Minimum
+*)
+
+(*#**********************************)
+
+(* UNEXPORTED
+Section Absolute
+*)
+
+(*#**********************************)
+
+(*#* *** Absolute value *)
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/ABSIR.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/ABSIR_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/ABSIR_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_wdl.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_wdr.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIRz_isz.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_cancel_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_resp_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/leEq_AbsIR.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/inv_leEq_AbsIR.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsSmall_e.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsSmall_imp_AbsIR.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_eq_AbsSmall.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_imp_AbsSmall.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsSmall_transitive.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/zero_less_AbsIR_plus_one.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_eq_x.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_eq_inv_x.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/less_AbsIR.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/leEq_distr_AbsIR.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_approach_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_eq_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Abs_Max.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_str_bnd.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/AbsIR_bnd.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Max_AbsIR/Part_Function_Max/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Max_AbsIR/Part_Function_Max/G.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Part_Function_Max/P.con" "Part_Function_Max__" as definition.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Part_Function_Max/Q.con" "Part_Function_Max__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/part_function_Max_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/FMax.con" as definition.
+
+(* UNEXPORTED
+End Part_Function_Max
+*)
+
+(* UNEXPORTED
+Section Part_Function_Abs
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Max_AbsIR/Part_Function_Abs/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Max_AbsIR/Part_Function_Abs/G.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Part_Function_Abs/P.con" "Part_Function_Abs__" as definition.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Part_Function_Abs/Q.con" "Part_Function_Abs__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/FMin.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/FAbs.con" as definition.
+
+(* UNEXPORTED
+Opaque Max.
+*)
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/FMin_char.con" as lemma.
+
+(* UNEXPORTED
+Transparent Max.
+*)
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/FAbs_char.con" as lemma.
+
+(* UNEXPORTED
+End Part_Function_Abs
+*)
+
+(* UNEXPORTED
+Hint Resolve FAbs_char: algebra.
+*)
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/FAbs_char'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/FAbs_nonneg.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve FAbs_char': algebra.
+*)
+
+(* UNEXPORTED
+Section Inclusion
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Max_AbsIR/Inclusion/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Max_AbsIR/Inclusion/G.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Inclusion/P.con" "Inclusion__" as definition.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/Inclusion/Q.con" "Inclusion__" as definition.
+
+(* end hide *)
+
+(*#*
+%\begin{convention}% Let [R:IR->CProp].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Max_AbsIR/Inclusion/R.var
+*)
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/included_FMax.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/included_FMax'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/included_FMax''.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/included_FMin.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/included_FMin'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/included_FMin''.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/included_FAbs.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Max_AbsIR/included_FAbs'.con" as lemma.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/reals/NRootIR.mma b/helm/software/matita/contribs/procedural/CoRN/reals/NRootIR.mma
new file mode 100644 (file)
index 0000000..81dbac1
--- /dev/null
@@ -0,0 +1,283 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $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 "reals/OddPolyRootIR.ma".
+
+(*#* * 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/NRootIR/NRoot/n.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/NRootIR/NRoot/n_pos.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/NRootIR/NRoot/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/NRootIR/NRoot/c_nonneg.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/NRootIR/NRoot/p.con" "NRoot__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/NRootIR/CnrootIR.con" as lemma.
+
+(* 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&le;sqrt(n)x#;
+ - if [Zero [<] x] then $0<\sqrt[n]x$#0&lt;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&lt;1#.
+
+[(nroot ??)] will be written as [NRoot].
+*)
+
+(* UNEXPORTED
+Section Nth_Root
+*)
+
+inline procedural "cic:/CoRN/reals/NRootIR/nroot.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/NRoot.con" as definition.
+
+inline procedural "cic:/CoRN/reals/NRootIR/NRoot_power.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve NRoot_power: algebra.
+*)
+
+inline procedural "cic:/CoRN/reals/NRootIR/NRoot_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/NRoot_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/NRoot_power'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/NRoot_pres_less.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/NRoot_less_one.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/NRoot_cancel.con" as lemma.
+
+(*#* %\begin{convention}% Let [x,y] be nonnegative real numbers.
+%\end{convention}% *)
+
+(* UNEXPORTED
+cic:/CoRN/reals/NRootIR/Nth_Root/x.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/NRootIR/Nth_Root/y.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/NRootIR/Nth_Root/Hx.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/NRootIR/Nth_Root/Hy.var
+*)
+
+inline procedural "cic:/CoRN/reals/NRootIR/NRoot_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/NRoot_unique.con" as lemma.
+
+(* UNEXPORTED
+End Nth_Root
+*)
+
+(* UNEXPORTED
+Implicit Arguments NRoot [x n].
+*)
+
+(* UNEXPORTED
+Hint Resolve NRoot_power NRoot_power': algebra.
+*)
+
+inline procedural "cic:/CoRN/reals/NRootIR/NRoot_resp_leEq.con" as lemma.
+
+(*#**********************************)
+
+(* UNEXPORTED
+Section Square_root
+*)
+
+(*#**********************************)
+
+(*#* ** Square root *)
+
+inline procedural "cic:/CoRN/reals/NRootIR/sqrt.con" as definition.
+
+inline procedural "cic:/CoRN/reals/NRootIR/sqrt_sqr.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve sqrt_sqr: algebra.
+*)
+
+inline procedural "cic:/CoRN/reals/NRootIR/sqrt_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/sqrt_wd.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve sqrt_wd: algebra_c.
+*)
+
+inline procedural "cic:/CoRN/reals/NRootIR/sqrt_to_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/sqrt_to_nonpos.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/sqrt_mult.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve sqrt_mult: algebra.
+*)
+
+inline procedural "cic:/CoRN/reals/NRootIR/sqrt_mult_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/sqrt_less.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/sqrt_less'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/sqrt_resp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/sqrt_resp_less.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/reals/NRootIR/AbsIR_sqrt_sqr.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve AbsIR_sqrt_sqr: algebra.
+*)
+
+inline procedural "cic:/CoRN/reals/NRootIR/AbsIR_resp_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/AbsIR_mult_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/AbsIR_mult_pos'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/AbsIR_nexp.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/AbsIR_nexp_op.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/AbsIR_less_square.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/AbsIR_leEq_square.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/AbsIR_division.con" as lemma.
+
+(*#* Some special cases. *)
+
+inline procedural "cic:/CoRN/reals/NRootIR/AbsIR_recip.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/AbsIR_div_two.con" as lemma.
+
+(*#* Cauchy-Schwartz for IR and variants on that subject. *)
+
+inline procedural "cic:/CoRN/reals/NRootIR/triangle_IR.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/triangle_SumIR.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/triangle_IR_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/weird_triangleIR.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/triangle_IR_minus'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/triangle_SumxIR.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/triangle_Sum2IR.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/AbsIR_str_bnd_AbsIR.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/AbsIR_bnd_AbsIR.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/reals/NRootIR/Cauchy_Lim_recip.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/Cauchy_recip.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/NRootIR/Lim_recip.con" as lemma.
+
+(* UNEXPORTED
+End Consequences
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/OddPolyRootIR.mma b/helm/software/matita/contribs/procedural/CoRN/reals/OddPolyRootIR.mma
new file mode 100644 (file)
index 0000000..28817e7
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: OddPolyRootIR.v,v 1.5 2004/04/23 10:01:05 lcf Exp $ *)
+
+include "reals/IVT.ma".
+
+(*#* * 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/OddPolyRootIR/CPoly_Big/R.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/CPoly_Big/RX.con" "CPoly_Big__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/Cbigger.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/Ccpoly_big.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/cpoly_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/Ccpoly_pos'.con" as lemma.
+
+(* UNEXPORTED
+End CPoly_Big
+*)
+
+(* UNEXPORTED
+Section Flip_Poly
+*)
+
+(*#* **Flipping a polynomial
+%\begin{convention}% Let [R] be a ring.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/OddPolyRootIR/Flip_Poly/R.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/Flip_Poly/RX.con" "Flip_Poly__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/flip.con" as definition.
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/flip_poly.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/flip_coefficient.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve flip_coefficient: algebra.
+*)
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/flip_odd.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/OddPolyRootIR/OddPoly_Signs/R.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/OddPoly_Signs/RX.con" "OddPoly_Signs__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/oddpoly_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/oddpoly_pos'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/oddpoly_neg.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/OddPolyRootIR/Poly_Norm/R.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/Poly_Norm/RX.con" "Poly_Norm__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/poly_norm_aux.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/poly_norm.con" as definition.
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/poly_norm_monic.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/poly_norm_apply.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/reals/OddPolyRootIR/oddpoly_root'.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/oddpoly_root.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/OddPolyRootIR/realpolyn_oddhaszero.con" as lemma.
+
+(* UNEXPORTED
+End OddPoly_Root
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/Q_dense.mma b/helm/software/matita/contribs/procedural/CoRN/reals/Q_dense.mma
new file mode 100644 (file)
index 0000000..90ba7b7
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* begin hide *)
+
+include "reals/Q_in_CReals.ma".
+
+(*#***** Opaque_algebra.v will be loaded in line 151 ******)
+
+inline procedural "cic:/CoRN/reals/Q_dense/or_not_and.con" as lemma.
+
+(* UNEXPORTED
+Section Interval_definition
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Q_dense/Interval_definition/OF.var
+*)
+
+inline procedural "cic:/CoRN/reals/Q_dense/Interval.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/reals/Q_dense/pair_crr.con
+*)
+
+inline procedural "cic:/CoRN/reals/Q_dense/Length.con" as definition.
+
+(* UNEXPORTED
+End Interval_definition
+*)
+
+inline procedural "cic:/CoRN/reals/Q_dense/Rat_Interval.con" as definition.
+
+(* we have this in Q_COrdField... *)
+
+inline procedural "cic:/CoRN/reals/Q_dense/Qlt_eq_gt_dec'.con" as lemma.
+
+(*
+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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Q_dense/COrdField_extra/OF.var
+*)
+
+inline procedural "cic:/CoRN/reals/Q_dense/AbsSmall_pos_reflexive.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/AbsSmall_neg_reflexive.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/AbsSmall_subinterval.con" as lemma.
+
+(* UNEXPORTED
+End COrdField_extra
+*)
+
+(* UNEXPORTED
+Section Rational_sequence
+*)
+
+include "tactics/Opaque_algebra.ma".
+
+(*#*** WARNING: A file is being loaded *****)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Q_dense/Rational_sequence/R1.var
+*)
+
+inline procedural "cic:/CoRN/reals/Q_dense/start_l.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Q_dense/start_of_sequence2.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/start_r.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Q_dense/start_of_sequence_property.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/l_less_r.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/shrink23.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/shrink13.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/shrink24.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/cotrans_analyze.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Q_dense/cotrans_analyze_strong.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/trichotomy.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Q_dense/trichotomy_strong1.con" as lemma.
+
+(* NOTATION
+Notation "( A , B )" := (pairT A B).
+*)
+
+inline procedural "cic:/CoRN/reals/Q_dense/if_cotrans.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Q_dense/if_cotrans_strong.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/Intrvl.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Q_dense/G.con" as definition.
+
+(* UNEXPORTED
+Opaque Q_as_CField.
+*)
+
+inline procedural "cic:/CoRN/reals/Q_dense/delta_Intrvl.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/Length_Intrvl.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/Intrvl_inside_l_n.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/Intrvl_inside_r_n.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/G_m_n_lower.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/G_m_n_upper.con" as lemma.
+
+(* UNEXPORTED
+Opaque Q_as_COrdField.
+*)
+
+inline procedural "cic:/CoRN/reals/Q_dense/a_simple_inequality.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/G_conversion_rate2.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/CS_seq_G.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/G_as_CauchySeq.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Q_dense/CS_seq_inj_Q_G.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/inj_Q_G_as_CauchySeq.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Q_dense/x_in_Intrvl_l.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/x_in_Intrvl_r.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/G_conversion_rate_resp_x.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_dense/x_is_SeqLimit_G.con" as lemma.
+
+(* UNEXPORTED
+End Rational_sequence
+*)
+
+(* end hide *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/Q_in_CReals.mma b/helm/software/matita/contribs/procedural/CoRN/reals/Q_in_CReals.mma
new file mode 100644 (file)
index 0000000..3535950
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $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 "model/reals/Cauchy_IR.ma".
+
+include "model/monoids/Nmonoid.ma".
+
+include "model/rings/Zring.ma".
+
+(* UNEXPORTED
+Section Rational_sequence_prelogue
+*)
+
+(*#*
+%\begin{convention}% Let [R1] be a real number structure.
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Q_in_CReals/Rational_sequence_prelogue/R1.var
+*)
+
+(* We clone these proofs from CReals1.v just because there IR is an axiom *)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/CReals_is_CReals.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/Lim_Cauchy.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/Archimedes.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/Archimedes'.con" as lemma.
+
+(*#**************************************)
+
+(* COERCION
+cic:/Coq/NArith/BinPos/nat_of_P.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}%#<i>arbitrary</i># real number structure we can not use [inject_Q].
+
+ To define the injection we need one elemntary lemma about the denominator:
+*)
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/den_is_nonzero.con" as lemma.
+
+(*#* 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 procedural "cic:/CoRN/reals/Q_in_CReals/inj_Q.con" as definition.
+
+(*#* Next we need some properties of [nring], on the setoid of natural numbers: *)
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/nring_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/nring_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/nring_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/nring_leEq.con" as lemma.
+
+(* begin hide *)
+
+(* UNEXPORTED
+Unset Printing Coercions.
+*)
+
+(* end hide *)
+
+(*#* Similarly we prove some properties of [zring] on the ring of integers: *)
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/zring_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/zring_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/zring_less.con" as lemma.
+
+(*#* 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 procedural "cic:/CoRN/reals/Q_in_CReals/inj_Q_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/inj_Q_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/inj_Q_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/inj_Q_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/inj_Q_less.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/less_inj_Q.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/leEq_inj_Q.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/inj_Q_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/inj_Q_min.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/inj_Q_minus.con" as lemma.
+
+(*#* Moreover, and as expected, the [AbsSmall] predicate is also
+preserved under the [inj_Q] *)
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/inj_Q_AbsSmall.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Q_in_CReals/AbsSmall_inj_Q.con" as lemma.
+
+(*#* ** 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 procedural "cic:/CoRN/reals/Q_in_CReals/inj_Q_Cauchy.con" as theorem.
+
+(*#* 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 procedural "cic:/CoRN/reals/Q_in_CReals/inj_Q_nring.con" as lemma.
+
+(*#* ** 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 procedural "cic:/CoRN/reals/Q_in_CReals/start_of_sequence.con" as theorem.
+
+(*#* 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 procedural "cic:/CoRN/reals/Q_in_CReals/Q_dense_in_CReals.con" as lemma.
+
+(* UNEXPORTED
+End Rational_sequence_prelogue
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/R_morphism.mma b/helm/software/matita/contribs/procedural/CoRN/reals/R_morphism.mma
new file mode 100644 (file)
index 0000000..29ad38f
--- /dev/null
@@ -0,0 +1,360 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* 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 "reals/CReals.ma".
+
+(* This comes from CReals1.v *)
+
+inline procedural "cic:/CoRN/reals/R_morphism/Cauchy_Lim_prop2.con" as definition.
+
+(* UNEXPORTED
+Section morphism
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/morphism/R1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/morphism/R2.var
+*)
+
+(* UNEXPORTED
+Section morphism_details
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/morphism/morphism_details/phi.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/morphism/morphism_details/p1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/morphism/morphism_details/p2.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/morphism/morphism_details/f1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/morphism/morphism_details/f2.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/morphism/morphism_details/g1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/morphism/morphism_details/g2.var
+*)
+
+inline procedural "cic:/CoRN/reals/R_morphism/fun_pres_relation.con" as definition.
+
+inline procedural "cic:/CoRN/reals/R_morphism/fun_pres_un_fun.con" as definition.
+
+inline procedural "cic:/CoRN/reals/R_morphism/fun_pres_bin_fun.con" as definition.
+
+(*
+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 procedural "cic:/CoRN/reals/R_morphism/fun_pres_Lim.con" as definition.
+
+(* UNEXPORTED
+End morphism_details
+*)
+
+inline procedural "cic:/CoRN/reals/R_morphism/Homomorphism.ind".
+
+(* COERCION
+cic:/matita/CoRN-Procedural/reals/R_morphism/map.con
+*)
+
+(* 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 procedural "cic:/CoRN/reals/R_morphism/map_strext_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/map_wd_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/map_pres_less_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/map_pres_plus_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/map_pres_mult_unfolded.con" as lemma.
+
+(* Now we start to derive some useful properties of a Homomorphism *)
+
+inline procedural "cic:/CoRN/reals/R_morphism/map_pres_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/map_pres_zero_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/map_pres_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/map_pres_minus_unfolded.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/map_pres_apartness.con" as lemma.
+
+(* Merely a useful special case *)
+
+inline procedural "cic:/CoRN/reals/R_morphism/map_pres_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/map_pres_one.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/map_pres_one_unfolded.con" as lemma.
+
+(* I will not use the following lemma *)
+
+inline procedural "cic:/CoRN/reals/R_morphism/map_pres_inv_unfolded.con" as lemma.
+
+(* UNEXPORTED
+End morphism
+*)
+
+(* UNEXPORTED
+Section composition
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/composition/R1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/composition/R2.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/composition/R3.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/composition/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/composition/g.var
+*)
+
+inline procedural "cic:/CoRN/reals/R_morphism/compose.con" as definition.
+
+inline procedural "cic:/CoRN/reals/R_morphism/compose_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/compose_pres_less.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/compose_pres_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/compose_pres_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/compose_pres_Lim.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/Compose.con" as definition.
+
+(* UNEXPORTED
+End composition
+*)
+
+(* UNEXPORTED
+Section isomorphism
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/isomorphism/R1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/isomorphism/R2.var
+*)
+
+(* UNEXPORTED
+Section identity_map
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/isomorphism/identity_map/R3.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/isomorphism/identity_map/f.var
+*)
+
+inline procedural "cic:/CoRN/reals/R_morphism/map_is_id.con" as definition.
+
+(* UNEXPORTED
+End identity_map
+*)
+
+inline procedural "cic:/CoRN/reals/R_morphism/Isomorphism.ind".
+
+(* UNEXPORTED
+End isomorphism
+*)
+
+(* UNEXPORTED
+Section surjective_map
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/surjective_map/R1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/surjective_map/R2.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/surjective_map/f.var
+*)
+
+inline procedural "cic:/CoRN/reals/R_morphism/map_is_surjective.con" as definition.
+
+(* UNEXPORTED
+End surjective_map
+*)
+
+(* UNEXPORTED
+Section simplification
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/simplification/R1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/simplification/R2.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/simplification/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/simplification/H1.var
+*)
+
+inline procedural "cic:/CoRN/reals/R_morphism/f_well_def.con" as lemma.
+
+(* UNEXPORTED
+Section with_less
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/simplification/with_less/H2.var
+*)
+
+inline procedural "cic:/CoRN/reals/R_morphism/less_pres_f.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/leEq_pres_f.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/f_pres_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/f_pres_apartness.con" as lemma.
+
+(* UNEXPORTED
+End with_less
+*)
+
+(* UNEXPORTED
+Section with_plus
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/simplification/with_plus/H3.var
+*)
+
+inline procedural "cic:/CoRN/reals/R_morphism/f_pres_Zero.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/f_pres_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/f_pres_min.con" as lemma.
+
+(* UNEXPORTED
+End with_plus
+*)
+
+(* UNEXPORTED
+Section with_plus_less
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/simplification/with_plus_less/H2.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/simplification/with_plus_less/H3.var
+*)
+
+inline procedural "cic:/CoRN/reals/R_morphism/f_pres_ap_zero.con" as lemma.
+
+(* UNEXPORTED
+Section surjectivity_helps
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/simplification/with_plus_less/surjectivity_helps/f_surj.var
+*)
+
+inline procedural "cic:/CoRN/reals/R_morphism/f_pres_Lim.con" as lemma.
+
+(* UNEXPORTED
+End surjectivity_helps
+*)
+
+(* UNEXPORTED
+Section with_mult_plus_less
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/R_morphism/simplification/with_plus_less/with_mult_plus_less/H4.var
+*)
+
+inline procedural "cic:/CoRN/reals/R_morphism/f_pres_one.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/f_pres_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/R_morphism/simplified_Homomorphism.con" as definition.
+
+(* UNEXPORTED
+End with_mult_plus_less
+*)
+
+(* UNEXPORTED
+End with_plus_less
+*)
+
+(* UNEXPORTED
+End simplification
+*)
+
+(* end hide *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/RealFuncts.mma b/helm/software/matita/contribs/procedural/CoRN/reals/RealFuncts.mma
new file mode 100644 (file)
index 0000000..5a0a657
--- /dev/null
@@ -0,0 +1,266 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: RealFuncts.v,v 1.4 2004/04/07 15:08:10 lcf Exp $ *)
+
+include "reals/CReals1.ma".
+
+(*#* * Continuity of Functions on Reals
+*)
+
+(* begin hide *)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(* UNEXPORTED
+Unset Strict Implicit.
+*)
+
+(* end hide *)
+
+(* UNEXPORTED
+Section Continuity
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/RealFuncts/Continuity/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/RealFuncts/Continuity/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,&infin;)#, [Intol a] for the
+left-open interval $(a,\infty)$#(a,&infin;)#, [Intcr b] for the
+right-closed interval $(-\infty,b]$#(-&infin;,b]#.
+
+Intervals like $[a,b]$#[a,b]# are defined for arbitrary reals [a,b] (being
+$\emptyset$#&empty;# for [a [>] b]).
+*)
+
+inline procedural "cic:/CoRN/reals/RealFuncts/Intclr.con" as definition.
+
+inline procedural "cic:/CoRN/reals/RealFuncts/Intolr.con" as definition.
+
+inline procedural "cic:/CoRN/reals/RealFuncts/Intol.con" as definition.
+
+inline procedural "cic:/CoRN/reals/RealFuncts/Intcl.con" as definition.
+
+inline procedural "cic:/CoRN/reals/RealFuncts/Intcr.con" as definition.
+
+(*#* 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 procedural "cic:/CoRN/reals/RealFuncts/funLim.con" as definition.
+
+(*#* The definition of limit of [f] in [p] using Cauchy sequences. *)
+
+inline procedural "cic:/CoRN/reals/RealFuncts/funLim_Cauchy.con" as definition.
+
+(*#* 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 procedural "cic:/CoRN/reals/RealFuncts/funLim2.con" as definition.
+
+(*#* 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 procedural "cic:/CoRN/reals/RealFuncts/continAt.con" as definition.
+
+inline procedural "cic:/CoRN/reals/RealFuncts/continAtCauchy.con" as definition.
+
+inline procedural "cic:/CoRN/reals/RealFuncts/continAt2.con" as definition.
+
+(*
+Ax_iom continAt_prop1 :(p:IR)(continAt p)->(continAtCauchy p).
+*)
+
+inline procedural "cic:/CoRN/reals/RealFuncts/contin.con" as definition.
+
+inline procedural "cic:/CoRN/reals/RealFuncts/continCauchy.con" as definition.
+
+inline procedural "cic:/CoRN/reals/RealFuncts/contin2.con" as definition.
+
+(*#*
+Continuous on a closed, resp.%\% open, resp.%\% left open, resp.%\% left closed
+interval *)
+
+inline procedural "cic:/CoRN/reals/RealFuncts/continOnc.con" as definition.
+
+inline procedural "cic:/CoRN/reals/RealFuncts/continOno.con" as definition.
+
+inline procedural "cic:/CoRN/reals/RealFuncts/continOnol.con" as definition.
+
+inline procedural "cic:/CoRN/reals/RealFuncts/continOncl.con" as definition.
+
+(*
+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)\rightarrow( c< b)\rightarrow\ (f (a)<0)
+\rightarrow\ (0:<f(b))
+         \rightarrow \forall x,y\in\RR (a\leq x\leq b)\rightarrow
+       (a\leq y\leq b)\rightarrow (x<y)
+                \rightarrow \exists z\in\RR(x\leq z\leq y)\wedge(f(z)\noto 0))$
+*_
+
+Ax_iom strmon_ivt_prem : (c:IR)(str_monotOncl 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<b) \rightarrow(c <a)\rightarrow( c< b)
+\rightarrow(f (a)<0)\rightarrow (0:<f(b))
+         \rightarrow \exists z\in\RR(a\leq z\leq b)\wedge(f(z)= 0))$
+*_
+
+Ax_iom strmoncl_imp_ivt : (c:IR)(str_monotOncl c)
+           ->(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/helm/software/matita/contribs/procedural/CoRN/reals/RealLists.mma b/helm/software/matita/contribs/procedural/CoRN/reals/RealLists.mma
new file mode 100644 (file)
index 0000000..090f907
--- /dev/null
@@ -0,0 +1,104 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: RealLists.v,v 1.4 2004/04/23 10:01:05 lcf Exp $ *)
+
+include "reals/CReals1.ma".
+
+(* 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 procedural "cic:/CoRN/reals/RealLists/maxlist.con" as definition.
+
+inline procedural "cic:/CoRN/reals/RealLists/minlist.con" as definition.
+
+inline procedural "cic:/CoRN/reals/RealLists/member.con" as definition.
+
+(*#*
+Sometimes the length of the list has to be restricted; the next definition provides an easy way to do that. *)
+
+inline procedural "cic:/CoRN/reals/RealLists/length_leEq.con" as definition.
+
+(*#* Length is preserved by mapping. *)
+
+(* UNEXPORTED
+Implicit Arguments map [A B].
+*)
+
+inline procedural "cic:/CoRN/reals/RealLists/map_pres_length.con" as lemma.
+
+(*#* 
+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 procedural "cic:/CoRN/reals/RealLists/map2.con" as definition.
+
+inline procedural "cic:/CoRN/reals/RealLists/map2_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/RealLists/map2_pres_member.con" as lemma.
+
+(*#*
+As [maxlist] and [minlist] are generalizations of [Max] and [Min] to finite sets of real numbers, they have the expected properties: *)
+
+inline procedural "cic:/CoRN/reals/RealLists/maxlist_greater.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/RealLists/Lists/maxlist_aux.con" "Lists__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/RealLists/maxlist_leEq_eps.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/RealLists/maxlist_less.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/RealLists/maxlist_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/RealLists/minlist_smaller.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/RealLists/Lists/minlist_aux.con" "Lists__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/RealLists/minlist_leEq_eps.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/RealLists/less_minlist.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/RealLists/leEq_minlist.con" as lemma.
+
+(* UNEXPORTED
+End Lists
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/Series.mma b/helm/software/matita/contribs/procedural/CoRN/reals/Series.mma
new file mode 100644 (file)
index 0000000..80e034a
--- /dev/null
@@ -0,0 +1,428 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Series.v,v 1.6 2004/04/23 10:01:05 lcf Exp $ *)
+
+(*#* printing seq_part_sum %\ensuremath{\sum^n}% #&sum;<sup>n</sup># *)
+
+(*#* printing series_sum %\ensuremath{\sum_0^{\infty}}% #&sum;<sub>0</sub><sup>&infin;</sup># *)
+
+(*#* printing pi %\ensuremath{\pi}% #&pi; *)
+
+include "reals/CSumsReals.ma".
+
+include "reals/NRootIR.ma".
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Definitions/x.var
+*)
+
+inline procedural "cic:/CoRN/reals/Series/seq_part_sum.con" as definition.
+
+(*#* 
+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 procedural "cic:/CoRN/reals/Series/seq_part_sum_n.con" as lemma.
+
+(*#* A series is convergent iff its sequence of partial Sums is a
+Cauchy sequence.  To each convergent series we can assign a Sum.
+*)
+
+inline procedural "cic:/CoRN/reals/Series/convergent.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Series/series_sum.con" as definition.
+
+(*#* 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 procedural "cic:/CoRN/reals/Series/divergent_seq.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Series/divergent.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Series/conv_imp_not_div.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/div_imp_not_conv.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/convergent_imp_not_divergent.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/divergent_imp_not_convergent.con" as lemma.
+
+(*#* Finally we have the well known fact that every convergent series converges 
+to zero as a sequence.
+*)
+
+inline procedural "cic:/CoRN/reals/Series/series_seq_Lim.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/series_seq_Lim'.con" as lemma.
+
+(* UNEXPORTED
+End Definitions
+*)
+
+(* UNEXPORTED
+Section More_Definitions
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/More_Definitions/x.var
+*)
+
+(*#* We also define absolute convergence. *)
+
+inline procedural "cic:/CoRN/reals/Series/abs_convergent.con" as definition.
+
+(* UNEXPORTED
+End More_Definitions
+*)
+
+(* UNEXPORTED
+Section Power_Series
+*)
+
+(*#* **Power Series
+
+Power series are an important special case.
+*)
+
+inline procedural "cic:/CoRN/reals/Series/power_series.con" as definition.
+
+(*#*
+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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Power_Series/c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Power_Series/H0c.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Power_Series/Hc1.var
+*)
+
+inline procedural "cic:/CoRN/reals/Series/c_exp_Lim.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/power_series_Lim1.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/power_series_conv.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/power_series_sum.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/reals/Series/conv_zero_series.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/series_sum_zero.con" as lemma.
+
+(*#* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Operations/x.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Operations/y.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Operations/convX.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Operations/convY.var
+*)
+
+inline procedural "cic:/CoRN/reals/Series/convergent_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/series_sum_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/conv_series_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/series_sum_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/conv_series_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/series_sum_minus.con" as lemma.
+
+(*#* Multiplication by a scalar [c] is also permitted. *)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Operations/c.var
+*)
+
+inline procedural "cic:/CoRN/reals/Series/conv_series_mult_scal.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/series_sum_mult_scal.con" as lemma.
+
+(* UNEXPORTED
+End Operations
+*)
+
+(* UNEXPORTED
+Section More_Operations
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/More_Operations/x.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/More_Operations/convX.var
+*)
+
+(*#* As a corollary, we get the series of the inverses. *)
+
+inline procedural "cic:/CoRN/reals/Series/conv_series_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/series_sum_inv.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Almost_Everywhere/x.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Almost_Everywhere/y.var
+*)
+
+inline procedural "cic:/CoRN/reals/Series/aew_eq.con" as definition.
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Almost_Everywhere/aew_equal.var
+*)
+
+inline procedural "cic:/CoRN/reals/Series/aew_Cauchy.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/aew_Cauchy2.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/aew_series_conv.con" as lemma.
+
+(* UNEXPORTED
+End Almost_Everywhere
+*)
+
+(* UNEXPORTED
+Section Cauchy_Almost_Everywhere
+*)
+
+(*#* Suppose furthermore that [x,y] are Cauchy sequences. *)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Cauchy_Almost_Everywhere/x.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Cauchy_Almost_Everywhere/y.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Cauchy_Almost_Everywhere/aew_equal.var
+*)
+
+inline procedural "cic:/CoRN/reals/Series/aew_Lim.con" as lemma.
+
+(* UNEXPORTED
+End Cauchy_Almost_Everywhere
+*)
+
+(* UNEXPORTED
+Section Convergence_Criteria
+*)
+
+(*#* **Convergence Criteria
+
+%\begin{convention}% Let [x:nat->IR].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Convergence_Criteria/x.var
+*)
+
+(*#* We include the comparison test for series, both in a strong and in a less 
+general (but simpler) form.
+*)
+
+inline procedural "cic:/CoRN/reals/Series/str_comparison.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/comparison.con" as lemma.
+
+(*#* As a corollary, we get that every absolutely convergent series converges. *)
+
+inline procedural "cic:/CoRN/reals/Series/abs_imp_conv.con" as lemma.
+
+(*#* Next we have the ratio test, both as a positive and negative result. *)
+
+inline procedural "cic:/CoRN/reals/Series/divergent_crit.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/tail_series.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/join_series.con" as lemma.
+
+(* UNEXPORTED
+End Convergence_Criteria
+*)
+
+(* UNEXPORTED
+Section More_CC
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/More_CC/x.var
+*)
+
+inline procedural "cic:/CoRN/reals/Series/ratio_test_conv.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/ratio_test_div.con" as lemma.
+
+(* 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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Alternate_Series/x.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Alternate_Series/pos_x.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Alternate_Series/Lim_x.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/Series/Alternate_Series/mon_x.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/reals/Series/Alternate_Series/y.con" "Alternate_Series__" as definition.
+
+inline procedural "cic:/CoRN/reals/Series/Alternate_Series/alternate_lemma1.con" "Alternate_Series__" as definition.
+
+inline procedural "cic:/CoRN/reals/Series/Alternate_Series/alternate_lemma2.con" "Alternate_Series__" as definition.
+
+inline procedural "cic:/CoRN/reals/Series/Alternate_Series/alternate_lemma3.con" "Alternate_Series__" as definition.
+
+inline procedural "cic:/CoRN/reals/Series/Alternate_Series/alternate_lemma4.con" "Alternate_Series__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/reals/Series/alternate_series_conv.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/reals/Series/e_series.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Series/e_series_conv.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/E.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Series/pi_series.con" as definition.
+
+inline procedural "cic:/CoRN/reals/Series/pi_series_conv.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/Series/pi.con" as definition.
+
+(* UNEXPORTED
+End Important_Numbers
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/reals/iso_CReals.mma b/helm/software/matita/contribs/procedural/CoRN/reals/iso_CReals.mma
new file mode 100644 (file)
index 0000000..c9c314c
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* 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 "reals/Q_dense.ma".
+
+include "reals/R_morphism.ma".
+
+inline procedural "cic:/CoRN/reals/iso_CReals/less_pres_Lim.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/Lim_pres_less.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/inj_seq_less.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/less_inj_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/SeqLimit_unique.con" as theorem.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/Lim_well_def.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/Lim_one_one.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/inj_seq_well_def.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/inj_Q_one_one.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/Lim_pres_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/G_pres_plus.con" as lemma.
+
+(* This theorem can be avoided but it is interesting *)
+
+inline procedural "cic:/CoRN/reals/iso_CReals/nonarchemaedian_bound_for_Lim.con" as theorem.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/Lim_pres_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/G_pres_mult.con" as lemma.
+
+(* UNEXPORTED
+Section Concrete_iso_between_Creals
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/iso_CReals/Concrete_iso_between_Creals/R1.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/reals/iso_CReals/Concrete_iso_between_Creals/R2.var
+*)
+
+inline procedural "cic:/CoRN/reals/iso_CReals/image_Cauchy12.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/image_Cauchy21.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/image_G_as_CauchySeq12.con" as definition.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/image_G_as_CauchySeq21.con" as definition.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/f12.con" as definition.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/g21.con" as definition.
+
+(*#****** ISO FROM R1 TO R2 ********)
+
+inline procedural "cic:/CoRN/reals/iso_CReals/f12_is_inverse_g21.con" as theorem.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/f12_is_surjective.con" as theorem.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/f12_strong_ext.con" as theorem.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/f12_pres_less.con" as theorem.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/f12_pres_plus.con" as theorem.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/f12_pres_mult.con" as theorem.
+
+(*#********* ISO FROM R2 TO R1 **********)
+
+inline procedural "cic:/CoRN/reals/iso_CReals/g21_is_inverse_f12.con" as theorem.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/g21_is_surjective.con" as theorem.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/g21_strong_ext.con" as theorem.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/g21_pres_less.con" as theorem.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/g21_pres_plus.con" as theorem.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/g21_pres_mult.con" as theorem.
+
+(*#** Building Homomorphisms out of f12 and g21 ***)
+
+inline procedural "cic:/CoRN/reals/iso_CReals/f12_as_Homomorphism.con" as definition.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/g21_as_Homomorphism.con" as definition.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/f12_inverse_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/g21_inverse_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/reals/iso_CReals/Canonic_Isomorphism_between_CReals.con" as definition.
+
+(* UNEXPORTED
+End Concrete_iso_between_Creals
+*)
+
+(* end hide *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/root b/helm/software/matita/contribs/procedural/CoRN/root
new file mode 100644 (file)
index 0000000..4aa1dfc
--- /dev/null
@@ -0,0 +1,2 @@
+baseuri=cic:/matita/procedural/CoRN
+include_paths=../Coq
diff --git a/helm/software/matita/contribs/procedural/CoRN/tactics/AlgReflection.mma b/helm/software/matita/contribs/procedural/CoRN/tactics/AlgReflection.mma
new file mode 100644 (file)
index 0000000..1f436b3
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: AlgReflection.v,v 1.2 2004/03/26 16:07:03 lcf Exp $ *)
+
+(* begin hide *)
+
+include "algebra/CLogic.ma".
+
+(* UNEXPORTED
+Section Syntactic_Expressions
+*)
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/varindex.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/pfunindex.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/unopindex.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/binopindex.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/expr.ind".
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/expr_zero.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/expr_one.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/expr_nat.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/expr_inv.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/expr_minus.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/expr_power.con" as definition.
+
+(* UNEXPORTED
+End Syntactic_Expressions
+*)
+
+(* UNEXPORTED
+Section Normalization_Function
+*)
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/eq_nat.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/lt_nat.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/le_nat.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/eq_int.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/lt_int.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/le_int.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/eq_expr.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/lt_expr.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/le_expr.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/eq_monom.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/lt_monom.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/MI_mult.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/MV_mult.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/MM_mult.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/MM_plus.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/PM_plus.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/PP_plus.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/PM_mult.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/PP_mult.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/FF_plus.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/FF_mult.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/FF_div.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/NormR.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/NormG.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/NormF.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/expr_is_zero.con" as definition.
+
+(* UNEXPORTED
+End Normalization_Function
+*)
+
+(* UNEXPORTED
+Section Correctness_Results
+*)
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/eq_nat_corr.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/eq_int_corr.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/AlgReflection/eq_expr_corr.con" as lemma.
+
+(* UNEXPORTED
+End Correctness_Results
+*)
+
+(* end hide *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/tactics/DiffTactics1.mma b/helm/software/matita/contribs/procedural/CoRN/tactics/DiffTactics1.mma
new file mode 100644 (file)
index 0000000..fd885bc
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/tactics/DiffTactics2.mma b/helm/software/matita/contribs/procedural/CoRN/tactics/DiffTactics2.mma
new file mode 100644 (file)
index 0000000..52af455
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: DiffTactics2.v,v 1.1.1.1 2004/02/05 16:25:45 lionelm Exp $ *)
+
+(* begin hide *)
+
+include "ftc/Differentiability.ma".
+
+(* UNEXPORTED
+Section Automatizing_Continuity
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/DiffTactics2/Automatizing_Continuity/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/DiffTactics2/Automatizing_Continuity/b.var
+*)
+
+inline procedural "cic:/CoRN/tactics/DiffTactics2/cont_function.ind".
+
+inline procedural "cic:/CoRN/tactics/DiffTactics2/cont_to_pfunct.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/DiffTactics2/continuous_cont.con" as lemma.
+
+(* 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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/DiffTactics2/Automatizing_Derivatives/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/DiffTactics2/Automatizing_Derivatives/b.var
+*)
+
+inline procedural "cic:/CoRN/tactics/DiffTactics2/deriv_function.ind".
+
+inline procedural "cic:/CoRN/tactics/DiffTactics2/deriv_to_pfunct.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/DiffTactics2/deriv_deriv.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/DiffTactics2/deriv_restr.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/DiffTactics2/diffble_restr.con" as lemma.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/tactics/DiffTactics3.mma b/helm/software/matita/contribs/procedural/CoRN/tactics/DiffTactics3.mma
new file mode 100644 (file)
index 0000000..01be534
--- /dev/null
@@ -0,0 +1,104 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: DiffTactics3.v,v 1.1.1.1 2004/02/05 16:25:44 lionelm Exp $ *)
+
+(* begin hide *)
+
+include "ftc/MoreFunSeries.ma".
+
+include "ftc/Composition.ma".
+
+include "tactics/DiffTactics2.ma".
+
+(* UNEXPORTED
+Ltac Deriv_substR :=
+  match goal with
+  |  |- (Derivative ?X1 _) =>
+      let t := derivative_of X1 in
+      apply Derivative_wdr with t
+  end.
+*)
+
+inline procedural "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 procedural "cic:/CoRN/tactics/DiffTactics3/symb_to_PartIR.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/DiffTactics3/symbPF_deriv.con" as definition.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/tactics/FieldReflection.mma b/helm/software/matita/contribs/procedural/CoRN/tactics/FieldReflection.mma
new file mode 100644 (file)
index 0000000..5d9a91e
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: FieldReflection.v,v 1.4 2004/04/23 10:01:06 lcf Exp $ *)
+
+(* begin hide *)
+
+include "algebra/CFields.ma".
+
+include "tactics/AlgReflection.ma".
+
+(* UNEXPORTED
+Section Field_Interpretation_Function
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/FieldReflection/Field_Interpretation_Function/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/FieldReflection/Field_Interpretation_Function/val.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/FieldReflection/Field_Interpretation_Function/unop.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/FieldReflection/Field_Interpretation_Function/binop.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/FieldReflection/Field_Interpretation_Function/pfun.var
+*)
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/interpF.ind".
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/wfF.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/xexprF.ind".
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/xforgetF.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/xinterpF.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/xexprF2interpF.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/xexprF_diagram_commutes.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/xexprF2wfF.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/fexprF.ind".
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/fexprF_var.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/fexprF_int.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/fexprF_plus.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/fexprF_mult.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/fforgetF.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/fexprF2interpF.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/fexprF2wfF.con" as lemma.
+
+include "tactics/Opaque_algebra.ma".
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/refl_interpF.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/interpF_wd.con" as lemma.
+
+(* UNEXPORTED
+End Field_Interpretation_Function
+*)
+
+(* UNEXPORTED
+Section Field_NormCorrect
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/FieldReflection/Field_NormCorrect/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/FieldReflection/Field_NormCorrect/val.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/FieldReflection/Field_NormCorrect/unop.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/FieldReflection/Field_NormCorrect/binop.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/FieldReflection/Field_NormCorrect/pfun.var
+*)
+
+(* NOTATION
+Notation II := (interpF F val unop binop pfun).
+*)
+
+(*
+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 procedural "cic:/CoRN/tactics/FieldReflection/MI_mult_corr_F.con" as lemma.
+
+(* UNEXPORTED
+Transparent Zmult.
+*)
+
+(* UNEXPORTED
+Opaque MI_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/MV_mult_corr_F.con" as lemma.
+
+(* UNEXPORTED
+Transparent MI_mult.
+*)
+
+(* UNEXPORTED
+Opaque MV_mult MI_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/MM_mult_corr_F.con" as lemma.
+
+(* UNEXPORTED
+Transparent MV_mult MI_mult.
+*)
+
+(* UNEXPORTED
+Opaque MV_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/MM_plus_corr_F.con" as lemma.
+
+(* UNEXPORTED
+Transparent MV_mult.
+*)
+
+(* UNEXPORTED
+Opaque MM_plus.
+*)
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/PM_plus_corr_F.con" as lemma.
+
+(* UNEXPORTED
+Transparent MM_plus.
+*)
+
+(* UNEXPORTED
+Opaque PM_plus.
+*)
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/PP_plus_corr_F.con" as lemma.
+
+(* UNEXPORTED
+Transparent PM_plus.
+*)
+
+(* UNEXPORTED
+Opaque PM_plus MM_mult MI_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/PM_mult_corr_F.con" as lemma.
+
+(* UNEXPORTED
+Opaque PM_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/PP_mult_corr_F.con" as lemma.
+
+(* UNEXPORTED
+Transparent PP_plus PM_mult PP_mult PM_plus MI_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/FF_plus_corr_F.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/FF_mult_corr_F.con" as lemma.
+
+(* UNEXPORTED
+Transparent FF_div.
+*)
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/FF_div_corr_F.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/NormF_corr.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/Norm_wfF.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/expr_is_zero_corr_F.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/Tactic_lemma_zero_F.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/FieldReflection/Tactic_lemmaF.con" as lemma.
+
+(* UNEXPORTED
+End Field_NormCorrect
+*)
+
+(* end hide *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/tactics/GroupReflection.mma b/helm/software/matita/contribs/procedural/CoRN/tactics/GroupReflection.mma
new file mode 100644 (file)
index 0000000..0e4cd08
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: GroupReflection.v,v 1.3 2004/04/23 10:01:06 lcf Exp $ *)
+
+(* begin hide *)
+
+include "algebra/CAbGroups.ma".
+
+include "tactics/AlgReflection.ma".
+
+(* UNEXPORTED
+Section Group_Interpretation_Function
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/GroupReflection/Group_Interpretation_Function/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/GroupReflection/Group_Interpretation_Function/val.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/GroupReflection/Group_Interpretation_Function/unop.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/GroupReflection/Group_Interpretation_Function/binop.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/GroupReflection/Group_Interpretation_Function/pfun.var
+*)
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/interpG.ind".
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/wfG.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/xexprG.ind".
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/xforgetG.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/xinterpG.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/xexprG2interpG.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/xexprG_diagram_commutes.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/xexprG2wfG.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/fexprG.ind".
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/fexprG_var.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/fexprG_zero.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/fexprG_plus.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/fexprG_mult_int.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/fforgetG.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/fexprG2interp.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/fexprG2wf.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/tactics/GroupReflection/refl_interpG.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/interpG_wd.con" as lemma.
+
+(* UNEXPORTED
+End Group_Interpretation_Function
+*)
+
+(* UNEXPORTED
+Section Group_NormCorrect
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/GroupReflection/Group_NormCorrect/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/GroupReflection/Group_NormCorrect/val.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/GroupReflection/Group_NormCorrect/unop.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/GroupReflection/Group_NormCorrect/binop.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/GroupReflection/Group_NormCorrect/pfun.var
+*)
+
+(* NOTATION
+Notation II := (interpG G val unop binop pfun).
+*)
+
+(*
+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 procedural "cic:/CoRN/tactics/GroupReflection/MI_mult_comm_int.con" as lemma.
+
+(* UNEXPORTED
+Opaque Zmult.
+*)
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/MI_mult_corr_G.con" as lemma.
+
+(* UNEXPORTED
+Transparent Zmult.
+*)
+
+(* UNEXPORTED
+Opaque MI_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/MV_mult_corr_G.con" as lemma.
+
+(* UNEXPORTED
+Opaque MV_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/MM_mult_corr_G.con" as lemma.
+
+(* UNEXPORTED
+Transparent MV_mult MI_mult.
+*)
+
+(* UNEXPORTED
+Opaque MV_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/MM_plus_corr_G.con" as lemma.
+
+(* UNEXPORTED
+Transparent MV_mult.
+*)
+
+(* UNEXPORTED
+Opaque MM_plus.
+*)
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/PM_plus_corr_G.con" as lemma.
+
+(* UNEXPORTED
+Transparent MM_plus.
+*)
+
+(* UNEXPORTED
+Opaque PM_plus.
+*)
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/PP_plus_corr_G.con" as lemma.
+
+(* UNEXPORTED
+Transparent PM_plus.
+*)
+
+(* UNEXPORTED
+Opaque PM_plus MM_mult MI_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/PM_mult_corr_G.con" as lemma.
+
+(* UNEXPORTED
+Opaque PM_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/PP_mult_corr_G.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/NormG_corr_G.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/GroupReflection/Tactic_lemmaG.con" as lemma.
+
+(* UNEXPORTED
+End Group_NormCorrect
+*)
+
+(* end hide *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/tactics/Opaque_algebra.mma b/helm/software/matita/contribs/procedural/CoRN/tactics/Opaque_algebra.mma
new file mode 100644 (file)
index 0000000..70ec3c3
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $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/helm/software/matita/contribs/procedural/CoRN/tactics/RingReflection.mma b/helm/software/matita/contribs/procedural/CoRN/tactics/RingReflection.mma
new file mode 100644 (file)
index 0000000..d51f168
--- /dev/null
@@ -0,0 +1,342 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: RingReflection.v,v 1.4 2004/04/23 10:01:06 lcf Exp $ *)
+
+(* begin hide *)
+
+include "algebra/CRings.ma".
+
+include "tactics/AlgReflection.ma".
+
+(* UNEXPORTED
+Section Ring_Interpretation_Function
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/RingReflection/Ring_Interpretation_Function/R.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/RingReflection/Ring_Interpretation_Function/val.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/RingReflection/Ring_Interpretation_Function/unop.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/RingReflection/Ring_Interpretation_Function/binop.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/RingReflection/Ring_Interpretation_Function/pfun.var
+*)
+
+inline procedural "cic:/CoRN/tactics/RingReflection/interpR.ind".
+
+inline procedural "cic:/CoRN/tactics/RingReflection/wfR.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/RingReflection/xexprR.ind".
+
+inline procedural "cic:/CoRN/tactics/RingReflection/xforgetR.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/RingReflection/xinterpR.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/RingReflection/xexprR2interpR.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/RingReflection/xexprR_diagram_commutes.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/RingReflection/xexprR2wfR.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/RingReflection/fexprR.ind".
+
+inline procedural "cic:/CoRN/tactics/RingReflection/fexprR_var.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/RingReflection/fexprR_int.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/RingReflection/fexprR_plus.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/RingReflection/fexprR_mult.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/RingReflection/fforgetR.con" as definition.
+
+inline procedural "cic:/CoRN/tactics/RingReflection/fexprR2interp.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/RingReflection/fexprR2wf.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/tactics/RingReflection/refl_interpR.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/RingReflection/interpR_wd.con" as lemma.
+
+(* UNEXPORTED
+End Ring_Interpretation_Function
+*)
+
+(* UNEXPORTED
+Section Ring_NormCorrect
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/RingReflection/Ring_NormCorrect/R.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/RingReflection/Ring_NormCorrect/val.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/RingReflection/Ring_NormCorrect/unop.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/RingReflection/Ring_NormCorrect/binop.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/tactics/RingReflection/Ring_NormCorrect/pfun.var
+*)
+
+(* NOTATION
+Notation II := (interpR R val unop binop pfun).
+*)
+
+(*
+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 procedural "cic:/CoRN/tactics/RingReflection/MI_mult_corr_R.con" as lemma.
+
+(* UNEXPORTED
+Transparent Zmult.
+*)
+
+(* UNEXPORTED
+Opaque MI_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/RingReflection/MV_mult_corr_R.con" as lemma.
+
+(* UNEXPORTED
+Transparent MI_mult.
+*)
+
+(* UNEXPORTED
+Opaque MV_mult MI_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/RingReflection/MM_mult_corr_R.con" as lemma.
+
+(* UNEXPORTED
+Transparent MV_mult MI_mult.
+*)
+
+(* UNEXPORTED
+Opaque MV_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/RingReflection/MM_plus_corr_R.con" as lemma.
+
+(* UNEXPORTED
+Transparent MV_mult.
+*)
+
+(* UNEXPORTED
+Opaque MM_plus.
+*)
+
+inline procedural "cic:/CoRN/tactics/RingReflection/PM_plus_corr_R.con" as lemma.
+
+(* UNEXPORTED
+Transparent MM_plus.
+*)
+
+(* UNEXPORTED
+Opaque PM_plus.
+*)
+
+inline procedural "cic:/CoRN/tactics/RingReflection/PP_plus_corr_R.con" as lemma.
+
+(* UNEXPORTED
+Transparent PM_plus.
+*)
+
+(* UNEXPORTED
+Opaque PM_plus MM_mult MI_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/RingReflection/PM_mult_corr_R.con" as lemma.
+
+(* UNEXPORTED
+Opaque PM_mult.
+*)
+
+inline procedural "cic:/CoRN/tactics/RingReflection/PP_mult_corr_R.con" as lemma.
+
+(*
+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 procedural "cic:/CoRN/tactics/RingReflection/NormR_corr.con" as lemma.
+
+inline procedural "cic:/CoRN/tactics/RingReflection/Tactic_lemmaR.con" as lemma.
+
+(* UNEXPORTED
+End Ring_NormCorrect
+*)
+
+(* end hide *)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/tactics/Step.mma b/helm/software/matita/contribs/procedural/CoRN/tactics/Step.mma
new file mode 100644 (file)
index 0000000..5945df7
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/tactics/Transparent_algebra.mma b/helm/software/matita/contribs/procedural/CoRN/tactics/Transparent_algebra.mma
new file mode 100644 (file)
index 0000000..384034b
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $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/helm/software/matita/contribs/procedural/CoRN/transc/Exponential.mma b/helm/software/matita/contribs/procedural/CoRN/transc/Exponential.mma
new file mode 100644 (file)
index 0000000..3f0929d
--- /dev/null
@@ -0,0 +1,308 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Exponential.v,v 1.7 2004/04/23 10:01:07 lcf Exp $ *)
+
+include "transc/TaylorSeries.ma".
+
+(* 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 procedural "cic:/CoRN/transc/Exponential/Exp_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_wd.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Exp_wd: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_zero.con" as lemma.
+
+(*#* $e^1=e$#e<sup>1</sup>=e#, where [e] was defined a long time ago.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_one.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Exp_zero Exp_one: algebra.
+*)
+
+(*#*
+The exponential function is its own derivative, and continuous.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Derivative_Exp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Derivative_Exp: derivate.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Continuous_Exp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Continuous_Exp: continuous.
+*)
+
+(*#*
+Negative numbers are projected into the interval [[0,1]].
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/One_less_Exp.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/One_leEq_Exp.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_pos'.con" as lemma.
+
+(*#*
+Exponential is the unique function which evaluates to 1 at 0 and is
+its own derivative.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_unique_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_bnd.con" as lemma.
+
+(* UNEXPORTED
+Opaque Expon.
+*)
+
+(* UNEXPORTED
+Transparent Expon.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_unique.con" as lemma.
+
+(* UNEXPORTED
+Opaque Expon.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_plus_pos.con" as lemma.
+
+(*#* The usual rules for computing the exponential of a sum. *)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_plus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Exp_plus: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_plus'.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_inv_char.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Exp_inv_char: algebra.
+*)
+
+(*#* The exponential of any number is always positive---and thus apart
+from zero.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_ap_zero.con" as lemma.
+
+(*#*
+And the rules for the exponential of differences.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_inv.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Exp_inv: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_minus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Exp_minus: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_inv'.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_minus'.con" as lemma.
+
+(*#* Exponential is a monotonous function. *)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_less_One.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_leEq_One.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_resp_less.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_resp_leEq.con" as lemma.
+
+(*#* **Properties of Logarithm
+
+The logarithm is a continuous function with derivative [One[/]x].
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Derivative_Log.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Derivative_Log: derivate.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Continuous_Log.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Continuous_Log: continuous.
+*)
+
+(*#* Logarithm of [One]. *)
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_one.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Log_one: algebra.
+*)
+
+(*#* The logarithm is (strongly) extensional. *)
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_wd.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Log_wd: algebra.
+*)
+
+(*#* The rule for the logarithm of the product. *)
+
+(* UNEXPORTED
+Opaque Logarithm.
+*)
+
+(* UNEXPORTED
+Transparent Logarithm.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_mult.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Log_mult: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_mult'.con" as lemma.
+
+(*#* A characterization of the domain of the logarithm. *)
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_domain.con" as lemma.
+
+(* UNEXPORTED
+Opaque Expon Logarithm.
+*)
+
+(*#* $\log(e^x)=x$#log(e<sup>x</sup>)=x# for all [x], both as a
+numerical and as a functional equation.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_Exp_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_Exp.con" as lemma.
+
+(* UNEXPORTED
+Transparent Logarithm.
+*)
+
+(* UNEXPORTED
+Hint Resolve Log_Exp: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_Log_lemma.con" as lemma.
+
+(*#* The converse expression. *)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_Log.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Exp_Log: algebra.
+*)
+
+(*#* Exponential and logarithm are injective. *)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_cancel.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_cancel.con" as lemma.
+
+(* UNEXPORTED
+Opaque Logarithm.
+*)
+
+(*#* And the final characterization as inverse functions. *)
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_Log_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_E.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Log_E: algebra.
+*)
+
+(*#* Several rules regarding inequalities. *)
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_cancel_less.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_cancel_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_resp_less.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_resp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_cancel_less.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Exp_cancel_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_less_Zero.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_leEq_Zero.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Zero_less_Log.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Zero_leEq_Log.con" as lemma.
+
+(*#* Finally, rules for logarithm of quotients. *)
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_recip_char.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_recip.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Log_recip: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_recip'.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_div.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Log_div: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/Exponential/Log_div'.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/transc/InvTrigonom.mma b/helm/software/matita/contribs/procedural/CoRN/transc/InvTrigonom.mma
new file mode 100644 (file)
index 0000000..9f138ab
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: InvTrigonom.v,v 1.9 2004/04/23 10:01:07 lcf Exp $ *)
+
+include "transc/RealPowers.ma".
+
+include "transc/TrigMon.ma".
+
+include "ftc/StrongIVT.ma".
+
+(*#* 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 procedural "cic:/CoRN/transc/InvTrigonom/ArcSin_def_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcSin_def_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcSin.con" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcSin_domain.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Continuous_ArcSin.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Derivative_ArcSin.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Derivative_ArcSin: derivate.
+*)
+
+(* UNEXPORTED
+Hint Resolve Continuous_ArcSin: continuous.
+*)
+
+(*#* ***Arccosine
+*)
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcCos.con" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcCos_domain.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Continuous_ArcCos.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Derivative_ArcCos.con" as lemma.
+
+(*#* ***Arctangent
+*)
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcTan_def_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcTang.con" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcTan_domain.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcTan.con" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Continuous_ArcTan.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Derivative_ArcTan.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/transc/InvTrigonom/maps_Sin.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcSin_Sin_inv.con" as lemma.
+
+(* UNEXPORTED
+Opaque ArcSin.
+*)
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcSin_Sin.con" as lemma.
+
+(* UNEXPORTED
+Transparent ArcSin.
+*)
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcSin_range.con" as lemma.
+
+(* UNEXPORTED
+Transparent ArcSin.
+*)
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Sin_ArcSin.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Sin_ArcSin_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcSin_resp_leEq.con" as lemma.
+
+(*#* ***Cosine and Arcosine
+*)
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcCos_Cos.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Cos_ArcCos.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcCos_Cos_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Cos_ArcCos_inv.con" as lemma.
+
+(* UNEXPORTED
+Opaque ArcSin.
+*)
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcCos_resp_leEq.con" as lemma.
+
+(*#* ***Tangent and Arctangent
+*)
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/maps_Tan.con" as lemma.
+
+(* UNEXPORTED
+Opaque Tang.
+*)
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcTan_Tan_inv.con" as lemma.
+
+(* UNEXPORTED
+Transparent Tang.
+*)
+
+(* UNEXPORTED
+Opaque ArcTang.
+*)
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcTan_Tan.con" as lemma.
+
+(* UNEXPORTED
+Opaque iprop.
+*)
+
+(* UNEXPORTED
+Transparent iprop.
+*)
+
+(* UNEXPORTED
+Opaque Cos.
+*)
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Tan_ilim.con" as lemma.
+
+(* UNEXPORTED
+Opaque Min.
+*)
+
+(* UNEXPORTED
+Transparent Cos.
+*)
+
+(* UNEXPORTED
+Section ArcTan_Range
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/x.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/min.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/max.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/min1.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/min2.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/min3.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/min4.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/max1.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/max2.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/max3.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/max4.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/min5.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/min6.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/max5.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/max6.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/a.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/a1.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/a2.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/a3.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/a4.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/a5.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/b.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/b1.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/b2.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/b3.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/b4.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/b5.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Inverses/ArcTan_Range/ab.con" "Inverses__ArcTan_Range__" as definition.
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcTan_range_lemma.con" as lemma.
+
+(* end hide *)
+
+(* UNEXPORTED
+Transparent ArcTang.
+*)
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/ArcTan_range.con" as lemma.
+
+(* UNEXPORTED
+End ArcTan_Range
+*)
+
+(* UNEXPORTED
+Transparent ArcTang.
+*)
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Tan_ArcTan.con" as lemma.
+
+(* UNEXPORTED
+Opaque ArcTang.
+*)
+
+inline procedural "cic:/CoRN/transc/InvTrigonom/Tan_ArcTan_inv.con" as lemma.
+
+(* UNEXPORTED
+End Inverses
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/transc/Pi.mma b/helm/software/matita/contribs/procedural/CoRN/transc/Pi.mma
new file mode 100644 (file)
index 0000000..e3d6eec
--- /dev/null
@@ -0,0 +1,285 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+include "transc/SinCos.ma".
+
+(* UNEXPORTED
+Section Properties_of_Pi
+*)
+
+(*#* printing Pi %\ensuremath{\pi}% #&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 procedural "cic:/CoRN/transc/Pi/pi_seq.con" as definition.
+
+(* UNEXPORTED
+Opaque Cosine.
+*)
+
+(* begin hide *)
+
+(* UNEXPORTED
+Opaque Sine.
+*)
+
+inline procedural "cic:/CoRN/transc/Pi/pi_seq_lemma.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/transc/Pi/pi_seq_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/cos_pi_seq_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/pi_seq_incr.con" as lemma.
+
+(*#* Trivial---but useful---consequences. *)
+
+inline procedural "cic:/CoRN/transc/Pi/sin_pi_seq_mon.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/sin_pi_seq_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/sin_pi_seq_gt_one.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/cos_pi_seq_mon.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/transc/Pi/pi_seq_gt_one.con" as lemma.
+
+(* UNEXPORTED
+Opaque Sine Cosine.
+*)
+
+inline procedural "cic:/CoRN/transc/Pi/pi_seq_bnd.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/pi_seq_bnd'.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/pi_seq_bnd''.con" as lemma.
+
+(* end hide *)
+
+(*#* An auxiliary result. *)
+
+inline procedural "cic:/CoRN/transc/Pi/Sin_One_pos.con" as lemma.
+
+(*#* We can now prove that this is a Cauchy sequence.  We define [Pi] as 
+twice its limit.
+*)
+
+inline procedural "cic:/CoRN/transc/Pi/pi_seq_Cauchy.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/Pi.con" as definition.
+
+(*#*
+For $x\in[0,\frac{\pi}2)$#x&isin;[0,&pi;/2)#, [(Cos x) [>] 0];
+$\cos(\frac{pi}2)=0$#cos(&pi;/2)=0#.
+*)
+
+inline procedural "cic:/CoRN/transc/Pi/pos_cos.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/Cos_HalfPi.con" as lemma.
+
+(*#* Convergence to [Pi [/] Two] is increasing; therefore, [Pi] is positive. *)
+
+inline procedural "cic:/CoRN/transc/Pi/HalfPi_gt_pi_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/pos_Pi.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/transc/Pi/pos_HalfPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/pos_QuarterPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/QuarterPi_less_HalfPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/HalfPi_less_Pi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/QuarterPi_less_Pi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/neg_invPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/neg_invHalfPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/neg_invQuarterPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/invHalfPi_less_invQuarterPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/invPi_less_invHalfPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/invPi_less_invQuarterPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/invPi_less_Pi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/invPi_less_HalfPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/invPi_less_QuarterPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/invHalfPi_less_Pi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/invHalfPi_less_HalfPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/invHalfPi_less_QuarterPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/invQuarterPi_less_Pi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/invQuarterPi_less_HalfPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/invQuarterPi_less_QuarterPi.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/transc/Pi/Cos_double.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/Sin_double.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/Tan_double.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/transc/Pi/sqrt_lemma.con" as lemma.
+
+(* end hide *)
+
+(*#* Value of trigonometric functions at [Pi[/]Four]. *)
+
+inline procedural "cic:/CoRN/transc/Pi/Cos_QuarterPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/Sin_QuarterPi.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Sin_QuarterPi Cos_QuarterPi: algebra.
+*)
+
+(* UNEXPORTED
+Opaque Sine Cosine.
+*)
+
+inline procedural "cic:/CoRN/transc/Pi/Tan_QuarterPi.con" as lemma.
+
+(*#* Shifting sine and cosine by [Pi[/]Two] and [Pi]. *)
+
+inline procedural "cic:/CoRN/transc/Pi/Sin_HalfPi.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Sin_HalfPi: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/Pi/Sin_plus_HalfPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/Sin_HalfPi_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/Cos_plus_HalfPi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/Cos_HalfPi_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/Sin_Pi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/Cos_Pi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/Sin_plus_Pi.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/Cos_plus_Pi.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Sin_plus_Pi Cos_plus_Pi: algebra.
+*)
+
+(*#* Sine and cosine have period [Two Pi], tangent has period [Pi]. *)
+
+inline procedural "cic:/CoRN/transc/Pi/Sin_periodic.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/Cos_periodic.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Pi/Tan_periodic.con" as lemma.
+
+(* 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/helm/software/matita/contribs/procedural/CoRN/transc/PowerSeries.mma b/helm/software/matita/contribs/procedural/CoRN/transc/PowerSeries.mma
new file mode 100644 (file)
index 0000000..b91f4a5
--- /dev/null
@@ -0,0 +1,262 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $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/FTC.ma".
+
+(*#* *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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/PowerSeries/Power_Series/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/PowerSeries/Power_Series/x0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/PowerSeries/Power_Series/Hx0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/PowerSeries/Power_Series/a.var
+*)
+
+inline procedural "cic:/CoRN/transc/PowerSeries/FPowerSeries.con" as definition.
+
+(*#*
+The most important convergence criterium specifically for power series
+is the Dirichlet criterium.
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/transc/PowerSeries/Power_Series/Ha.var
+*)
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Power_Series/r.con" "Power_Series__" as definition.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Power_Series/Hr.con" "Power_Series__" as definition.
+
+(* end show *)
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Dirichlet_crit.con" as lemma.
+
+(*#*
+When defining a function using its Taylor series as a motivation, the following operator can be of use.
+*)
+
+inline procedural "cic:/CoRN/transc/PowerSeries/FPowerSeries'.con" as definition.
+
+(*#*
+This function is also continuous and has a good convergence ratio.
+*)
+
+inline procedural "cic:/CoRN/transc/PowerSeries/FPowerSeries'_cont.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/included_FPowerSeries'.con" as lemma.
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/transc/PowerSeries/Power_Series/Ha'.var
+*)
+
+(* end show *)
+
+inline procedural "cic:/CoRN/transc/PowerSeries/FPowerSeries'_conv'.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/FPowerSeries'_conv.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/PowerSeries/More_on_PowerSeries/x0.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/PowerSeries/More_on_PowerSeries/a.var
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/transc/PowerSeries/More_on_PowerSeries/F.con" "More_on_PowerSeries__" as definition.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/More_on_PowerSeries/G.con" "More_on_PowerSeries__" as definition.
+
+(* end hide *)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/transc/PowerSeries/More_on_PowerSeries/Hf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/PowerSeries/More_on_PowerSeries/Hf'.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/PowerSeries/More_on_PowerSeries/Hg.var
+*)
+
+(* end show *)
+
+(*#* We get a comparison test for power series. *)
+
+inline procedural "cic:/CoRN/transc/PowerSeries/FPowerSeries'_comp.con" as lemma.
+
+(*#* And a rule for differentiation. *)
+
+(* UNEXPORTED
+Opaque nring fac.
+*)
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Derivative_FPowerSeries1'.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/transc/PowerSeries/Exp_ps.con" as definition.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/sin_seq.con" as definition.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/sin_ps.con" as definition.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/cos_seq.con" as definition.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/cos_ps.con" as definition.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Exp_conv'.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Exp_conv.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/sin_conv.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/cos_conv.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Expon.con" as definition.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Sine.con" as definition.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Cosine.con" as definition.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Tang.con" as definition.
+
+(*#*
+Some auxiliary domain results.
+*)
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Exp_domain.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/sin_domain.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/cos_domain.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/included_Exp.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/included_Sin.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/included_Cos.con" as lemma.
+
+(*#*
+Definition of the logarithm.
+*)
+
+inline procedural "cic:/CoRN/transc/PowerSeries/log_defn_lemma.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Logarithm.con" as definition.
+
+(* 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 procedural "cic:/CoRN/transc/PowerSeries/Exp.con" as definition.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Sin.con" as definition.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Cos.con" as definition.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Log.con" as definition.
+
+inline procedural "cic:/CoRN/transc/PowerSeries/Tan.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/transc/RealPowers.mma b/helm/software/matita/contribs/procedural/CoRN/transc/RealPowers.mma
new file mode 100644 (file)
index 0000000..dc2701e
--- /dev/null
@@ -0,0 +1,201 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: RealPowers.v,v 1.5 2004/04/23 10:01:08 lcf Exp $ *)
+
+(*#* printing [!] %\ensuremath{\hat{\ }}% #^# *)
+
+(*#* printing {!} %\ensuremath{\hat{\ }}% #^# *)
+
+include "transc/Exponential.ma".
+
+(* UNEXPORTED
+Opaque Expon.
+*)
+
+(*#* *Arbitrary Real Powers
+
+**Powers of Real Numbers
+
+We now define
+$x^y=e^{y\times\log(x)}$#x<sup>y</sup>=e<sup>y*log(x)</sup>#, whenever
+[x [>] 0], inspired by the rules for manipulating these expressions.
+*)
+
+inline procedural "cic:/CoRN/transc/RealPowers/power.con" as definition.
+
+(* NOTATION
+Notation "x [!] y [//] Hy" := (power x y Hy) (at level 20).
+*)
+
+(*#*
+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 procedural "cic:/CoRN/transc/RealPowers/power_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/RealPowers/power_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/RealPowers/power_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/RealPowers/power_inv.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve power_wd power_plus power_inv: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/RealPowers/power_minus.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/RealPowers/power_nat.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve power_minus power_nat: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/RealPowers/power_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/RealPowers/power_one.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve power_zero power_one: algebra.
+*)
+
+(* UNEXPORTED
+Opaque nexp_op.
+*)
+
+inline procedural "cic:/CoRN/transc/RealPowers/power_int.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve power_int: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/RealPowers/Exp_power.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/RealPowers/mult_power.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/RealPowers/recip_power.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Exp_power mult_power recip_power: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/RealPowers/div_power.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve div_power: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/RealPowers/power_ap_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/RealPowers/power_mult.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/RealPowers/power_pos.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve power_mult: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/RealPowers/power_recip.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve power_recip: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/RealPowers/power_div.con" as lemma.
+
+(* 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}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/RealPowers/Power_Function/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/RealPowers/Power_Function/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/RealPowers/Power_Function/G.var
+*)
+
+inline procedural "cic:/CoRN/transc/RealPowers/FPower.con" as definition.
+
+inline procedural "cic:/CoRN/transc/RealPowers/FPower_domain.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/RealPowers/Continuous_power.con" as lemma.
+
+(* UNEXPORTED
+End Power_Function
+*)
+
+(* NOTATION
+Notation "F {!} G" := (FPower F G) (at level 20).
+*)
+
+(* UNEXPORTED
+Section More_on_Power_Function
+*)
+
+(* UNEXPORTED
+Opaque Expon Logarithm.
+*)
+
+(*#* From global continuity we can obviously get local continuity: *)
+
+inline procedural "cic:/CoRN/transc/RealPowers/continuous_I_power.con" as lemma.
+
+(*#* The rule for differentiation is a must. *)
+
+(* UNEXPORTED
+Transparent Logarithm.
+*)
+
+(* UNEXPORTED
+Opaque Logarithm.
+*)
+
+inline procedural "cic:/CoRN/transc/RealPowers/Derivative_power.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/RealPowers/Diffble_power.con" as lemma.
+
+(* UNEXPORTED
+End More_on_Power_Function
+*)
+
+(* UNEXPORTED
+Hint Resolve Derivative_power: derivate.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/transc/SinCos.mma b/helm/software/matita/contribs/procedural/CoRN/transc/SinCos.mma
new file mode 100644 (file)
index 0000000..149ff39
--- /dev/null
@@ -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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: SinCos.v,v 1.6 2004/04/23 10:01:08 lcf Exp $ *)
+
+include "transc/Trigonometric.ma".
+
+(* UNEXPORTED
+Section Sum_and_so_on
+*)
+
+(* UNEXPORTED
+Opaque Sine Cosine.
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/transc/SinCos/Sum_and_so_on/F.con" "Sum_and_so_on__" as definition.
+
+inline procedural "cic:/CoRN/transc/SinCos/Sum_and_so_on/G.con" "Sum_and_so_on__" as definition.
+
+inline procedural "cic:/CoRN/transc/SinCos/Sum_and_so_on/F'.con" "Sum_and_so_on__" as definition.
+
+inline procedural "cic:/CoRN/transc/SinCos/Sum_and_so_on/G'.con" "Sum_and_so_on__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/transc/SinCos/Sin_plus.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/SinCos/Cos_plus.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/transc/SinCos/Tan_plus.con" as lemma.
+
+(* UNEXPORTED
+Transparent Sine Cosine.
+*)
+
+(*#* Sine, cosine and tangent of [[--]x]. *)
+
+inline procedural "cic:/CoRN/transc/SinCos/Cos_inv.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/SinCos/Sin_inv.con" as lemma.
+
+(* UNEXPORTED
+Opaque Sine Cosine.
+*)
+
+(* UNEXPORTED
+Hint Resolve Cos_inv Sin_inv: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/SinCos/Tan_inv.con" as lemma.
+
+(* UNEXPORTED
+Transparent Sine Cosine.
+*)
+
+(*#*
+The fundamental formulas of trigonometry: $\cos(x)^2+\sin(x)^2=1$#cos(x)<sup>2</sup>+sin(x)<sup>2</sup>=1# and, equivalently, $1+\tan(x)^2=\frac1{\cos(x)^2}$#1+tan(x)<sup>2</sup>=1/(cos(x)<sup>2</sup>)#.
+*)
+
+(* UNEXPORTED
+Hint Resolve Cos_zero: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/SinCos/FFT.con" as theorem.
+
+(* UNEXPORTED
+Opaque Sine Cosine.
+*)
+
+(* UNEXPORTED
+Hint Resolve FFT: algebra.
+*)
+
+inline procedural "cic:/CoRN/transc/SinCos/FFT'.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/transc/SinCos/Sin_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/SinCos/Cos_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/SinCos/Tan_strext.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/SinCos/Sin_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/SinCos/Cos_wd.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/SinCos/Tan_wd.con" as lemma.
+
+(*#*
+The sine and cosine produce values in [[-1,1]].
+*)
+
+inline procedural "cic:/CoRN/transc/SinCos/AbsIR_Sin_leEq_One.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/SinCos/AbsIR_Cos_leEq_One.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/SinCos/Sin_leEq_One.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/SinCos/Cos_leEq_One.con" as lemma.
+
+(*#*
+If the cosine is positive then the sine is in [(-1,1)].
+*)
+
+inline procedural "cic:/CoRN/transc/SinCos/Sin_less_One.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/SinCos/AbsIR_Sin_less_One.con" as lemma.
+
+(* UNEXPORTED
+End Basic_Properties
+*)
+
+(* UNEXPORTED
+Hint Resolve Sin_wd Cos_wd Tan_wd: algebra.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/transc/TaylorSeries.mma b/helm/software/matita/contribs/procedural/CoRN/transc/TaylorSeries.mma
new file mode 100644 (file)
index 0000000..2a5f1e0
--- /dev/null
@@ -0,0 +1,308 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: TaylorSeries.v,v 1.7 2004/04/23 10:01:08 lcf Exp $ *)
+
+include "transc/PowerSeries.ma".
+
+include "ftc/Taylor.ma".
+
+(*#* *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
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Definitions/J.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Definitions/pJ.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Definitions/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Definitions/diffF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Definitions/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Definitions/Ha.var
+*)
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/Taylor_Series'.con" as definition.
+
+(*#*
+%\begin{convention}% Assume also that [f] is the sequence of
+derivatives of [F].
+%\end{convention}%
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Definitions/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Definitions/derF.var
+*)
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/Taylor_Series.con" as definition.
+
+(* UNEXPORTED
+Opaque N_Deriv.
+*)
+
+(*#* Characterizations of the Taylor remainder. *)
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/Taylor_Rem_char.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/abs_Taylor_Rem_char.con" as lemma.
+
+(* 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].
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Convergence_in_IR/H.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Convergence_in_IR/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Convergence_in_IR/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Convergence_in_IR/Ha.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Convergence_in_IR/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Convergence_in_IR/derF.var
+*)
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/Taylor_Series_imp_cont.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/Taylor_Series_lemma_cont.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/Taylor_bnd.con" as definition.
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Convergence_in_IR/bndf.var
+*)
+
+(* end show *)
+
+(* UNEXPORTED
+Opaque nexp_op fac.
+*)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/Convergence_in_IR/H1.con" "Convergence_in_IR__" as definition.
+
+(* UNEXPORTED
+Transparent nexp_op.
+*)
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/Taylor_Series_conv_lemma1.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/Taylor_Series_conv_lemma2.con" as lemma.
+
+(* end hide *)
+
+(*#* The Taylor series always converges on the realline. *)
+
+(* UNEXPORTED
+Transparent nexp_op.
+*)
+
+(* UNEXPORTED
+Opaque nexp_op.
+*)
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/Taylor_Series_conv_IR.con" as lemma.
+
+(* begin hide *)
+
+(* UNEXPORTED
+Transparent nexp_op.
+*)
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/Taylor_majoration_lemma.con" as lemma.
+
+(* UNEXPORTED
+Opaque N_Deriv fac.
+*)
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/Taylor_Series_conv_lemma3.con" as lemma.
+
+(* 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 *)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Convergence_in_IR/Hf.var
+*)
+
+(* end show *)
+
+(* UNEXPORTED
+Transparent fac.
+*)
+
+(* UNEXPORTED
+Opaque mult.
+*)
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/Taylor_Series_conv_to_fun.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/transc/TaylorSeries/Taylor_bnd_trans.con" as lemma.
+
+(* begin hide *)
+
+(* UNEXPORTED
+Opaque nexp_op.
+*)
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/convergence_lemma.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/bnd_imp_Taylor_bnd.con" as lemma.
+
+(*#*
+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.
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Other_Results/F.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Other_Results/G.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Other_Results/a.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Other_Results/f.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Other_Results/g.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Other_Results/derF.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Other_Results/derG.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Other_Results/bndf.var
+*)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Other_Results/bndg.var
+*)
+
+(* begin show *)
+
+(* UNEXPORTED
+cic:/CoRN/transc/TaylorSeries/Other_Results/Heq.var
+*)
+
+(* end show *)
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/Other_Results/Hf.con" "Other_Results__" as definition.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/transc/TaylorSeries/Taylor_unique_crit.con" as lemma.
+
+(* UNEXPORTED
+End Other_Results
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/transc/TrigMon.mma b/helm/software/matita/contribs/procedural/CoRN/transc/TrigMon.mma
new file mode 100644 (file)
index 0000000..e7b8ca3
--- /dev/null
@@ -0,0 +1,101 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: TrigMon.v,v 1.9 2004/04/23 10:01:08 lcf Exp $ *)
+
+include "transc/Pi.ma".
+
+(* UNEXPORTED
+Opaque Sine Cosine.
+*)
+
+(*#*
+Sign properties: cosine is positive in
+$(-\frac{\pi}2,\frac{\pi}2)$#(-&pi;/2,&pi;/2)#, sine in
+$(0,\pi)$#(0,&pi;)# and tangent in $(0,\frac{\pi}2)$#0,&pi;/2)#.
+*)
+
+inline procedural "cic:/CoRN/transc/TrigMon/Cos_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/TrigMon/Sin_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/TrigMon/Tan_pos.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/TrigMon/Cos_nonneg.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/TrigMon/Sin_nonneg.con" as lemma.
+
+(*#* Consequences. *)
+
+inline procedural "cic:/CoRN/transc/TrigMon/Abs_Sin_less_One.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/TrigMon/Abs_Cos_less_One.con" as lemma.
+
+(*#*
+Sine is (strictly) increasing in [[ [--]Pi[/]Two,Pi[/]Two]]; cosine
+is (strictly) decreasing in [[Zero,Pi]].
+*)
+
+inline procedural "cic:/CoRN/transc/TrigMon/Sin_resp_leEq.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/TrigMon/Cos_resp_leEq.con" as lemma.
+
+(* begin hide *)
+
+inline procedural "cic:/CoRN/transc/TrigMon/Cos_resp_less_aux.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/TrigMon/Cos_resp_less_aux'.con" as lemma.
+
+(* end hide *)
+
+inline procedural "cic:/CoRN/transc/TrigMon/Cos_resp_less.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/TrigMon/Sin_resp_less.con" as lemma.
+
+(* UNEXPORTED
+Section Tangent
+*)
+
+(*#* **Derivative of Tangent
+
+Finally, two formulas for the derivative of the tangent function and
+monotonicity properties.
+*)
+
+inline procedural "cic:/CoRN/transc/TrigMon/bnd_Cos.con" as lemma.
+
+(* UNEXPORTED
+Opaque Sine Cosine.
+*)
+
+inline procedural "cic:/CoRN/transc/TrigMon/Derivative_Tan_1.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/TrigMon/Derivative_Tan_2.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/TrigMon/Tan_resp_less.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/TrigMon/Tan_resp_leEq.con" as lemma.
+
+(* UNEXPORTED
+End Tangent
+*)
+
+(* UNEXPORTED
+Hint Resolve Derivative_Tan_1 Derivative_Tan_2: derivate.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/CoRN/transc/Trigonometric.mma b/helm/software/matita/contribs/procedural/CoRN/transc/Trigonometric.mma
new file mode 100644 (file)
index 0000000..7308dd1
--- /dev/null
@@ -0,0 +1,214 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "CoRN.ma".
+
+(* $Id: Trigonometric.v,v 1.5 2004/04/23 10:01:08 lcf Exp $ *)
+
+include "transc/TaylorSeries.ma".
+
+(*#* *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 procedural "cic:/CoRN/transc/Trigonometric/maps_translation.con" as lemma.
+
+(* UNEXPORTED
+End Lemmas
+*)
+
+(* UNEXPORTED
+Section Sine_and_Cosine
+*)
+
+(*#* Sine, cosine and tangent at [Zero]. *)
+
+inline procedural "cic:/CoRN/transc/Trigonometric/Sin_zero.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Trigonometric/Cos_zero.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Sin_zero Cos_zero: algebra.
+*)
+
+(* UNEXPORTED
+Opaque Sine Cosine.
+*)
+
+inline procedural "cic:/CoRN/transc/Trigonometric/Tan_zero.con" as lemma.
+
+(* UNEXPORTED
+Transparent Sine Cosine.
+*)
+
+(*#*
+Continuity of sine and cosine are trivial.
+*)
+
+inline procedural "cic:/CoRN/transc/Trigonometric/Continuous_Sin.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Trigonometric/Continuous_Cos.con" as lemma.
+
+(*#*
+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 procedural "cic:/CoRN/transc/Trigonometric/cos_sin_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Trigonometric/sin_cos_seq.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Trigonometric/Derivative_Sin.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Trigonometric/Derivative_Cos.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/transc/Trigonometric/Sine_and_Cosine/Sine_of_Sum/F.con" "Sine_and_Cosine__Sine_of_Sum__" as definition.
+
+inline procedural "cic:/CoRN/transc/Trigonometric/Sine_and_Cosine/Sine_of_Sum/G.con" "Sine_and_Cosine__Sine_of_Sum__" as definition.
+
+inline procedural "cic:/CoRN/transc/Trigonometric/Sine_and_Cosine/Sine_of_Sum/F'.con" "Sine_and_Cosine__Sine_of_Sum__" as definition.
+
+inline procedural "cic:/CoRN/transc/Trigonometric/Sine_and_Cosine/Sine_of_Sum/G'.con" "Sine_and_Cosine__Sine_of_Sum__" as definition.
+
+(* 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 procedural "cic:/CoRN/transc/Trigonometric/Sin_plus_Taylor_bnd_lft.con" as lemma.
+
+(* 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 procedural "cic:/CoRN/transc/Trigonometric/Sin_plus_Taylor_bnd_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Trigonometric/Sin_plus_eq.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Trigonometric/Sin_plus_der_lft.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Trigonometric/Sin_plus_der_rht.con" as lemma.
+
+inline procedural "cic:/CoRN/transc/Trigonometric/Sin_plus_fun.con" as lemma.
+
+(* UNEXPORTED
+End Sine_of_Sum
+*)
+
+(* UNEXPORTED
+Opaque Sine Cosine.
+*)
+
+inline procedural "cic:/CoRN/transc/Trigonometric/Cos_plus_fun.con" as lemma.
+
+(* UNEXPORTED
+End Sine_and_Cosine
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Arith.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Arith.mma
new file mode 100644 (file)
index 0000000..8c9c8f2
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Arith.v,v 1.11 2003/11/29 17:28:28 herbelin Exp $ i*)
+
+include "Arith/Le.ma".
+
+include "Arith/Lt.ma".
+
+include "Arith/Plus.ma".
+
+include "Arith/Gt.ma".
+
+include "Arith/Minus.ma".
+
+include "Arith/Mult.ma".
+
+include "Arith/Between.ma".
+
+include "Arith/Minus.ma".
+
+include "Arith/Peano_dec.ma".
+
+include "Arith/Compare_dec.ma".
+
+include "Arith/Factorial.ma".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Between.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Between.mma
new file mode 100644 (file)
index 0000000..ba26691
--- /dev/null
@@ -0,0 +1,161 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Between.v,v 1.12 2003/12/15 19:48:17 barras Exp $ i*)
+
+include "Arith/Le.ma".
+
+include "Arith/Lt.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types k l p q r : nat.
+*)
+
+(* UNEXPORTED
+Section Between
+*)
+
+(* UNEXPORTED
+cic:/Coq/Arith/Between/Between/P.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Arith/Between/Between/Q.var
+*)
+
+inline procedural "cic:/Coq/Arith/Between/between.ind".
+
+(* UNEXPORTED
+Hint Constructors between: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Between/bet_eq.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve bet_eq: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Between/between_le.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate between_le: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Between/between_Sk_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve between_Sk_l: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Between/between_restr.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Between/exists_between.ind".
+
+(* UNEXPORTED
+Hint Constructors exists_between: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Between/exists_le_S.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Between/exists_lt.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate exists_le_S exists_lt: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Between/exists_S_le.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate exists_S_le: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Between/in_int.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Between/in_int_intro.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve in_int_intro: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Between/in_int_lt.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Between/in_int_p_Sq.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Between/in_int_S.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve in_int_S: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Between/in_int_Sp_q.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate in_int_Sp_q: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Between/between_in_int.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Between/in_int_between.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Between/exists_in_int.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Between/in_int_exists.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Between/between_or_exists.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Between/between_not_exists.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Between/P_nth.ind".
+
+inline procedural "cic:/Coq/Arith/Between/nth_le.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Between/eventually.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Between/event_O.con" as lemma.
+
+(* UNEXPORTED
+End Between
+*)
+
+(* UNEXPORTED
+Hint Resolve nth_O bet_S bet_emp bet_eq between_Sk_l exists_S exists_le
+  in_int_S in_int_intro: arith v62.
+*)
+
+(* UNEXPORTED
+Hint Immediate in_int_Sp_q exists_le_S exists_S_le: arith v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Bool_nat.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Bool_nat.mma
new file mode 100644 (file)
index 0000000..324d6c1
--- /dev/null
@@ -0,0 +1,71 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(* $Id: Bool_nat.v,v 1.5 2003/11/29 17:28:28 herbelin Exp $ *)
+
+include "Arith/Compare_dec.ma".
+
+include "Arith/Peano_dec.ma".
+
+include "Bool/Sumbool.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types m n x y : nat.
+*)
+
+(*#* The decidability of equality and order relations over
+    type [nat] give some boolean functions with the adequate specification. *)
+
+inline procedural "cic:/Coq/Arith/Bool_nat/notzerop.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Bool_nat/lt_ge_dec.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Bool_nat/nat_lt_ge_bool.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Bool_nat/nat_ge_lt_bool.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Bool_nat/nat_le_gt_bool.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Bool_nat/nat_gt_le_bool.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Bool_nat/nat_eq_bool.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Bool_nat/nat_noteq_bool.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Bool_nat/zerop_bool.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Bool_nat/notzerop_bool.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Compare.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Compare.mma
new file mode 100644 (file)
index 0000000..3f0a8bb
--- /dev/null
@@ -0,0 +1,80 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Compare.v,v 1.12 2004/03/03 15:53:40 marche Exp $ i*)
+
+(*#* Equality is decidable on [nat] *)
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(*
+Lemma not_eq_sym : (A:Set)(p,q:A)(~p=q) -> ~(q=p).
+Proof sym_not_eq.
+Hints Immediate not_eq_sym : arith.
+*)
+
+(* NOTATION
+Notation not_eq_sym := sym_not_eq.
+*)
+
+(* UNEXPORTED
+Implicit Types m n p q : nat.
+*)
+
+include "Arith/Arith.ma".
+
+include "Arith/Peano_dec.ma".
+
+include "Arith/Compare_dec.ma".
+
+inline procedural "cic:/Coq/Arith/Compare/le_or_le_S.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Compare/Pcompare.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Compare/le_dec.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Compare/lt_or_eq.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Compare/le_decide.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Compare/le_le_S_eq.con" as lemma.
+
+(* By special request of G. Kahn - Used in Group Theory *)
+
+inline procedural "cic:/Coq/Arith/Compare/discrete_nat.con" as lemma.
+
+include "Arith/Wf_nat.ma".
+
+include "Arith/Min.ma".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Compare_dec.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Compare_dec.mma
new file mode 100644 (file)
index 0000000..4332916
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Compare_dec.v,v 1.13 2003/11/29 17:28:28 herbelin Exp $ i*)
+
+include "Arith/Le.ma".
+
+include "Arith/Lt.ma".
+
+include "Arith/Gt.ma".
+
+include "Logic/Decidable.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types m n x y : nat.
+*)
+
+inline procedural "cic:/Coq/Arith/Compare_dec/zerop.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Compare_dec/lt_eq_lt_dec.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Compare_dec/gt_eq_gt_dec.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Compare_dec/le_lt_dec.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Compare_dec/le_le_S_dec.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Compare_dec/le_ge_dec.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Compare_dec/le_gt_dec.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Compare_dec/le_lt_eq_dec.con" as definition.
+
+(*#* Proofs of decidability *)
+
+inline procedural "cic:/Coq/Arith/Compare_dec/dec_le.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Compare_dec/dec_lt.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Compare_dec/dec_gt.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Compare_dec/dec_ge.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Compare_dec/not_eq.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Compare_dec/not_le.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Compare_dec/not_gt.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Compare_dec/not_ge.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Compare_dec/not_lt.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Div.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Div.mma
new file mode 100644 (file)
index 0000000..1c8e1b8
--- /dev/null
@@ -0,0 +1,58 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Div.v,v 1.8 2003/04/09 10:55:03 herbelin Exp $ i*)
+
+(*#* Euclidean division *)
+
+(* UNEXPORTED
+V7only [Import nat_scope.].
+*)
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+include "Arith/Le.ma".
+
+include "Arith/Compare_dec.ma".
+
+(* UNEXPORTED
+Implicit Variables Type n,a,b,q,r:nat.
+*)
+
+inline procedural "cic:/Coq/Arith/Div/inf_dec.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Div/div1.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Div/div2.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Div2.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Div2.mma
new file mode 100644 (file)
index 0000000..48ace13
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Div2.v,v 1.15 2003/11/29 17:28:28 herbelin Exp $ i*)
+
+include "Arith/Lt.ma".
+
+include "Arith/Plus.ma".
+
+include "Arith/Compare_dec.ma".
+
+include "Arith/Even.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Type n : nat.
+*)
+
+(*#* Here we define [n/2] and prove some of its properties *)
+
+inline procedural "cic:/Coq/Arith/Div2/div2.con" as definition.
+
+(*#* Since [div2] is recursively defined on [0], [1] and [(S (S n))], it is
+    useful to prove the corresponding induction principle *)
+
+inline procedural "cic:/Coq/Arith/Div2/ind_0_1_SS.con" as lemma.
+
+(*#* [0 <n  =>  n/2 < n] *)
+
+inline procedural "cic:/Coq/Arith/Div2/lt_div2.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve lt_div2: arith.
+*)
+
+(*#* Properties related to the parity *)
+
+inline procedural "cic:/Coq/Arith/Div2/even_odd_div2.con" as lemma.
+
+(*#* Specializations *)
+
+inline procedural "cic:/Coq/Arith/Div2/even_div2.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Div2/div2_even.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Div2/odd_div2.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Div2/div2_odd.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve even_div2 div2_even odd_div2 div2_odd: arith.
+*)
+
+(*#* Properties related to the double ([2n]) *)
+
+inline procedural "cic:/Coq/Arith/Div2/double.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold double: arith.
+*)
+
+inline procedural "cic:/Coq/Arith/Div2/double_S.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Div2/double_plus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve double_S: arith.
+*)
+
+inline procedural "cic:/Coq/Arith/Div2/even_odd_double.con" as lemma.
+
+(*#* Specializations *)
+
+inline procedural "cic:/Coq/Arith/Div2/even_double.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Div2/double_even.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Div2/odd_double.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Div2/double_odd.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve even_double double_even odd_double double_odd: arith.
+*)
+
+(*#* Application: 
+    - if [n] is even then there is a [p] such that [n = 2p]
+    - if [n] is odd  then there is a [p] such that [n = 2p+1]
+
+    (Immediate: it is [n/2]) *)
+
+inline procedural "cic:/Coq/Arith/Div2/even_2n.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Div2/odd_S2n.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/EqNat.mma b/helm/software/matita/contribs/procedural/Coq/Arith/EqNat.mma
new file mode 100644 (file)
index 0000000..4edb46d
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: EqNat.v,v 1.14 2003/11/29 17:28:28 herbelin Exp $ i*)
+
+(*#* Equality on natural numbers *)
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types m n x y : nat.
+*)
+
+inline procedural "cic:/Coq/Arith/EqNat/eq_nat.con" as definition.
+
+inline procedural "cic:/Coq/Arith/EqNat/eq_nat_refl.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve eq_nat_refl: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/EqNat/eq_eq_nat.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate eq_eq_nat: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/EqNat/eq_nat_eq.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate eq_nat_eq: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/EqNat/eq_nat_elim.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/EqNat/eq_nat_decide.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/EqNat/beq_nat.con" as definition.
+
+inline procedural "cic:/Coq/Arith/EqNat/beq_nat_refl.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/EqNat/beq_nat_eq.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Euclid.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Euclid.mma
new file mode 100644 (file)
index 0000000..1a5d3c6
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Euclid.v,v 1.7 2003/12/15 19:48:17 barras Exp $ i*)
+
+include "Arith/Mult.ma".
+
+include "Arith/Compare_dec.ma".
+
+include "Arith/Wf_nat.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types a b n q r : nat.
+*)
+
+inline procedural "cic:/Coq/Arith/Euclid/diveucl.ind".
+
+inline procedural "cic:/Coq/Arith/Euclid/eucl_dev.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Euclid/quotient.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Euclid/modulo.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Even.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Even.mma
new file mode 100644 (file)
index 0000000..3d93b67
--- /dev/null
@@ -0,0 +1,120 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Even.v,v 1.14 2003/11/29 17:28:28 herbelin Exp $ i*)
+
+(*#* Here we define the predicates [even] and [odd] by mutual induction
+    and we prove the decidability and the exclusion of those predicates.
+    The main results about parity are proved in the module Div2. *)
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types m n : nat.
+*)
+
+inline procedural "cic:/Coq/Arith/Even/even.ind".
+
+(* UNEXPORTED
+Hint Constructors even: arith.
+*)
+
+(* UNEXPORTED
+Hint Constructors odd: arith.
+*)
+
+inline procedural "cic:/Coq/Arith/Even/even_or_odd.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/even_odd_dec.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/not_even_and_odd.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/even_plus_aux.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/even_even_plus.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/odd_even_plus.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/even_plus_even_inv_r.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/even_plus_even_inv_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/even_plus_odd_inv_r.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/even_plus_odd_inv_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve even_even_plus odd_even_plus: arith.
+*)
+
+inline procedural "cic:/Coq/Arith/Even/odd_plus_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/odd_plus_r.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/odd_plus_even_inv_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/odd_plus_even_inv_r.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/odd_plus_odd_inv_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/odd_plus_odd_inv_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve odd_plus_l odd_plus_r: arith.
+*)
+
+inline procedural "cic:/Coq/Arith/Even/even_mult_aux.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/even_mult_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/even_mult_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve even_mult_l even_mult_r: arith.
+*)
+
+inline procedural "cic:/Coq/Arith/Even/even_mult_inv_r.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/even_mult_inv_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/odd_mult.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve even_mult_l even_mult_r odd_mult: arith.
+*)
+
+inline procedural "cic:/Coq/Arith/Even/odd_mult_inv_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Even/odd_mult_inv_r.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Factorial.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Factorial.mma
new file mode 100644 (file)
index 0000000..7a3c3d6
--- /dev/null
@@ -0,0 +1,58 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Factorial.v,v 1.5 2003/11/29 17:28:28 herbelin Exp $ i*)
+
+include "Arith/Plus.ma".
+
+include "Arith/Mult.ma".
+
+include "Arith/Lt.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(*#* Factorial *)
+
+inline procedural "cic:/Coq/Arith/Factorial/fact.con" as definition.
+
+(* UNEXPORTED
+Arguments Scope fact [nat_scope].
+*)
+
+inline procedural "cic:/Coq/Arith/Factorial/lt_O_fact.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Factorial/fact_neq_0.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Factorial/fact_le.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Gt.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Gt.mma
new file mode 100644 (file)
index 0000000..6e2f910
--- /dev/null
@@ -0,0 +1,164 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Gt.v,v 1.8 2003/11/29 17:28:28 herbelin Exp $ i*)
+
+include "Arith/Le.ma".
+
+include "Arith/Lt.ma".
+
+include "Arith/Plus.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types m n p : nat.
+*)
+
+(*#* Order and successor *)
+
+inline procedural "cic:/Coq/Arith/Gt/gt_Sn_O.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve gt_Sn_O: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Gt/gt_Sn_n.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve gt_Sn_n: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Gt/gt_n_S.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve gt_n_S: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Gt/gt_S_n.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate gt_S_n: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Gt/gt_S.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Gt/gt_pred.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate gt_pred: arith v62.
+*)
+
+(*#* Irreflexivity *)
+
+inline procedural "cic:/Coq/Arith/Gt/gt_irrefl.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve gt_irrefl: arith v62.
+*)
+
+(*#* Asymmetry *)
+
+inline procedural "cic:/Coq/Arith/Gt/gt_asym.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve gt_asym: arith v62.
+*)
+
+(*#* Relating strict and large orders *)
+
+inline procedural "cic:/Coq/Arith/Gt/le_not_gt.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve le_not_gt: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Gt/gt_not_le.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve gt_not_le: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Gt/le_S_gt.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate le_S_gt: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Gt/gt_S_le.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate gt_S_le: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Gt/gt_le_S.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve gt_le_S: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Gt/le_gt_S.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve le_gt_S: arith v62.
+*)
+
+(*#* Transitivity *)
+
+inline procedural "cic:/Coq/Arith/Gt/le_gt_trans.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Gt/gt_le_trans.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Gt/gt_trans.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Gt/gt_trans_S.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve gt_trans_S le_gt_trans gt_le_trans: arith v62.
+*)
+
+(*#* Comparison to 0 *)
+
+inline procedural "cic:/Coq/Arith/Gt/gt_O_eq.con" as theorem.
+
+(*#* Simplification and compatibility *)
+
+inline procedural "cic:/Coq/Arith/Gt/plus_gt_reg_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Gt/plus_gt_compat_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve plus_gt_compat_l: arith v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Le.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Le.mma
new file mode 100644 (file)
index 0000000..5822ab5
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Le.v,v 1.14 2003/11/29 17:28:28 herbelin Exp $ i*)
+
+(*#* Order on natural numbers *)
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types m n p : nat.
+*)
+
+(*#* Reflexivity *)
+
+inline procedural "cic:/Coq/Arith/Le/le_refl.con" as theorem.
+
+(*#* Transitivity *)
+
+inline procedural "cic:/Coq/Arith/Le/le_trans.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve le_trans: arith v62.
+*)
+
+(*#* Order, successor and predecessor *)
+
+inline procedural "cic:/Coq/Arith/Le/le_n_S.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Le/le_n_Sn.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Le/le_O_n.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve le_n_S le_n_Sn le_O_n le_n_S: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Le/le_pred_n.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve le_pred_n: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Le/le_Sn_le.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate le_Sn_le: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Le/le_S_n.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate le_S_n: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Le/le_pred.con" as theorem.
+
+(*#* Comparison to 0 *)
+
+inline procedural "cic:/Coq/Arith/Le/le_Sn_O.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve le_Sn_O: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Le/le_n_O_eq.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate le_n_O_eq: arith v62.
+*)
+
+(*#* Negative properties *)
+
+inline procedural "cic:/Coq/Arith/Le/le_Sn_n.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve le_Sn_n: arith v62.
+*)
+
+(*#* Antisymmetry *)
+
+inline procedural "cic:/Coq/Arith/Le/le_antisym.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate le_antisym: arith v62.
+*)
+
+(*#* A different elimination principle for the order on natural numbers *)
+
+inline procedural "cic:/Coq/Arith/Le/le_elim_rel.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Lt.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Lt.mma
new file mode 100644 (file)
index 0000000..5bbc4b0
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Lt.v,v 1.11 2003/11/29 17:28:28 herbelin Exp $ i*)
+
+include "Arith/Le.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types m n p : nat.
+*)
+
+(*#* Irreflexivity *)
+
+inline procedural "cic:/Coq/Arith/Lt/lt_irrefl.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve lt_irrefl: arith v62.
+*)
+
+(*#* Relationship between [le] and [lt] *)
+
+inline procedural "cic:/Coq/Arith/Lt/lt_le_S.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate lt_le_S: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Lt/lt_n_Sm_le.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate lt_n_Sm_le: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Lt/le_lt_n_Sm.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate le_lt_n_Sm: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Lt/le_not_lt.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Lt/lt_not_le.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate le_not_lt lt_not_le: arith v62.
+*)
+
+(*#* Asymmetry *)
+
+inline procedural "cic:/Coq/Arith/Lt/lt_asym.con" as theorem.
+
+(*#* Order and successor *)
+
+inline procedural "cic:/Coq/Arith/Lt/lt_n_Sn.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve lt_n_Sn: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Lt/lt_S.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve lt_S: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Lt/lt_n_S.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve lt_n_S: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Lt/lt_S_n.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate lt_S_n: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Lt/lt_O_Sn.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve lt_O_Sn: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Lt/lt_n_O.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve lt_n_O: arith v62.
+*)
+
+(*#* Predecessor *)
+
+inline procedural "cic:/Coq/Arith/Lt/S_pred.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Lt/lt_pred.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate lt_pred: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Lt/lt_pred_n_n.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve lt_pred_n_n: arith v62.
+*)
+
+(*#* Transitivity properties *)
+
+inline procedural "cic:/Coq/Arith/Lt/lt_trans.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Lt/lt_le_trans.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Lt/le_lt_trans.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve lt_trans lt_le_trans le_lt_trans: arith v62.
+*)
+
+(*#* Large = strict or equal *)
+
+inline procedural "cic:/Coq/Arith/Lt/le_lt_or_eq.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Lt/lt_le_weak.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate lt_le_weak: arith v62.
+*)
+
+(*#* Dichotomy *)
+
+inline procedural "cic:/Coq/Arith/Lt/le_or_lt.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Lt/nat_total_order.con" as theorem.
+
+(*#* Comparison to 0 *)
+
+inline procedural "cic:/Coq/Arith/Lt/neq_O_lt.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate neq_O_lt: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Lt/lt_O_neq.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate lt_O_neq: arith v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Max.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Max.mma
new file mode 100644 (file)
index 0000000..55476d3
--- /dev/null
@@ -0,0 +1,76 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Max.v,v 1.7 2003/11/29 17:28:28 herbelin Exp $ i*)
+
+include "Arith/Arith.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types m n : nat.
+*)
+
+(*#* maximum of two natural numbers *)
+
+inline procedural "cic:/Coq/Arith/Max/max.con" as definition.
+
+(*#* Simplifications of [max] *)
+
+inline procedural "cic:/Coq/Arith/Max/max_SS.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Max/max_comm.con" as lemma.
+
+(*#* [max] and [le] *)
+
+inline procedural "cic:/Coq/Arith/Max/max_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Max/max_r.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Max/le_max_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Max/le_max_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve max_r max_l le_max_l le_max_r: arith v62.
+*)
+
+(*#* [max n m] is equal to [n] or [m] *)
+
+inline procedural "cic:/Coq/Arith/Max/max_dec.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Max/max_case.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Max/max_case2.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Min.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Min.mma
new file mode 100644 (file)
index 0000000..9b2ccc2
--- /dev/null
@@ -0,0 +1,76 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Min.v,v 1.10 2003/11/29 17:28:29 herbelin Exp $ i*)
+
+include "Arith/Arith.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types m n : nat.
+*)
+
+(*#* minimum of two natural numbers *)
+
+inline procedural "cic:/Coq/Arith/Min/min.con" as definition.
+
+(*#* Simplifications of [min] *)
+
+inline procedural "cic:/Coq/Arith/Min/min_SS.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Min/min_comm.con" as lemma.
+
+(*#* [min] and [le] *)
+
+inline procedural "cic:/Coq/Arith/Min/min_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Min/min_r.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Min/le_min_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Min/le_min_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve min_l min_r le_min_l le_min_r: arith v62.
+*)
+
+(*#* [min n m] is equal to [n] or [m] *)
+
+inline procedural "cic:/Coq/Arith/Min/min_dec.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Min/min_case.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Min/min_case2.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Minus.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Minus.mma
new file mode 100644 (file)
index 0000000..f7591a9
--- /dev/null
@@ -0,0 +1,126 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Minus.v,v 1.14 2003/11/29 17:28:29 herbelin Exp $ i*)
+
+(*#* Subtraction (difference between two natural numbers) *)
+
+include "Arith/Lt.ma".
+
+include "Arith/Le.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types m n p : nat.
+*)
+
+(*#* 0 is right neutral *)
+
+inline procedural "cic:/Coq/Arith/Minus/minus_n_O.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve minus_n_O: arith v62.
+*)
+
+(*#* Permutation with successor *)
+
+inline procedural "cic:/Coq/Arith/Minus/minus_Sn_m.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve minus_Sn_m: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Minus/pred_of_minus.con" as theorem.
+
+(*#* Diagonal *)
+
+inline procedural "cic:/Coq/Arith/Minus/minus_n_n.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve minus_n_n: arith v62.
+*)
+
+(*#* Simplification *)
+
+inline procedural "cic:/Coq/Arith/Minus/minus_plus_simpl_l_reverse.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve minus_plus_simpl_l_reverse: arith v62.
+*)
+
+(*#* Relation with plus *)
+
+inline procedural "cic:/Coq/Arith/Minus/plus_minus.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate plus_minus: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Minus/minus_plus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve minus_plus: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Minus/le_plus_minus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve le_plus_minus: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Minus/le_plus_minus_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve le_plus_minus_r: arith v62.
+*)
+
+(*#* Relation with order *)
+
+inline procedural "cic:/Coq/Arith/Minus/le_minus.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Minus/lt_minus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve lt_minus: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Minus/lt_O_minus_lt.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate lt_O_minus_lt: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Minus/not_le_minus_0.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Mult.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Mult.mma
new file mode 100644 (file)
index 0000000..50f4e7c
--- /dev/null
@@ -0,0 +1,163 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Mult.v,v 1.21 2003/11/29 17:28:29 herbelin Exp $ i*)
+
+include "Arith/Plus.ma".
+
+include "Arith/Minus.ma".
+
+include "Arith/Lt.ma".
+
+include "Arith/Le.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types m n p : nat.
+*)
+
+(*#* Zero property *)
+
+inline procedural "cic:/Coq/Arith/Mult/mult_0_r.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Mult/mult_0_l.con" as lemma.
+
+(*#* Distributivity *)
+
+inline procedural "cic:/Coq/Arith/Mult/mult_plus_distr_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_plus_distr_r: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Mult/mult_plus_distr_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Mult/mult_minus_distr_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_minus_distr_r: arith v62.
+*)
+
+(*#* Associativity *)
+
+inline procedural "cic:/Coq/Arith/Mult/mult_assoc_reverse.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_assoc_reverse: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Mult/mult_assoc.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_assoc: arith v62.
+*)
+
+(*#* Commutativity *)
+
+inline procedural "cic:/Coq/Arith/Mult/mult_comm.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_comm: arith v62.
+*)
+
+(*#* 1 is neutral *)
+
+inline procedural "cic:/Coq/Arith/Mult/mult_1_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_1_l: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Mult/mult_1_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_1_r: arith v62.
+*)
+
+(*#* Compatibility with orders *)
+
+inline procedural "cic:/Coq/Arith/Mult/mult_O_le.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_O_le: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Mult/mult_le_compat_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_le_compat_l: arith.
+*)
+
+inline procedural "cic:/Coq/Arith/Mult/mult_le_compat_r.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Mult/mult_le_compat.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Mult/mult_S_lt_compat_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_S_lt_compat_l: arith.
+*)
+
+inline procedural "cic:/Coq/Arith/Mult/mult_lt_compat_r.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Mult/mult_S_le_reg_l.con" as lemma.
+
+(*#* n|->2*n and n|->2n+1 have disjoint image *)
+
+inline procedural "cic:/Coq/Arith/Mult/odd_even_lem.con" as theorem.
+
+(*#* Tail-recursive mult *)
+
+(*#* [tail_mult] is an alternative definition for [mult] which is 
+    tail-recursive, whereas [mult] is not. This can be useful 
+    when extracting programs. *)
+
+inline procedural "cic:/Coq/Arith/Mult/mult_acc.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Mult/mult_acc_aux.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Mult/tail_mult.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Mult/mult_tail_mult.con" as lemma.
+
+(*#* [TailSimpl] transforms any [tail_plus] and [tail_mult] into [plus] 
+    and [mult] and simplify *)
+
+(* UNEXPORTED
+Ltac tail_simpl :=
+  repeat rewrite <- plus_tail_plus; repeat rewrite <- mult_tail_mult;
+   simpl in |- *.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Peano_dec.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Peano_dec.mma
new file mode 100644 (file)
index 0000000..b82b5c4
--- /dev/null
@@ -0,0 +1,54 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Peano_dec.v,v 1.10 2003/11/29 17:28:29 herbelin Exp $ i*)
+
+include "Logic/Decidable.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types m n x y : nat.
+*)
+
+inline procedural "cic:/Coq/Arith/Peano_dec/O_or_S.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Peano_dec/eq_nat_dec.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve O_or_S eq_nat_dec: arith.
+*)
+
+inline procedural "cic:/Coq/Arith/Peano_dec/dec_eq_nat.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Plus.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Plus.mma
new file mode 100644 (file)
index 0000000..82e98d7
--- /dev/null
@@ -0,0 +1,168 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Plus.v,v 1.18 2003/11/29 17:28:29 herbelin Exp $ i*)
+
+(*#* Properties of addition *)
+
+include "Arith/Le.ma".
+
+include "Arith/Lt.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types m n p q : nat.
+*)
+
+(*#* Zero is neutral *)
+
+inline procedural "cic:/Coq/Arith/Plus/plus_0_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Plus/plus_0_r.con" as lemma.
+
+(*#* Commutativity *)
+
+inline procedural "cic:/Coq/Arith/Plus/plus_comm.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate plus_comm: arith v62.
+*)
+
+(*#* Associativity *)
+
+inline procedural "cic:/Coq/Arith/Plus/plus_Snm_nSm.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Plus/plus_assoc.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve plus_assoc: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Plus/plus_permute.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Plus/plus_assoc_reverse.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve plus_assoc_reverse: arith v62.
+*)
+
+(*#* Simplification *)
+
+inline procedural "cic:/Coq/Arith/Plus/plus_reg_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Plus/plus_le_reg_l.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Plus/plus_lt_reg_l.con" as lemma.
+
+(*#* Compatibility with order *)
+
+inline procedural "cic:/Coq/Arith/Plus/plus_le_compat_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve plus_le_compat_l: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Plus/plus_le_compat_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve plus_le_compat_r: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Plus/le_plus_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve le_plus_l: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Plus/le_plus_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve le_plus_r: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Plus/le_plus_trans.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve le_plus_trans: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Plus/lt_plus_trans.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate lt_plus_trans: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Plus/plus_lt_compat_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve plus_lt_compat_l: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Plus/plus_lt_compat_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve plus_lt_compat_r: arith v62.
+*)
+
+inline procedural "cic:/Coq/Arith/Plus/plus_le_compat.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Plus/plus_le_lt_compat.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Plus/plus_lt_le_compat.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Plus/plus_lt_compat.con" as lemma.
+
+(*#* Inversion lemmas *)
+
+inline procedural "cic:/Coq/Arith/Plus/plus_is_O.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Plus/plus_is_one.con" as definition.
+
+(*#* Derived properties *)
+
+inline procedural "cic:/Coq/Arith/Plus/plus_permute_2_in_4.con" as lemma.
+
+(*#* Tail-recursive plus *)
+
+(*#* [tail_plus] is an alternative definition for [plus] which is 
+    tail-recursive, whereas [plus] is not. This can be useful
+    when extracting programs. *)
+
+inline procedural "cic:/Coq/Arith/Plus/plus_acc.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Plus/tail_plus.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Plus/plus_tail_plus.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Arith/Wf_nat.mma b/helm/software/matita/contribs/procedural/Coq/Arith/Wf_nat.mma
new file mode 100644 (file)
index 0000000..dfc4462
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Wf_nat.v,v 1.16 2003/12/15 19:48:17 barras Exp $ i*)
+
+(*#* Well-founded relations and natural numbers *)
+
+include "Arith/Lt.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types m n p : nat.
+*)
+
+(* UNEXPORTED
+Section Well_founded_Nat
+*)
+
+(* UNEXPORTED
+cic:/Coq/Arith/Wf_nat/Well_founded_Nat/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Arith/Wf_nat/Well_founded_Nat/f.var
+*)
+
+inline procedural "cic:/Coq/Arith/Wf_nat/ltof.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Wf_nat/gtof.con" as definition.
+
+inline procedural "cic:/Coq/Arith/Wf_nat/well_founded_ltof.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Wf_nat/well_founded_gtof.con" as theorem.
+
+(*#* It is possible to directly prove the induction principle going
+   back to primitive recursion on natural numbers ([induction_ltof1])
+   or to use the previous lemmas to extract a program with a fixpoint
+   ([induction_ltof2]) 
+
+the ML-like program for [induction_ltof1] is : [[
+   let induction_ltof1 F a = indrec ((f a)+1) a 
+   where rec indrec = 
+        function 0    -> (function a -> error)
+               |(S m) -> (function a -> (F a (function y -> indrec y m)));;
+]]
+
+the ML-like program for [induction_ltof2] is : [[
+   let induction_ltof2 F a = indrec a
+   where rec indrec a = F a indrec;;
+]] *)
+
+inline procedural "cic:/Coq/Arith/Wf_nat/induction_ltof1.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Wf_nat/induction_gtof1.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Wf_nat/induction_ltof2.con" as theorem.
+
+inline procedural "cic:/Coq/Arith/Wf_nat/induction_gtof2.con" as theorem.
+
+(*#* If a relation [R] is compatible with [lt] i.e. if [x R y => f(x) < f(y)]
+    then [R] is well-founded. *)
+
+(* UNEXPORTED
+cic:/Coq/Arith/Wf_nat/Well_founded_Nat/R.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Arith/Wf_nat/Well_founded_Nat/H_compat.var
+*)
+
+inline procedural "cic:/Coq/Arith/Wf_nat/well_founded_lt_compat.con" as theorem.
+
+(* UNEXPORTED
+End Well_founded_Nat
+*)
+
+inline procedural "cic:/Coq/Arith/Wf_nat/lt_wf.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Wf_nat/lt_wf_rec1.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Wf_nat/lt_wf_rec.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Wf_nat/lt_wf_ind.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Wf_nat/gt_wf_rec.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Wf_nat/gt_wf_ind.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Wf_nat/lt_wf_double_rec.con" as lemma.
+
+inline procedural "cic:/Coq/Arith/Wf_nat/lt_wf_double_ind.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve lt_wf: arith.
+*)
+
+(* UNEXPORTED
+Hint Resolve well_founded_lt_compat: arith.
+*)
+
+(* UNEXPORTED
+Section LT_WF_REL
+*)
+
+(* UNEXPORTED
+cic:/Coq/Arith/Wf_nat/LT_WF_REL/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Arith/Wf_nat/LT_WF_REL/R.var
+*)
+
+(* Relational form of inversion *)
+
+(* UNEXPORTED
+cic:/Coq/Arith/Wf_nat/LT_WF_REL/F.var
+*)
+
+inline procedural "cic:/Coq/Arith/Wf_nat/inv_lt_rel.con" as definition.
+
+(* UNEXPORTED
+cic:/Coq/Arith/Wf_nat/LT_WF_REL/F_compat.var
+*)
+
+inline procedural "cic:/Coq/Arith/Wf_nat/acc_lt_rel.con" as remark.
+
+inline procedural "cic:/Coq/Arith/Wf_nat/well_founded_inv_lt_rel_compat.con" as theorem.
+
+(* UNEXPORTED
+End LT_WF_REL
+*)
+
+inline procedural "cic:/Coq/Arith/Wf_nat/well_founded_inv_rel_inv_lt_rel.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Bool/Bool.mma b/helm/software/matita/contribs/procedural/Coq/Bool/Bool.mma
new file mode 100644 (file)
index 0000000..5d8ff31
--- /dev/null
@@ -0,0 +1,369 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Bool.v,v 1.29 2004/02/12 16:03:01 herbelin Exp $ i*)
+
+(*#* Booleans  *)
+
+(*#* The type [bool] is defined in the prelude as
+    [Inductive bool : Set := true : bool | false : bool] *)
+
+(*#* Interpretation of booleans as Proposition *)
+
+inline procedural "cic:/Coq/Bool/Bool/Is_true.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold Is_true: bool.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/Is_true_eq_left.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/Is_true_eq_right.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate Is_true_eq_right Is_true_eq_left: bool.
+*)
+
+(*#******************)
+
+(*#* Discrimination *)
+
+(*#******************)
+
+inline procedural "cic:/Coq/Bool/Bool/diff_true_false.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve diff_true_false: bool v62.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/diff_false_true.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve diff_false_true: bool v62.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/eq_true_false_abs.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve eq_true_false_abs: bool.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/not_true_is_false.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/not_false_is_true.con" as lemma.
+
+(*#*********************)
+
+(*#* Order on booleans *)
+
+(*#*********************)
+
+inline procedural "cic:/Coq/Bool/Bool/leb.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold leb: bool v62.
+*)
+
+(*#************)
+
+(*#* Equality *)
+
+(*#************)
+
+inline procedural "cic:/Coq/Bool/Bool/eqb.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bool/eqb_refl.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/eqb_eq.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/Is_true_eq_true.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/Is_true_eq_true2.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/eqb_subst.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/eqb_reflx.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/eqb_prop.con" as lemma.
+
+(*#***********************)
+
+(*#* Logical combinators *)
+
+(*#***********************)
+
+inline procedural "cic:/Coq/Bool/Bool/ifb.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bool/andb.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bool/orb.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bool/implb.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bool/xorb.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bool/negb.con" as definition.
+
+(* NOTATION
+Infix "||" := orb (at level 50, left associativity) : bool_scope.
+*)
+
+(* NOTATION
+Infix "&&" := andb (at level 40, left associativity) : bool_scope.
+*)
+
+(* UNEXPORTED
+Open Scope bool_scope.
+*)
+
+(* UNEXPORTED
+Delimit Scope bool_scope with bool.
+*)
+
+(* UNEXPORTED
+Bind Scope bool_scope with bool.
+*)
+
+(*#*************************)
+
+(*#* Lemmas about [negb]   *)
+
+(*#*************************)
+
+inline procedural "cic:/Coq/Bool/Bool/negb_intro.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/negb_elim.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/negb_orb.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/negb_andb.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/negb_sym.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/no_fixpoint_negb.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/eqb_negb1.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/eqb_negb2.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/if_negb.con" as lemma.
+
+(*#***************************)
+
+(*#* A few lemmas about [or] *)
+
+(*#***************************)
+
+inline procedural "cic:/Coq/Bool/Bool/orb_prop.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/orb_prop2.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/orb_true_intro.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve orb_true_intro: bool v62.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/orb_b_true.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve orb_b_true: bool v62.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/orb_true_b.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/orb_true_elim.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bool/orb_false_intro.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve orb_false_intro: bool v62.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/orb_b_false.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve orb_b_false: bool v62.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/orb_false_b.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve orb_false_b: bool v62.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/orb_false_elim.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/orb_neg_b.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve orb_neg_b: bool v62.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/orb_comm.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/orb_assoc.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve orb_comm orb_assoc orb_b_false orb_false_b: bool v62.
+*)
+
+(*#****************************)
+
+(*#* A few lemmas about [and] *)
+
+(*#****************************)
+
+inline procedural "cic:/Coq/Bool/Bool/andb_prop.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve andb_prop: bool v62.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/andb_true_eq.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bool/andb_prop2.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve andb_prop2: bool v62.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/andb_true_intro.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve andb_true_intro: bool v62.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/andb_true_intro2.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve andb_true_intro2: bool v62.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/andb_false_intro1.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/andb_false_intro2.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/andb_b_false.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/andb_false_b.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/andb_b_true.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/andb_true_b.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/andb_false_elim.con" as definition.
+
+(* UNEXPORTED
+Hint Resolve andb_false_elim: bool v62.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/andb_neg_b.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve andb_neg_b: bool v62.
+*)
+
+inline procedural "cic:/Coq/Bool/Bool/andb_comm.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/andb_assoc.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve andb_comm andb_assoc: bool v62.
+*)
+
+(*#******************************)
+
+(*#* Properties of [xorb]       *)
+
+(*#******************************)
+
+inline procedural "cic:/Coq/Bool/Bool/xorb_false.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/false_xorb.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/xorb_true.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/true_xorb.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/xorb_nilpotent.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/xorb_comm.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/xorb_assoc.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/xorb_eq.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/xorb_move_l_r_1.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/xorb_move_l_r_2.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/xorb_move_r_l_1.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/xorb_move_r_l_2.con" as lemma.
+
+(*#******************************)
+
+(*#* De Morgan's law            *)
+
+(*#******************************)
+
+inline procedural "cic:/Coq/Bool/Bool/demorgan1.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/demorgan2.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/demorgan3.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/demorgan4.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/absoption_andb.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/absoption_orb.con" as lemma.
+
+(*#* Misc. equalities between booleans (to be used by Auto) *)
+
+inline procedural "cic:/Coq/Bool/Bool/bool_1.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/bool_2.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/bool_3.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/bool_4.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/bool_5.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bool/bool_6.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve bool_1 bool_2 bool_3 bool_4 bool_5 bool_6.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Bool/BoolEq.mma b/helm/software/matita/contribs/procedural/Coq/Bool/BoolEq.mma
new file mode 100644 (file)
index 0000000..6dede8c
--- /dev/null
@@ -0,0 +1,76 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: BoolEq.v,v 1.4 2003/12/15 19:48:17 barras Exp $ i*)
+
+(* Cuihtlauac Alvarado - octobre 2000 *)
+
+(*#* Properties of a boolean equality   *)
+
+include "Bool/Bool.ma".
+
+(* UNEXPORTED
+Section Bool_eq_dec
+*)
+
+(* UNEXPORTED
+cic:/Coq/Bool/BoolEq/Bool_eq_dec/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Bool/BoolEq/Bool_eq_dec/beq.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Bool/BoolEq/Bool_eq_dec/beq_refl.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Bool/BoolEq/Bool_eq_dec/beq_eq.var
+*)
+
+inline procedural "cic:/Coq/Bool/BoolEq/beq_eq_true.con" as definition.
+
+inline procedural "cic:/Coq/Bool/BoolEq/beq_eq_not_false.con" as definition.
+
+inline procedural "cic:/Coq/Bool/BoolEq/beq_false_not_eq.con" as definition.
+
+inline procedural "cic:/Coq/Bool/BoolEq/exists_beq_eq.con" as definition.
+
+inline procedural "cic:/Coq/Bool/BoolEq/not_eq_false_beq.con" as definition.
+
+inline procedural "cic:/Coq/Bool/BoolEq/eq_dec.con" as definition.
+
+(* UNEXPORTED
+End Bool_eq_dec
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Bool/Bvector.mma b/helm/software/matita/contribs/procedural/Coq/Bool/Bvector.mma
new file mode 100644 (file)
index 0000000..0894e8e
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Bvector.v,v 1.6 2004/02/10 15:38:01 marche Exp $ i*)
+
+(*#* Bit vectors. Contribution by Jean Duprat (ENS Lyon). *)
+
+include "Bool/Bool.ma".
+
+include "Bool/Sumbool.ma".
+
+include "Arith/Arith.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(*  
+On s'inspire de PolyList pour fabriquer les vecteurs de bits.
+La dimension du vecteur est un paramètre trop important pour
+se contenter de la fonction "length".
+La première idée est de faire un record avec la liste et la longueur.
+Malheureusement, cette verification a posteriori amene a faire
+de nombreux lemmes pour gerer les longueurs.
+La seconde idée est de faire un type dépendant dans lequel la
+longueur est un paramètre de construction. Cela complique un
+peu les inductions structurelles, la solution qui a ma préférence
+est alors d'utiliser un terme de preuve comme définition.
+
+(En effet une définition comme :
+Fixpoint Vunaire [n:nat; v:(vector n)]: (vector n) :=
+Cases v of
+       | Vnil => Vnil
+       | (Vcons a p v') => (Vcons (f a) p (Vunaire p v'))
+end.
+provoque ce message d'erreur :
+Coq < Error: Inference of annotation not yet implemented in this case).
+
+
+       Inductive list [A : Set]  : Set :=
+               nil : (list A) | cons : A->(list A)->(list A).
+       head = [A:Set; l:(list A)] Cases l of
+                       | nil => Error
+                       | (cons x _) => (Value x)
+                       end
+               : (A:Set)(list A)->(option A).
+       tail = [A:Set; l:(list A)]Cases l of
+                                       | nil => (nil A)
+                                       | (cons _ m) => m
+                                       end
+               : (A:Set)(list A)->(list A).
+       length = [A:Set] Fix length {length [l:(list A)] : nat :=
+               Cases l of
+                               | nil => O
+                       | (cons _ m) => (S (length m))
+               end}
+               : (A:Set)(list A)->nat.
+       map = [A,B:Set; f:(A->B)] Fix map {map [l:(list A)] : (list B) :=
+               Cases l of
+                       | nil => (nil B)
+                       | (cons a t) => (cons (f a) (map t))
+               end}
+               : (A,B:Set)(A->B)->(list A)->(list B)
+*)
+
+(* UNEXPORTED
+Section VECTORS
+*)
+
+(* 
+Un vecteur est une liste de taille n d'éléments d'un ensemble A.
+Si la taille est non nulle, on peut extraire la première composante et 
+le reste du vecteur, la dernière composante ou rajouter ou enlever 
+une composante (carry) ou repeter la dernière composante en fin de vecteur.
+On peut aussi tronquer le vecteur de ses p dernières composantes ou
+au contraire l'étendre (concaténer) d'un vecteur de longueur p.
+Une fonction unaire sur A génère une fonction des vecteurs de taille n
+dans les vecteurs de taille n en appliquant f terme Ã  terme.
+Une fonction binaire sur A génère une fonction des couple de vecteurs 
+de taille n dans les vecteurs de taille n en appliquant f terme Ã  terme.
+*)
+
+(* UNEXPORTED
+cic:/Coq/Bool/Bvector/VECTORS/A.var
+*)
+
+inline procedural "cic:/Coq/Bool/Bvector/vector.ind".
+
+inline procedural "cic:/Coq/Bool/Bvector/Vhead.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/Vtail.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/Vlast.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/Vconst.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/Vshiftout.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bvector/Vshiftin.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bvector/Vshiftrepeat.con" as lemma.
+
+(*
+Lemma S_minus_S : (n,p:nat) (gt n (S p)) -> (S (minus n (S p)))=(minus n p).
+Proof.
+  Intros.
+Save.
+*)
+
+inline procedural "cic:/Coq/Bool/Bvector/Vtrunc.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Bvector/Vextend.con" as lemma.
+
+(* UNEXPORTED
+cic:/Coq/Bool/Bvector/VECTORS/f.var
+*)
+
+inline procedural "cic:/Coq/Bool/Bvector/Vunary.con" as lemma.
+
+(* UNEXPORTED
+cic:/Coq/Bool/Bvector/VECTORS/g.var
+*)
+
+inline procedural "cic:/Coq/Bool/Bvector/Vbinary.con" as lemma.
+
+(* UNEXPORTED
+End VECTORS
+*)
+
+(* suppressed: incompatible with Coq-Art book 
+Implicit Arguments Vnil [A].
+Implicit Arguments Vcons [A n].
+*)
+
+(* UNEXPORTED
+Section BOOLEAN_VECTORS
+*)
+
+(* 
+Un vecteur de bits est un vecteur sur l'ensemble des booléens de longueur fixe. 
+ATTENTION : le stockage s'effectue poids FAIBLE en tête.
+On en extrait le bit  de poids faible (head) et la fin du vecteur (tail).
+On calcule la négation d'un vecteur, le et, le ou et le xor bit Ã  bit de 2 vecteurs.
+On calcule les décalages d'une position vers la gauche (vers les poids forts, on
+utilise donc Vshiftout, vers la droite (vers les poids faibles, on utilise Vshiftin) en 
+insérant un bit 'carry' (logique) ou en répétant le bit de poids fort (arithmétique).
+ATTENTION : Tous les décalages prennent la taille moins un comme paramètre
+(ils ne travaillent que sur des vecteurs au moins de longueur un).
+*)
+
+inline procedural "cic:/Coq/Bool/Bvector/Bvector.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/Bnil.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/Bcons.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/Bvect_true.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/Bvect_false.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/Blow.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/Bhigh.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/Bsign.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/Bneg.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/BVand.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/BVor.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/BVxor.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/BshiftL.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/BshiftRl.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/BshiftRa.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/BshiftL_iter.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/BshiftRl_iter.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Bvector/BshiftRa_iter.con" as definition.
+
+(* UNEXPORTED
+End BOOLEAN_VECTORS
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Bool/DecBool.mma b/helm/software/matita/contribs/procedural/Coq/Bool/DecBool.mma
new file mode 100644 (file)
index 0000000..9dda748
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: DecBool.v,v 1.6 2004/03/28 14:41:45 herbelin Exp $ i*)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+inline procedural "cic:/Coq/Bool/DecBool/ifdec.con" as definition.
+
+inline procedural "cic:/Coq/Bool/DecBool/ifdec_left.con" as theorem.
+
+inline procedural "cic:/Coq/Bool/DecBool/ifdec_right.con" as theorem.
+
+(* UNEXPORTED
+Unset Implicit Arguments.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Bool/IfProp.mma b/helm/software/matita/contribs/procedural/Coq/Bool/IfProp.mma
new file mode 100644 (file)
index 0000000..476761c
--- /dev/null
@@ -0,0 +1,54 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: IfProp.v,v 1.7 2003/11/29 17:28:29 herbelin Exp $ i*)
+
+include "Bool/Bool.ma".
+
+inline procedural "cic:/Coq/Bool/IfProp/IfProp.ind".
+
+(* UNEXPORTED
+Hint Resolve Iftrue Iffalse: bool v62.
+*)
+
+inline procedural "cic:/Coq/Bool/IfProp/Iftrue_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/IfProp/Iffalse_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/IfProp/IfProp_true.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/IfProp/IfProp_false.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/IfProp/IfProp_or.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/IfProp/IfProp_sum.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Bool/Sumbool.mma b/helm/software/matita/contribs/procedural/Coq/Bool/Sumbool.mma
new file mode 100644 (file)
index 0000000..c1ca457
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Sumbool.v,v 1.12 2003/11/29 17:28:30 herbelin Exp $ i*)
+
+(*#* Here are collected some results about the type sumbool (see INIT/Specif.v)
+   [sumbool A B], which is written [{A}+{B}], is the informative
+   disjunction "A or B", where A and B are logical propositions.
+   Its extraction is isomorphic to the type of booleans. *)
+
+(*#* A boolean is either [true] or [false], and this is decidable *)
+
+inline procedural "cic:/Coq/Bool/Sumbool/sumbool_of_bool.con" as definition.
+
+(* UNEXPORTED
+Hint Resolve sumbool_of_bool: bool.
+*)
+
+inline procedural "cic:/Coq/Bool/Sumbool/bool_eq_rec.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Sumbool/bool_eq_ind.con" as definition.
+
+(*i pourquoi ce machin-la est dans BOOL et pas dans LOGIC ?  Papageno i*)
+
+(*#* Logic connectives on type [sumbool] *)
+
+(* UNEXPORTED
+Section connectives
+*)
+
+(* UNEXPORTED
+cic:/Coq/Bool/Sumbool/connectives/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Bool/Sumbool/connectives/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Bool/Sumbool/connectives/C.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Bool/Sumbool/connectives/D.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Bool/Sumbool/connectives/H1.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Bool/Sumbool/connectives/H2.var
+*)
+
+inline procedural "cic:/Coq/Bool/Sumbool/sumbool_and.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Sumbool/sumbool_or.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Sumbool/sumbool_not.con" as definition.
+
+(* UNEXPORTED
+End connectives
+*)
+
+(* UNEXPORTED
+Hint Resolve sumbool_and sumbool_or sumbool_not: core.
+*)
+
+(*#* Any decidability function in type [sumbool] can be turned into a function
+    returning a boolean with the corresponding specification: *)
+
+inline procedural "cic:/Coq/Bool/Sumbool/bool_of_sumbool.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments bool_of_sumbool.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Bool/Zerob.mma b/helm/software/matita/contribs/procedural/Coq/Bool/Zerob.mma
new file mode 100644 (file)
index 0000000..2a18386
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Zerob.v,v 1.8 2003/11/29 17:28:30 herbelin Exp $ i*)
+
+include "Arith/Arith.ma".
+
+include "Bool/Bool.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+inline procedural "cic:/Coq/Bool/Zerob/zerob.con" as definition.
+
+inline procedural "cic:/Coq/Bool/Zerob/zerob_true_intro.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zerob_true_intro: bool.
+*)
+
+inline procedural "cic:/Coq/Bool/Zerob/zerob_true_elim.con" as lemma.
+
+inline procedural "cic:/Coq/Bool/Zerob/zerob_false_intro.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve zerob_false_intro: bool.
+*)
+
+inline procedural "cic:/Coq/Bool/Zerob/zerob_false_elim.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Coq.conf.xml b/helm/software/matita/contribs/procedural/Coq/Coq.conf.xml
new file mode 100644 (file)
index 0000000..8ef2332
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<helm_registry>
+  <section name="package">      
+    <key name="input_name">Coq</key>
+    <key name="output_name">Coq</key>
+    <key name="input_base_uri">cic:/Coq</key>
+    <key name="output_base_uri">cic:/matita/procedural/Coq</key>
+    <key name="input_path">/projects/helm/exportation/V8.0_mowgli_bugfix_branch/theories</key>
+    <key name="output_path">contribs/procedural/Coq</key>
+    <key name="input_type">.v</key>
+    <key name="output_type">procedural</key>    
+<!--    
+    <key name="coercion">Z_of_nat cic:/Coq/ZArith/BinInt/Z_of_nat.con</key>
+    <key name="coercion">Zpos cic:/Coq/ZArith/BinInt/Z.ind#xpointer(1/1/2)</key>
+    <key name="coercion">nat_of_P cic:/Coq/NArith/BinPos/nat_of_P.con</key>
+-->  
+  </section>
+</helm_registry>
diff --git a/helm/software/matita/contribs/procedural/Coq/Coq.ma b/helm/software/matita/contribs/procedural/Coq/Coq.ma
new file mode 100644 (file)
index 0000000..8b1c5bd
--- /dev/null
@@ -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 *********************)
+
+include "preamble.ma".
+
+(* From Arith/Compare *****************************************************)
+
+(* NOTATION
+Notation not_eq_sym := sym_not_eq.
+*)
+
+(* From Bool/Bool *********************************************************)
+
+(* NOTATION
+Infix "||" := orb (at level 50, left associativity) : bool_scope.
+*)
+
+(* NOTATION
+Infix "&&" := andb (at level 40, left associativity) : bool_scope.
+*)
+
+(* From Init/Datatypes ****************************************************)
+
+(* NOTATION
+Add Printing If bool.
+*)
+
+(* NOTATION
+Notation "x + y" := (sum x y) : type_scope.
+*)
+
+(* NOTATION
+Add Printing Let prod.
+*)
+
+(* NOTATION
+Notation "x * y" := (prod x y) : type_scope.
+*)
+
+(* NOTATION
+Notation "( x , y , .. , z )" := (pair .. (pair x y) .. z) : core_scope.
+*)
+
+(* From Init/Logic ********************************************************)
+
+(* NOTATION
+Notation "~ x" := (not x) : type_scope.
+*)
+
+(* NOTATION
+Notation "A <-> B" := (iff A B) : type_scope.
+*)
+
+(* NOTATION
+Notation "'IF' c1 'then' c2 'else' c3" := (IF_then_else c1 c2 c3)
+  (at level 200) : type_scope.
+*)
+
+(* NOTATION
+Notation "'exists' x , p" := (ex (fun x => p))
+  (at level 200, x ident) : type_scope.
+*)
+
+(* NOTATION
+Notation "'exists' x : t , p" := (ex (fun x:t => p))
+  (at level 200, x ident, format "'exists'  '/  ' x  :  t ,  '/  ' p")
+  : type_scope.
+*)
+
+(* NOTATION
+Notation "'exists2' x , p & q" := (ex2 (fun x => p) (fun x => q))
+  (at level 200, x ident, p at level 200) : type_scope.
+*)
+
+(* NOTATION
+Notation "'exists2' x : t , p & q" := (ex2 (fun x:t => p) (fun x:t => q))
+  (at level 200, x ident, t at level 200, p at level 200,
+   format "'exists2'  '/  ' x  :  t ,  '/  ' '[' p  &  '/' q ']'")
+  : type_scope.
+*)
+
+(* NOTATION
+Notation "x = y" := (x = y :>_) : type_scope.
+*)
+
+(* NOTATION
+Notation "x <> y  :> T" := (~ x = y :>T) : type_scope.
+*)
+
+(* NOTATION
+Notation "x <> y" := (x <> y :>_) : type_scope.
+*)
+
+(* From Init/Notations ****************************************************)
+
+(* NOTATION
+Reserved Notation "x <-> y" (at level 95, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x /\ y" (at level 80, right associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x \/ y" (at level 85, right associativity).
+*)
+
+(* NOTATION
+Reserved Notation "~ x" (at level 75, right associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x = y  :> T"
+(at level 70, y at next level, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x = y" (at level 70, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x = y = z"
+(at level 70, no associativity, y at next level).
+*)
+
+(* NOTATION
+Reserved Notation "x <> y  :> T"
+(at level 70, y at next level, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x <> y" (at level 70, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x <= y" (at level 70, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x < y" (at level 70, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x >= y" (at level 70, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x > y" (at level 70, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x <= y <= z" (at level 70, y at next level).
+*)
+
+(* NOTATION
+Reserved Notation "x <= y < z" (at level 70, y at next level).
+*)
+
+(* NOTATION
+Reserved Notation "x < y < z" (at level 70, y at next level).
+*)
+
+(* NOTATION
+Reserved Notation "x < y <= z" (at level 70, y at next level).
+*)
+
+(* NOTATION
+Reserved Notation "x + y" (at level 50, left associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x - y" (at level 50, left associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x * y" (at level 40, left associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x / y" (at level 40, left associativity).
+*)
+
+(* NOTATION
+Reserved Notation "- x" (at level 35, right associativity).
+*)
+
+(* NOTATION
+Reserved Notation "/ x" (at level 35, right associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x ^ y" (at level 30, right associativity).
+*)
+
+(* NOTATION
+Reserved Notation "( x , y , .. , z )" (at level 0).
+*)
+
+(* NOTATION
+Reserved Notation "{ x }" (at level 0, x at level 99).
+*)
+
+(* NOTATION
+Reserved Notation "{ A } + { B }" (at level 50, left associativity).
+*)
+
+(* NOTATION
+Reserved Notation "A + { B }" (at level 50, left associativity).
+*)
+
+(* NOTATION
+Reserved Notation "{ x : A  |  P }" (at level 0, x at level 99).
+*)
+
+(* NOTATION
+Reserved Notation "{ x : A  |  P  &  Q }" (at level 0, x at level 99).
+*)
+
+(* NOTATION
+Reserved Notation "{ x : A  &  P }" (at level 0, x at level 99).
+*)
+
+(* NOTATION
+Reserved Notation "{ x : A  &  P  &  Q }" (at level 0, x at level 99).
+*)
+
+(* From Init/Peano ********************************************************)
+
+(* NOTATION
+Infix "+" := plus : nat_scope.
+*)
+
+(* NOTATION
+Infix "*" := mult : nat_scope.
+*)
+
+(* NOTATION
+Infix "-" := minus : nat_scope.
+*)
+
+(* NOTATION
+Infix "<=" := le : nat_scope.
+*)
+
+(* NOTATION
+Infix "<" := lt : nat_scope.
+*)
+
+(* NOTATION
+Infix ">=" := ge : nat_scope.
+*)
+
+(* NOTATION
+Infix ">" := gt : nat_scope.
+*)
+
+(* NOTATION
+Notation "x <= y <= z" := (x <= y /\ y <= z) : nat_scope.
+*)
+
+(* NOTATION
+Notation "x <= y < z" := (x <= y /\ y < z) : nat_scope.
+*)
+
+(* NOTATION
+Notation "x < y < z" := (x < y /\ y < z) : nat_scope.
+*)
+
+(* NOTATION
+Notation "x < y <= z" := (x < y /\ y <= z) : nat_scope.
+*)
+
+(* From Init/Specif *******************************************************)
+
+(* NOTATION
+Notation "{ x : A  |  P }" := (sig (fun x:A => P)) : type_scope.
+*)
+
+(* NOTATION
+Notation "{ x : A  |  P  &  Q }" := (sig2 (fun x:A => P) (fun x:A => Q)) :
+  type_scope.
+*)
+
+(* NOTATION
+Notation "{ x : A  &  P }" := (sigS (fun x:A => P)) : type_scope.
+*)
+
+(* NOTATION
+Notation "{ x : A  &  P  &  Q }" := (sigS2 (fun x:A => P) (fun x:A => Q)) :
+  type_scope.
+*)
+
+(* NOTATION
+Add Printing Let sig.
+*)
+
+(* NOTATION
+Add Printing Let sig2.
+*)
+
+(* NOTATION
+Add Printing Let sigS.
+*)
+
+(* NOTATION
+Add Printing Let sigS2.
+*)
+
+(* NOTATION
+Add Printing If sumbool.
+*)
+
+(* NOTATION
+Add Printing If sumor.
+*)
+
+(* From Lists/List ********************************************************)
+
+(* NOTATION
+Infix "::" := cons (at level 60, right associativity) : list_scope.
+*)
+
+(* NOTATION
+Infix "++" := app (right associativity, at level 60) : list_scope.
+*)
+
+(* NOTATION
+Infix "::" := cons (at level 60, right associativity) : list_scope.
+*)
+
+(* NOTATION
+Infix "++" := app (right associativity, at level 60) : list_scope.
+*)
+
+(* From Num/Leibniz/EqAxioms **********************************************)
+
+(* NOTATION
+Grammar constr constr1 :=
+eq_impl [ constr0($c) "=" constr0($c2) ] -> [ (eqN $c $c2) ].
+*)
+
+(* NOTATION
+Syntax constr
+  level 1:
+    equal [ (eqN $t1 $t2) ] -> [ [<hov 0> $t1:E [0 1]  "=" $t2:E ] ].
+*)
+
+(* From Num/Leibniz/NSyntax ***********************************************)
+
+(* NOTATION
+Infix 6 "<" lt.
+*)
+
+(* NOTATION
+Infix 6 "<=" le.
+*)
+
+(* NOTATION
+Infix 6 ">" gt.
+*)
+
+(* NOTATION
+Infix 6 ">=" ge.
+*)
+
+(* NOTATION
+Grammar constr lassoc_constr4 :=
+  squash_sum
+  [ lassoc_constr4($c1) "+" lassoc_constr4($c2) ] ->
+      case [$c2] of
+        (SQUASH $T2) ->
+            case [$c1] of
+              (SQUASH $T1) -> [ (sumbool $T1 $T2) ] (* {T1}+{T2} *)
+            | $_           -> [ (sumor $c1 $T2) ]   (* c1+{T2} *)
+            esac
+      | $_           -> [ (add $c1 $c2) ]           (* c1+c2 *)
+      esac.
+*)
+
+(* NOTATION
+Syntax constr
+  level 1:
+    equal [ (eqN $t1 $t2) ] -> [ [<hov 0> $t1:E [0 1]  "=" $t2:E ] ]
+ ;
+
+  level 4:
+    sum [ (add $t1 $t2) ] -> [ [<hov 0> $t1:E [0 1] "+" $t2:L ] ]
+.
+*)
+
+(* From Num/Nat/NSyntax ***************************************************)
+
+(* NOTATION
+Infix 6 "<" lt.
+*)
+
+(* NOTATION
+Infix 6 "<=" le.
+*)
+
+(* NOTATION
+Infix 6 ">" gt.
+*)
+
+(* NOTATION
+Infix 6 ">=" ge.
+*)
+
+(* NOTATION
+Grammar constr lassoc_constr4 :=
+  squash_sum
+  [ lassoc_constr4($c1) "+" lassoc_constr4($c2) ] ->
+      case [$c2] of
+        (SQUASH $T2) ->
+            case [$c1] of
+              (SQUASH $T1) -> [ (sumbool $T1 $T2) ] (* {T1}+{T2} *)
+            | $_           -> [ (sumor $c1 $T2) ]   (* c1+{T2} *)
+            esac
+      | $_           -> [ (add $c1 $c2) ]           (* c1+c2 *)
+      esac.
+*)
+
+(* NOTATION
+Syntax constr
+  level 4:
+    sum [ (add $t1 $t2) ] -> [ [<hov 0> $t1:E [0 1] "+" $t2:L ] ]
+.
+*)
+
+(* From Num/EqParams ******************************************************)
+
+(* NOTATION
+Grammar constr constr1 :=
+eq_impl [ constr0($c) "=" constr0($c2) ] -> [ (eqN $c $c2) ].
+*)
+
+(* NOTATION
+Syntax constr
+  level 1:
+    equal [ (eqN $t1 $t2) ] -> [ [<hov 0> $t1:E [0 1]  "=" $t2:E ] ]
+.
+*)
+
+(* From Num/NSyntax *******************************************************)
+
+(* NOTATION
+Infix 6 "<" lt V8only 70.
+*)
+
+(* NOTATION
+Infix 6 "<=" le V8only 70.
+*)
+
+(* NOTATION
+Infix 6 ">" gt V8only 70.
+*)
+
+(* NOTATION
+Infix 6 ">=" ge V8only 70.
+*)
+
+(* NOTATION
+Grammar constr lassoc_constr4 :=
+  squash_sum
+  [ lassoc_constr4($c1) "+" lassoc_constr4($c2) ] ->
+      case [$c2] of
+        (SQUASH $T2) ->
+            case [$c1] of
+              (SQUASH $T1) -> [ (sumbool $T1 $T2) ] (* {T1}+{T2} *)
+            | $_           -> [ (sumor $c1 $T2) ]   (* c1+{T2} *)
+            esac
+      | $_           -> [ (add $c1 $c2) ]           (* c1+c2 *)
+      esac.
+*)
+
+(* NOTATION
+Syntax constr
+  level 4:
+    sum [ (add $t1 $t2) ] -> [ [<hov 0> $t1:E [0 1] "+" $t2:L ] ]
+.
+*)
+
+(* From Num/NeqDef ********************************************************)
+
+(* NOTATION
+Infix 6 "<>" neq V8only 70.
+*)
+
+(* From Num/NeqParams *****************************************************)
+
+(* NOTATION
+Infix 6 "<>" neq V8only 70.
+*)
+
+(* From Reals/RIneq *******************************************************)
+
+(* NOTATION
+Add Field R Rplus Rmult 1 0 Ropp (fun x y:R => false) Rinv RTheory Rinv_l
+ with minus := Rminus div := Rdiv.
+*)
+
+(* From Reals/Ranalysis1 **************************************************)
+
+(* NOTATION
+Infix "+" := plus_fct : Rfun_scope.
+*)
+
+(* NOTATION
+Notation "- x" := (opp_fct x) : Rfun_scope.
+*)
+
+(* NOTATION
+Infix "*" := mult_fct : Rfun_scope.
+*)
+
+(* NOTATION
+Infix "-" := minus_fct : Rfun_scope.
+*)
+
+(* NOTATION
+Infix "/" := div_fct : Rfun_scope.
+*)
+
+(* NOTATION
+Notation Local "f1 'o' f2" := (comp f1 f2)
+  (at level 20, right associativity) : Rfun_scope.
+*)
+
+(* NOTATION
+Notation "/ x" := (inv_fct x) : Rfun_scope.
+*)
+
+(* From Reals/Rdefinitions ************************************************)
+
+(* NOTATION
+Infix "+" := Rplus : R_scope.
+*)
+
+(* NOTATION
+Infix "*" := Rmult : R_scope.
+*)
+
+(* NOTATION
+Notation "- x" := (Ropp x) : R_scope.
+*)
+
+(* NOTATION
+Notation "/ x" := (Rinv x) : R_scope.
+*)
+
+(* NOTATION
+Infix "<" := Rlt : R_scope.
+*)
+
+(* NOTATION
+Infix "-" := Rminus : R_scope.
+*)
+
+(* NOTATION
+Infix "/" := Rdiv : R_scope.
+*)
+
+(* NOTATION
+Infix "<=" := Rle : R_scope.
+*)
+
+(* NOTATION
+Infix ">=" := Rge : R_scope.
+*)
+
+(* NOTATION
+Infix ">" := Rgt : R_scope.
+*)
+
+(* NOTATION
+Notation "x <= y <= z" := ((x <= y)%R /\ (y <= z)%R) : R_scope.
+*)
+
+(* NOTATION
+Notation "x <= y < z" := ((x <= y)%R /\ (y < z)%R) : R_scope.
+*)
+
+(* NOTATION
+Notation "x < y < z" := ((x < y)%R /\ (y < z)%R) : R_scope.
+*)
+
+(* NOTATION
+Notation "x < y <= z" := ((x < y)%R /\ (y <= z)%R) : R_scope.
+*)
+
+(* From Reals/Rfunctions **************************************************)
+
+(* NOTATION
+Infix "^" := pow : R_scope.
+*)
+
+(* NOTATION
+Infix Local "^Z" := powerRZ (at level 30, right associativity) : R_scope.
+*)
+
+(* From Reals/Rpower ******************************************************)
+
+(* NOTATION
+Infix Local "^R" := Rpower (at level 30, right associativity) : R_scope.
+*)
+
+(* From Reals/Rtopology ***************************************************)
+
+(* NOTATION
+Infix "=_D" := eq_Dom (at level 70, no associativity).
+*)
+
+(* From Setoids/Setoid ****************************************************)
+
+(* NOTATION
+Add Setoid Prop iff Prop_S.
+*)
+
+(* From Wellfounded/Disjoint_Union ****************************************)
+
+(* NOTATION
+Notation Le_AsB := (le_AsB A B leA leB).
+*)
+
+(* From Wellfounded/Lexicographic_Product *********************************)
+
+(* NOTATION
+Notation LexProd := (lexprod A B leA leB).
+*)
+
+(* NOTATION
+Notation Symprod := (symprod A B leA leB).
+*)
+
+(* NOTATION
+Notation SwapProd := (swapprod A R).
+*)
+
+(* From Wellfounded/Union *************************************************)
+
+(* NOTATION
+Notation Union := (union A R1 R2).
+*)
+
+(* From Wellfounded/Lexicographic_Exponentiation **************************)
+
+(* NOTATION
+Notation Power := (Pow A leA).
+*)
+
+(* NOTATION
+Notation Lex_Exp := (lex_exp A leA).
+*)
+
+(* NOTATION
+Notation ltl := (Ltl A leA).
+*)
+
+(* NOTATION
+Notation Descl := (Desc A leA).
+*)
+
+(* NOTATION
+Notation List := (list A).
+*)
+
+(* NOTATION
+Notation Nil := (nil (A:=A)).
+*)
+
+(* NOTATION
+Notation Cons := (cons (A:=A)).
+*)
+
+(* NOTATION
+Notation "<< x , y >>" := (exist Descl x y) (at level 0, x, y at level 100).
+*)
+
+(* From Wellfounded/Transitive_Closure ************************************)
+
+(* NOTATION
+Notation trans_clos := (clos_trans A R).
+*)
+
+(* From ZArith/Zdiv *******************************************************)
+
+(* NOTATION
+Infix "/" := Zdiv : Z_scope.
+*)
+
+(* NOTATION
+Infix "mod" := Zmod (at level 40, no associativity) : Z_scope.
+*)
+
+(* From ZArith/Zpower *****************************************************)
+
+(* NOTATION
+Infix "^" := Zpower : Z_scope.
+*)
+
+(* NOTATION
+Infix "^" := Zpower : Z_scope.
+*)
+
+(* From ZArith/BinInt *****************************************************)
+
+(* NOTATION
+Infix "+" := Zplus : Z_scope.
+*)
+
+(* NOTATION
+Notation "- x" := (Zopp x) : Z_scope.
+*)
+
+(* NOTATION
+Infix "-" := Zminus : Z_scope.
+*)
+
+(* NOTATION
+Infix "*" := Zmult : Z_scope.
+*)
+
+(* NOTATION
+Infix "?=" := Zcompare (at level 70, no associativity) : Z_scope.
+*)
+
+(* NOTATION
+Infix "<=" := Zle : Z_scope.
+*)
+
+(* NOTATION
+Infix "<" := Zlt : Z_scope.
+*)
+
+(* NOTATION
+Infix ">=" := Zge : Z_scope.
+*)
+
+(* NOTATION
+Infix ">" := Zgt : Z_scope.
+*)
+
+(* NOTATION
+Notation "x <= y <= z" := (x <= y /\ y <= z) : Z_scope.
+*)
+
+(* NOTATION
+Notation "x <= y < z" := (x <= y /\ y < z) : Z_scope.
+*)
+
+(* NOTATION
+Notation "x < y < z" := (x < y /\ y < z) : Z_scope.
+*)
+
+(* NOTATION
+Notation "x < y <= z" := (x < y /\ y <= z) : Z_scope.
+*)
+
+(* From ZArith/Znumtheory *************************************************)
+
+(* NOTATION
+Notation "( a | b )" := (Zdivide a b) (at level 0) : Z_scope.
+*)
+
+(* From NArith/BinNat *****************************************************)
+
+(* NOTATION
+Infix "+" := Nplus : N_scope.
+*)
+
+(* NOTATION
+Infix "*" := Nmult : N_scope.
+*)
+
+(* NOTATION
+Infix "?=" := Ncompare (at level 70, no associativity) : N_scope.
+*)
+
+(* From NArith/BinPos *****************************************************)
+
+(* NOTATION
+Infix "+" := Pplus : positive_scope.
+*)
+
+(* NOTATION
+Infix "-" := Pminus : positive_scope.
+*)
+
+(* NOTATION
+Infix "*" := Pmult : positive_scope.
+*)
+
+(* NOTATION
+Infix "/" := Pdiv2 : positive_scope.
+*)
+
+(* NOTATION
+Infix "?=" := Pcompare (at level 70, no associativity) : positive_scope.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Init/Datatypes.mma b/helm/software/matita/contribs/procedural/Coq/Init/Datatypes.mma
new file mode 100644 (file)
index 0000000..8206df4
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Datatypes.v,v 1.26 2004/03/17 10:54:49 herbelin Exp $ i*)
+
+include "Init/Notations.ma".
+
+include "Init/Logic.ma".
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(*#* [unit] is a singleton datatype with sole inhabitant [tt] *)
+
+inline procedural "cic:/Coq/Init/Datatypes/unit.ind".
+
+(*#* [bool] is the datatype of the booleans values [true] and [false] *)
+
+inline procedural "cic:/Coq/Init/Datatypes/bool.ind".
+
+(* NOTATION
+Add Printing If bool.
+*)
+
+(*#* [nat] is the datatype of natural numbers built from [O] and successor [S];
+    note that zero is the letter O, not the numeral 0 *)
+
+inline procedural "cic:/Coq/Init/Datatypes/nat.ind".
+
+(* UNEXPORTED
+Delimit Scope nat_scope with nat.
+*)
+
+(* UNEXPORTED
+Bind Scope nat_scope with nat.
+*)
+
+(* UNEXPORTED
+Arguments Scope S [nat_scope].
+*)
+
+(*#* [Empty_set] has no inhabitant *)
+
+inline procedural "cic:/Coq/Init/Datatypes/Empty_set.ind".
+
+(*#* [identity A a] is the family of datatypes on [A] whose sole non-empty
+    member is the singleton datatype [identity A a a] whose
+    sole inhabitant is denoted [refl_identity A a] *)
+
+inline procedural "cic:/Coq/Init/Datatypes/identity.ind".
+
+(* UNEXPORTED
+Hint Resolve refl_identity: core v62.
+*)
+
+(* UNEXPORTED
+Implicit Arguments identity_ind [A].
+*)
+
+(* UNEXPORTED
+Implicit Arguments identity_rec [A].
+*)
+
+(* UNEXPORTED
+Implicit Arguments identity_rect [A].
+*)
+
+(*#* [option A] is the extension of A with a dummy element None *)
+
+inline procedural "cic:/Coq/Init/Datatypes/option.ind".
+
+(* UNEXPORTED
+Implicit Arguments None [A].
+*)
+
+(*#* [sum A B], equivalently [A + B], is the disjoint sum of [A] and [B] *)
+
+(* Syntax defined in Specif.v *)
+
+inline procedural "cic:/Coq/Init/Datatypes/sum.ind".
+
+(* NOTATION
+Notation "x + y" := (sum x y) : type_scope.
+*)
+
+(*#* [prod A B], written [A * B], is the product of [A] and [B];
+    the pair [pair A B a b] of [a] and [b] is abbreviated [(a,b)] *)
+
+inline procedural "cic:/Coq/Init/Datatypes/prod.ind".
+
+(* NOTATION
+Add Printing Let prod.
+*)
+
+(* NOTATION
+Notation "x * y" := (prod x y) : type_scope.
+*)
+
+(* NOTATION
+Notation "( x , y , .. , z )" := (pair .. (pair x y) .. z) : core_scope.
+*)
+
+(* UNEXPORTED
+Section projections
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Datatypes/projections/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Datatypes/projections/B.var
+*)
+
+inline procedural "cic:/Coq/Init/Datatypes/fst.con" as definition.
+
+inline procedural "cic:/Coq/Init/Datatypes/snd.con" as definition.
+
+(* UNEXPORTED
+End projections
+*)
+
+(* UNEXPORTED
+Hint Resolve pair inl inr: core v62.
+*)
+
+inline procedural "cic:/Coq/Init/Datatypes/surjective_pairing.con" as lemma.
+
+inline procedural "cic:/Coq/Init/Datatypes/injective_projections.con" as lemma.
+
+(*#* Comparison *)
+
+inline procedural "cic:/Coq/Init/Datatypes/comparison.ind".
+
+inline procedural "cic:/Coq/Init/Datatypes/CompOpp.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Init/Logic.mma b/helm/software/matita/contribs/procedural/Coq/Init/Logic.mma
new file mode 100644 (file)
index 0000000..0b2c7e9
--- /dev/null
@@ -0,0 +1,331 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Logic.v,v 1.29 2004/03/29 09:40:49 herbelin Exp $ i*)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+include "Init/Notations.ma".
+
+(*#* * Propositional connectives *)
+
+(*#* [True] is the always true proposition *)
+
+inline procedural "cic:/Coq/Init/Logic/True.ind".
+
+(*#* [False] is the always false proposition *)
+
+inline procedural "cic:/Coq/Init/Logic/False.ind".
+
+(*#* [not A], written [~A], is the negation of [A] *)
+
+inline procedural "cic:/Coq/Init/Logic/not.con" as definition.
+
+(* NOTATION
+Notation "~ x" := (not x) : type_scope.
+*)
+
+(* UNEXPORTED
+Hint Unfold not: core.
+*)
+
+inline procedural "cic:/Coq/Init/Logic/and.ind".
+
+(* UNEXPORTED
+Section Conjunction
+*)
+
+(*#* [and A B], written [A /\ B], is the conjunction of [A] and [B]
+
+      [conj p q] is a proof of [A /\ B] as soon as 
+      [p] is a proof of [A] and [q] a proof of [B]
+
+      [proj1] and [proj2] are first and second projections of a conjunction *)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic/Conjunction/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic/Conjunction/B.var
+*)
+
+inline procedural "cic:/Coq/Init/Logic/proj1.con" as theorem.
+
+inline procedural "cic:/Coq/Init/Logic/proj2.con" as theorem.
+
+(* UNEXPORTED
+End Conjunction
+*)
+
+(*#* [or A B], written [A \/ B], is the disjunction of [A] and [B] *)
+
+inline procedural "cic:/Coq/Init/Logic/or.ind".
+
+(*#* [iff A B], written [A <-> B], expresses the equivalence of [A] and [B] *)
+
+inline procedural "cic:/Coq/Init/Logic/iff.con" as definition.
+
+(* NOTATION
+Notation "A <-> B" := (iff A B) : type_scope.
+*)
+
+(* UNEXPORTED
+Section Equivalence
+*)
+
+inline procedural "cic:/Coq/Init/Logic/iff_refl.con" as theorem.
+
+inline procedural "cic:/Coq/Init/Logic/iff_trans.con" as theorem.
+
+inline procedural "cic:/Coq/Init/Logic/iff_sym.con" as theorem.
+
+(* UNEXPORTED
+End Equivalence
+*)
+
+(*#* [(IF_then_else P Q R)], written [IF P then Q else R] denotes
+    either [P] and [Q], or [~P] and [Q] *)
+
+inline procedural "cic:/Coq/Init/Logic/IF_then_else.con" as definition.
+
+(* NOTATION
+Notation "'IF' c1 'then' c2 'else' c3" := (IF_then_else c1 c2 c3)
+  (at level 200) : type_scope.
+*)
+
+(*#* * First-order quantifiers
+  - [ex A P], or simply [exists x, P x], expresses the existence of an 
+      [x] of type [A] which satisfies the predicate [P] ([A] is of type 
+      [Set]). This is existential quantification.
+  - [ex2 A P Q], or simply [exists2 x, P x & Q x], expresses the
+      existence of an [x] of type [A] which satisfies both the predicates
+      [P] and [Q].
+  - Universal quantification (especially first-order one) is normally 
+    written [forall x:A, P x]. For duality with existential quantification, 
+    the construction [all P] is provided too.
+*)
+
+inline procedural "cic:/Coq/Init/Logic/ex.ind".
+
+inline procedural "cic:/Coq/Init/Logic/ex2.ind".
+
+inline procedural "cic:/Coq/Init/Logic/all.con" as definition.
+
+(* Rule order is important to give printing priority to fully typed exists *)
+
+(* NOTATION
+Notation "'exists' x , p" := (ex (fun x => p))
+  (at level 200, x ident) : type_scope.
+*)
+
+(* NOTATION
+Notation "'exists' x : t , p" := (ex (fun x:t => p))
+  (at level 200, x ident, format "'exists'  '/  ' x  :  t ,  '/  ' p")
+  : type_scope.
+*)
+
+(* NOTATION
+Notation "'exists2' x , p & q" := (ex2 (fun x => p) (fun x => q))
+  (at level 200, x ident, p at level 200) : type_scope.
+*)
+
+(* NOTATION
+Notation "'exists2' x : t , p & q" := (ex2 (fun x:t => p) (fun x:t => q))
+  (at level 200, x ident, t at level 200, p at level 200,
+   format "'exists2'  '/  ' x  :  t ,  '/  ' '[' p  &  '/' q ']'")
+  : type_scope.
+*)
+
+(*#* Derived rules for universal quantification *)
+
+(* UNEXPORTED
+Section universal_quantification
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic/universal_quantification/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic/universal_quantification/P.var
+*)
+
+inline procedural "cic:/Coq/Init/Logic/inst.con" as theorem.
+
+inline procedural "cic:/Coq/Init/Logic/gen.con" as theorem.
+
+(* UNEXPORTED
+End universal_quantification
+*)
+
+(*#* * Equality *)
+
+(*#* [eq x y], or simply [x=y], expresses the (Leibniz') equality
+    of [x] and [y]. Both [x] and [y] must belong to the same type [A].
+    The definition is inductive and states the reflexivity of the equality.
+    The others properties (symmetry, transitivity, replacement of 
+    equals) are proved below. The type of [x] and [y] can be made explicit
+    using the notation [x = y :> A] *)
+
+inline procedural "cic:/Coq/Init/Logic/eq.ind".
+
+(* NOTATION
+Notation "x = y" := (x = y :>_) : type_scope.
+*)
+
+(* NOTATION
+Notation "x <> y  :> T" := (~ x = y :>T) : type_scope.
+*)
+
+(* NOTATION
+Notation "x <> y" := (x <> y :>_) : type_scope.
+*)
+
+(* UNEXPORTED
+Implicit Arguments eq_ind [A].
+*)
+
+(* UNEXPORTED
+Implicit Arguments eq_rec [A].
+*)
+
+(* UNEXPORTED
+Implicit Arguments eq_rect [A].
+*)
+
+(* UNEXPORTED
+Hint Resolve I conj or_introl or_intror refl_equal: core v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve ex_intro ex_intro2: core v62.
+*)
+
+(* UNEXPORTED
+Section Logic_lemmas
+*)
+
+inline procedural "cic:/Coq/Init/Logic/absurd.con" as theorem.
+
+(* UNEXPORTED
+Section equality
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic/Logic_lemmas/equality/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic/Logic_lemmas/equality/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic/Logic_lemmas/equality/f.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic/Logic_lemmas/equality/x.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic/Logic_lemmas/equality/y.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic/Logic_lemmas/equality/z.var
+*)
+
+inline procedural "cic:/Coq/Init/Logic/sym_eq.con" as theorem.
+
+(* UNEXPORTED
+Opaque sym_eq.
+*)
+
+inline procedural "cic:/Coq/Init/Logic/trans_eq.con" as theorem.
+
+(* UNEXPORTED
+Opaque trans_eq.
+*)
+
+inline procedural "cic:/Coq/Init/Logic/f_equal.con" as theorem.
+
+(* UNEXPORTED
+Opaque f_equal.
+*)
+
+inline procedural "cic:/Coq/Init/Logic/sym_not_eq.con" as theorem.
+
+inline procedural "cic:/Coq/Init/Logic/sym_equal.con" as definition.
+
+inline procedural "cic:/Coq/Init/Logic/sym_not_equal.con" as definition.
+
+inline procedural "cic:/Coq/Init/Logic/trans_equal.con" as definition.
+
+(* UNEXPORTED
+End equality
+*)
+
+(* Is now a primitive principle 
+  Theorem eq_rect: (A:Type)(x:A)(P:A->Type)(P x)->(y:A)(eq ? x y)->(P y).
+  Proof.
+   Intros.
+   Cut (identity A x y).
+   NewDestruct 1; Auto.
+   NewDestruct H; Auto.
+  Qed.
+*)
+
+inline procedural "cic:/Coq/Init/Logic/eq_ind_r.con" as definition.
+
+inline procedural "cic:/Coq/Init/Logic/eq_rec_r.con" as definition.
+
+inline procedural "cic:/Coq/Init/Logic/eq_rect_r.con" as definition.
+
+(* UNEXPORTED
+End Logic_lemmas
+*)
+
+inline procedural "cic:/Coq/Init/Logic/f_equal2.con" as theorem.
+
+inline procedural "cic:/Coq/Init/Logic/f_equal3.con" as theorem.
+
+inline procedural "cic:/Coq/Init/Logic/f_equal4.con" as theorem.
+
+inline procedural "cic:/Coq/Init/Logic/f_equal5.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate sym_eq sym_not_eq: core v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Init/Logic_Type.mma b/helm/software/matita/contribs/procedural/Coq/Init/Logic_Type.mma
new file mode 100644 (file)
index 0000000..bfc9ddf
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Logic_Type.v,v 1.19 2003/11/29 17:28:30 herbelin Exp $ i*)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(*#* This module defines quantification on the world [Type]
+    ([Logic.v] was defining it on the world [Set]) *)
+
+include "Init/Datatypes.ma".
+
+include "Init/Logic.ma".
+
+inline procedural "cic:/Coq/Init/Logic_Type/notT.con" as definition.
+
+(* UNEXPORTED
+Section identity_is_a_congruence
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic_Type/identity_is_a_congruence/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic_Type/identity_is_a_congruence/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic_Type/identity_is_a_congruence/f.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic_Type/identity_is_a_congruence/x.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic_Type/identity_is_a_congruence/y.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic_Type/identity_is_a_congruence/z.var
+*)
+
+inline procedural "cic:/Coq/Init/Logic_Type/sym_id.con" as lemma.
+
+inline procedural "cic:/Coq/Init/Logic_Type/trans_id.con" as lemma.
+
+inline procedural "cic:/Coq/Init/Logic_Type/congr_id.con" as lemma.
+
+inline procedural "cic:/Coq/Init/Logic_Type/sym_not_id.con" as lemma.
+
+(* UNEXPORTED
+End identity_is_a_congruence
+*)
+
+inline procedural "cic:/Coq/Init/Logic_Type/identity_ind_r.con" as definition.
+
+inline procedural "cic:/Coq/Init/Logic_Type/identity_rec_r.con" as definition.
+
+inline procedural "cic:/Coq/Init/Logic_Type/identity_rect_r.con" as definition.
+
+inline procedural "cic:/Coq/Init/Logic_Type/prodT.ind".
+
+(* UNEXPORTED
+Section prodT_proj
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic_Type/prodT_proj/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Logic_Type/prodT_proj/B.var
+*)
+
+inline procedural "cic:/Coq/Init/Logic_Type/fstT.con" as definition.
+
+inline procedural "cic:/Coq/Init/Logic_Type/sndT.con" as definition.
+
+(* UNEXPORTED
+End prodT_proj
+*)
+
+inline procedural "cic:/Coq/Init/Logic_Type/prodT_uncurry.con" as definition.
+
+inline procedural "cic:/Coq/Init/Logic_Type/prodT_curry.con" as definition.
+
+(* UNEXPORTED
+Hint Immediate sym_id sym_not_id: core v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Init/Notations.mma b/helm/software/matita/contribs/procedural/Coq/Init/Notations.mma
new file mode 100644 (file)
index 0000000..a25c28d
--- /dev/null
@@ -0,0 +1,198 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Notations.v,v 1.24 2004/03/17 10:54:50 herbelin Exp $ i*)
+
+(*#* These are the notations whose level and associativity is imposed by Coq *)
+
+(*#* Notations for logical connectives *)
+
+(* NOTATION
+Reserved Notation "x <-> y" (at level 95, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x /\ y" (at level 80, right associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x \/ y" (at level 85, right associativity).
+*)
+
+(* NOTATION
+Reserved Notation "~ x" (at level 75, right associativity).
+*)
+
+(*#* Notations for equality and inequalities *)
+
+(* NOTATION
+Reserved Notation "x = y  :> T"
+(at level 70, y at next level, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x = y" (at level 70, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x = y = z"
+(at level 70, no associativity, y at next level).
+*)
+
+(* NOTATION
+Reserved Notation "x <> y  :> T"
+(at level 70, y at next level, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x <> y" (at level 70, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x <= y" (at level 70, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x < y" (at level 70, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x >= y" (at level 70, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x > y" (at level 70, no associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x <= y <= z" (at level 70, y at next level).
+*)
+
+(* NOTATION
+Reserved Notation "x <= y < z" (at level 70, y at next level).
+*)
+
+(* NOTATION
+Reserved Notation "x < y < z" (at level 70, y at next level).
+*)
+
+(* NOTATION
+Reserved Notation "x < y <= z" (at level 70, y at next level).
+*)
+
+(*#* Arithmetical notations (also used for type constructors) *)
+
+(* NOTATION
+Reserved Notation "x + y" (at level 50, left associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x - y" (at level 50, left associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x * y" (at level 40, left associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x / y" (at level 40, left associativity).
+*)
+
+(* NOTATION
+Reserved Notation "- x" (at level 35, right associativity).
+*)
+
+(* NOTATION
+Reserved Notation "/ x" (at level 35, right associativity).
+*)
+
+(* NOTATION
+Reserved Notation "x ^ y" (at level 30, right associativity).
+*)
+
+(*#* Notations for pairs *)
+
+(* NOTATION
+Reserved Notation "( x , y , .. , z )" (at level 0).
+*)
+
+(*#* Notation "{ x }" is reserved and has a special status as component
+    of other notations; it is at level 0 to factor with {x:A|P} etc *)
+
+(* NOTATION
+Reserved Notation "{ x }" (at level 0, x at level 99).
+*)
+
+(*#* Notations for sum-types *)
+
+(* NOTATION
+Reserved Notation "{ A } + { B }" (at level 50, left associativity).
+*)
+
+(* NOTATION
+Reserved Notation "A + { B }" (at level 50, left associativity).
+*)
+
+(*#* Notations for sigma-types or subsets *)
+
+(* NOTATION
+Reserved Notation "{ x : A  |  P }" (at level 0, x at level 99).
+*)
+
+(* NOTATION
+Reserved Notation "{ x : A  |  P  &  Q }" (at level 0, x at level 99).
+*)
+
+(* NOTATION
+Reserved Notation "{ x : A  &  P }" (at level 0, x at level 99).
+*)
+
+(* NOTATION
+Reserved Notation "{ x : A  &  P  &  Q }" (at level 0, x at level 99).
+*)
+
+(* UNEXPORTED
+Delimit Scope type_scope with type.
+*)
+
+(* UNEXPORTED
+Delimit Scope core_scope with core.
+*)
+
+(* UNEXPORTED
+Open Scope core_scope.
+*)
+
+(* UNEXPORTED
+Open Scope type_scope.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Init/Peano.mma b/helm/software/matita/contribs/procedural/Coq/Init/Peano.mma
new file mode 100644 (file)
index 0000000..f23ce25
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Peano.v,v 1.23 2003/11/29 17:28:30 herbelin Exp $ i*)
+
+(*#* Natural numbers [nat] built from [O] and [S] are defined in Datatypes.v *)
+
+(*#* This module defines the following operations on natural numbers :
+    - predecessor [pred]
+    - addition [plus]
+    - multiplication [mult]
+    - less or equal order [le]
+    - less [lt]
+    - greater or equal [ge]
+    - greater [gt]
+
+   This module states various lemmas and theorems about natural numbers,
+   including Peano's axioms of arithmetic (in Coq, these are in fact provable)
+   Case analysis on [nat] and induction on [nat * nat] are provided too *)
+
+include "Init/Notations.ma".
+
+include "Init/Datatypes.ma".
+
+include "Init/Logic.ma".
+
+(* UNEXPORTED
+Open Scope nat_scope.
+*)
+
+inline procedural "cic:/Coq/Init/Peano/eq_S.con" as definition.
+
+(* UNEXPORTED
+Hint Resolve (f_equal S): v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve (f_equal (A:=nat)): core.
+*)
+
+(*#* The predecessor function *)
+
+inline procedural "cic:/Coq/Init/Peano/pred.con" as definition.
+
+(* UNEXPORTED
+Hint Resolve (f_equal pred): v62.
+*)
+
+inline procedural "cic:/Coq/Init/Peano/pred_Sn.con" as theorem.
+
+inline procedural "cic:/Coq/Init/Peano/eq_add_S.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate eq_add_S: core v62.
+*)
+
+(*#* A consequence of the previous axioms *)
+
+inline procedural "cic:/Coq/Init/Peano/not_eq_S.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve not_eq_S: core v62.
+*)
+
+inline procedural "cic:/Coq/Init/Peano/IsSucc.con" as definition.
+
+inline procedural "cic:/Coq/Init/Peano/O_S.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve O_S: core v62.
+*)
+
+inline procedural "cic:/Coq/Init/Peano/n_Sn.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve n_Sn: core v62.
+*)
+
+(*#* Addition *)
+
+inline procedural "cic:/Coq/Init/Peano/plus.con" as definition.
+
+(* UNEXPORTED
+Hint Resolve (f_equal2 plus): v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve (f_equal2 (A1:=nat) (A2:=nat)): core.
+*)
+
+(* NOTATION
+Infix "+" := plus : nat_scope.
+*)
+
+inline procedural "cic:/Coq/Init/Peano/plus_n_O.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve plus_n_O: core v62.
+*)
+
+inline procedural "cic:/Coq/Init/Peano/plus_O_n.con" as lemma.
+
+inline procedural "cic:/Coq/Init/Peano/plus_n_Sm.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve plus_n_Sm: core v62.
+*)
+
+inline procedural "cic:/Coq/Init/Peano/plus_Sn_m.con" as lemma.
+
+(*#* Multiplication *)
+
+inline procedural "cic:/Coq/Init/Peano/mult.con" as definition.
+
+(* UNEXPORTED
+Hint Resolve (f_equal2 mult): core v62.
+*)
+
+(* NOTATION
+Infix "*" := mult : nat_scope.
+*)
+
+inline procedural "cic:/Coq/Init/Peano/mult_n_O.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_n_O: core v62.
+*)
+
+inline procedural "cic:/Coq/Init/Peano/mult_n_Sm.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve mult_n_Sm: core v62.
+*)
+
+(*#* Definition of subtraction on [nat] : [m-n] is [0] if [n>=m] *)
+
+inline procedural "cic:/Coq/Init/Peano/minus.con" as definition.
+
+(* NOTATION
+Infix "-" := minus : nat_scope.
+*)
+
+(*#* Definition of the usual orders, the basic properties of [le] and [lt] 
+    can be found in files Le and Lt *)
+
+(*#* An inductive definition to define the order *)
+
+inline procedural "cic:/Coq/Init/Peano/le.ind".
+
+(* NOTATION
+Infix "<=" := le : nat_scope.
+*)
+
+(* UNEXPORTED
+Hint Constructors le: core v62.
+*)
+
+(*i equivalent to : "Hints Resolve le_n le_S : core v62." i*)
+
+inline procedural "cic:/Coq/Init/Peano/lt.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold lt: core v62.
+*)
+
+(* NOTATION
+Infix "<" := lt : nat_scope.
+*)
+
+inline procedural "cic:/Coq/Init/Peano/ge.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold ge: core v62.
+*)
+
+(* NOTATION
+Infix ">=" := ge : nat_scope.
+*)
+
+inline procedural "cic:/Coq/Init/Peano/gt.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold gt: core v62.
+*)
+
+(* NOTATION
+Infix ">" := gt : nat_scope.
+*)
+
+(* NOTATION
+Notation "x <= y <= z" := (x <= y /\ y <= z) : nat_scope.
+*)
+
+(* NOTATION
+Notation "x <= y < z" := (x <= y /\ y < z) : nat_scope.
+*)
+
+(* NOTATION
+Notation "x < y < z" := (x < y /\ y < z) : nat_scope.
+*)
+
+(* NOTATION
+Notation "x < y <= z" := (x < y /\ y <= z) : nat_scope.
+*)
+
+(*#* Pattern-Matching on natural numbers *)
+
+inline procedural "cic:/Coq/Init/Peano/nat_case.con" as theorem.
+
+(*#* Principle of double induction *)
+
+inline procedural "cic:/Coq/Init/Peano/nat_double_ind.con" as theorem.
+
+(*#* Notations *)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Init/Prelude.mma b/helm/software/matita/contribs/procedural/Coq/Init/Prelude.mma
new file mode 100644 (file)
index 0000000..ea1285f
--- /dev/null
@@ -0,0 +1,46 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Prelude.v,v 1.11 2003/11/29 17:28:30 herbelin Exp $ i*)
+
+include "Init/Notations.ma".
+
+include "Init/Logic.ma".
+
+include "Init/Datatypes.ma".
+
+include "Init/Specif.ma".
+
+include "Init/Peano.ma".
+
+include "Init/Wf.ma".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Init/Specif.mma b/helm/software/matita/contribs/procedural/Coq/Init/Specif.mma
new file mode 100644 (file)
index 0000000..e5eefc5
--- /dev/null
@@ -0,0 +1,273 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Specif.v,v 1.25 2004/04/06 17:30:47 herbelin Exp $ i*)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(*#* Basic specifications : Sets containing logical information *)
+
+include "Init/Notations.ma".
+
+include "Init/Datatypes.ma".
+
+include "Init/Logic.ma".
+
+(*#* Subsets *)
+
+(*#* [(sig A P)], or more suggestively [{x:A | (P x)}], denotes the subset 
+    of elements of the Set [A] which satisfy the predicate [P].
+    Similarly [(sig2 A P Q)], or [{x:A | (P x) & (Q x)}], denotes the subset 
+    of elements of the Set [A] which satisfy both [P] and [Q]. *)
+
+inline procedural "cic:/Coq/Init/Specif/sig.ind".
+
+inline procedural "cic:/Coq/Init/Specif/sig2.ind".
+
+(*#* [(sigS A P)], or more suggestively [{x:A & (P x)}], is a subtle variant
+    of subset where [P] is now of type [Set].
+    Similarly for [(sigS2 A P Q)], also written [{x:A & (P x) & (Q x)}]. *)
+
+inline procedural "cic:/Coq/Init/Specif/sigS.ind".
+
+inline procedural "cic:/Coq/Init/Specif/sigS2.ind".
+
+(* UNEXPORTED
+Arguments Scope sig [type_scope type_scope].
+*)
+
+(* UNEXPORTED
+Arguments Scope sig2 [type_scope type_scope type_scope].
+*)
+
+(* UNEXPORTED
+Arguments Scope sigS [type_scope type_scope].
+*)
+
+(* UNEXPORTED
+Arguments Scope sigS2 [type_scope type_scope type_scope].
+*)
+
+(* NOTATION
+Notation "{ x : A  |  P }" := (sig (fun x:A => P)) : type_scope.
+*)
+
+(* NOTATION
+Notation "{ x : A  |  P  &  Q }" := (sig2 (fun x:A => P) (fun x:A => Q)) :
+  type_scope.
+*)
+
+(* NOTATION
+Notation "{ x : A  &  P }" := (sigS (fun x:A => P)) : type_scope.
+*)
+
+(* NOTATION
+Notation "{ x : A  &  P  &  Q }" := (sigS2 (fun x:A => P) (fun x:A => Q)) :
+  type_scope.
+*)
+
+(* NOTATION
+Add Printing Let sig.
+*)
+
+(* NOTATION
+Add Printing Let sig2.
+*)
+
+(* NOTATION
+Add Printing Let sigS.
+*)
+
+(* NOTATION
+Add Printing Let sigS2.
+*)
+
+(*#* Projections of sig *)
+
+(* UNEXPORTED
+Section Subset_projections
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Specif/Subset_projections/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Specif/Subset_projections/P.var
+*)
+
+inline procedural "cic:/Coq/Init/Specif/proj1_sig.con" as definition.
+
+inline procedural "cic:/Coq/Init/Specif/proj2_sig.con" as definition.
+
+(* UNEXPORTED
+End Subset_projections
+*)
+
+(*#* Projections of sigS *)
+
+(* UNEXPORTED
+Section Projections
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Specif/Projections/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Specif/Projections/P.var
+*)
+
+(*#* An element [y] of a subset [{x:A & (P x)}] is the pair of an [a] of 
+     type [A] and of a proof [h] that [a] satisfies [P].
+     Then [(projS1 y)] is the witness [a]
+     and [(projS2 y)] is the proof of [(P a)] *)
+
+inline procedural "cic:/Coq/Init/Specif/projS1.con" as definition.
+
+inline procedural "cic:/Coq/Init/Specif/projS2.con" as definition.
+
+(* UNEXPORTED
+End Projections
+*)
+
+(*#* Extended_booleans *)
+
+inline procedural "cic:/Coq/Init/Specif/sumbool.ind".
+
+(* NOTATION
+Add Printing If sumbool.
+*)
+
+inline procedural "cic:/Coq/Init/Specif/sumor.ind".
+
+(* NOTATION
+Add Printing If sumor.
+*)
+
+(*#* Choice *)
+
+(* UNEXPORTED
+Section Choice_lemmas
+*)
+
+(*#* The following lemmas state various forms of the axiom of choice *)
+
+(* UNEXPORTED
+cic:/Coq/Init/Specif/Choice_lemmas/S.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Specif/Choice_lemmas/S'.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Specif/Choice_lemmas/R.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Specif/Choice_lemmas/R'.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Specif/Choice_lemmas/R1.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Specif/Choice_lemmas/R2.var
+*)
+
+inline procedural "cic:/Coq/Init/Specif/Choice.con" as lemma.
+
+inline procedural "cic:/Coq/Init/Specif/Choice2.con" as lemma.
+
+inline procedural "cic:/Coq/Init/Specif/bool_choice.con" as lemma.
+
+(* UNEXPORTED
+End Choice_lemmas
+*)
+
+(*#* A result of type [(Exc A)] is either a normal value of type [A] or 
+     an [error] :
+     [Inductive Exc [A:Set] : Set := value : A->(Exc A) | error : (Exc A)]
+     it is implemented using the option type. *)
+
+inline procedural "cic:/Coq/Init/Specif/Exc.con" as definition.
+
+inline procedural "cic:/Coq/Init/Specif/value.con" as definition.
+
+inline procedural "cic:/Coq/Init/Specif/error.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments error [A].
+*)
+
+inline procedural "cic:/Coq/Init/Specif/except.con" as definition.
+
+(* for compatibility with previous versions *)
+
+(* UNEXPORTED
+Implicit Arguments except [P].
+*)
+
+inline procedural "cic:/Coq/Init/Specif/absurd_set.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve left right inleft inright: core v62.
+*)
+
+(*#* Sigma Type at Type level [sigT] *)
+
+inline procedural "cic:/Coq/Init/Specif/sigT.ind".
+
+(* UNEXPORTED
+Section projections_sigT
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Specif/projections_sigT/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Specif/projections_sigT/P.var
+*)
+
+inline procedural "cic:/Coq/Init/Specif/projT1.con" as definition.
+
+inline procedural "cic:/Coq/Init/Specif/projT2.con" as definition.
+
+(* UNEXPORTED
+End projections_sigT
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Init/Wf.mma b/helm/software/matita/contribs/procedural/Coq/Init/Wf.mma
new file mode 100644 (file)
index 0000000..1095e66
--- /dev/null
@@ -0,0 +1,208 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(*i $Id: Wf.v,v 1.17 2003/11/29 17:28:30 herbelin Exp $ i*)
+
+(*#* This module proves the validity of
+    - well-founded recursion (also called course of values)
+    - well-founded induction
+
+   from a well-founded ordering on a given set *)
+
+include "Init/Notations.ma".
+
+include "Init/Logic.ma".
+
+include "Init/Datatypes.ma".
+
+(*#* Well-founded induction principle on Prop *)
+
+(* UNEXPORTED
+Section Well_founded
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded/R.var
+*)
+
+(*#* The accessibility predicate is defined to be non-informative *)
+
+inline procedural "cic:/Coq/Init/Wf/Acc.ind".
+
+inline procedural "cic:/Coq/Init/Wf/Acc_inv.con" as lemma.
+
+(*#* the informative elimination :
+     [let Acc_rec F = let rec wf x = F x wf in wf] *)
+
+(* UNEXPORTED
+Section AccRecType
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded/AccRecType/P.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded/AccRecType/F.var
+*)
+
+inline procedural "cic:/Coq/Init/Wf/Acc_rect.con" as definition.
+
+(* UNEXPORTED
+End AccRecType
+*)
+
+inline procedural "cic:/Coq/Init/Wf/Acc_rec.con" as definition.
+
+(*#* A simplified version of Acc_rec(t) *)
+
+(* UNEXPORTED
+Section AccIter
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded/AccIter/P.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded/AccIter/F.var
+*)
+
+inline procedural "cic:/Coq/Init/Wf/Acc_iter.con" as definition.
+
+(* UNEXPORTED
+End AccIter
+*)
+
+(*#* A relation is well-founded if every element is accessible *)
+
+inline procedural "cic:/Coq/Init/Wf/well_founded.con" as definition.
+
+(*#* well-founded induction on Set and Prop *)
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded/Rwf.var
+*)
+
+inline procedural "cic:/Coq/Init/Wf/well_founded_induction_type.con" as theorem.
+
+inline procedural "cic:/Coq/Init/Wf/well_founded_induction.con" as theorem.
+
+inline procedural "cic:/Coq/Init/Wf/well_founded_ind.con" as theorem.
+
+(*#* Building fixpoints  *)
+
+(* UNEXPORTED
+Section FixPoint
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded/FixPoint/P.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded/FixPoint/F.var
+*)
+
+inline procedural "cic:/Coq/Init/Wf/Fix_F.con" as definition.
+
+inline procedural "cic:/Coq/Init/Wf/Fix.con" as definition.
+
+(*#* Proof that [well_founded_induction] satisfies the fixpoint equation. 
+    It requires an extra property of the functional *)
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded/FixPoint/F_ext.var
+*)
+
+inline procedural "cic:/Coq/Init/Wf/Acc_inv_dep.con" as theorem.
+
+inline procedural "cic:/Coq/Init/Wf/Fix_F_eq.con" as lemma.
+
+inline procedural "cic:/Coq/Init/Wf/Fix_F_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Init/Wf/Fix_eq.con" as lemma.
+
+(* UNEXPORTED
+End FixPoint
+*)
+
+(* UNEXPORTED
+End Well_founded
+*)
+
+(*#* A recursor over pairs *)
+
+(* UNEXPORTED
+Section Well_founded_2
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded_2/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded_2/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded_2/R.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded_2/P.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded_2/F.var
+*)
+
+inline procedural "cic:/Coq/Init/Wf/Acc_iter_2.con" as definition.
+
+(* UNEXPORTED
+cic:/Coq/Init/Wf/Well_founded_2/Rwf.var
+*)
+
+inline procedural "cic:/Coq/Init/Wf/well_founded_induction_type_2.con" as theorem.
+
+(* UNEXPORTED
+End Well_founded_2
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Adalloc.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Adalloc.mma
new file mode 100644 (file)
index 0000000..7db1186
--- /dev/null
@@ -0,0 +1,153 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i    $Id: Adalloc.v,v 1.10 2003/11/29 17:28:30 herbelin Exp $         i*)
+
+include "Bool/Bool.ma".
+
+include "Bool/Sumbool.ma".
+
+include "ZArith/ZArith.ma".
+
+include "Arith/Arith.ma".
+
+include "IntMap/Addr.ma".
+
+include "IntMap/Adist.ma".
+
+include "IntMap/Addec.ma".
+
+include "IntMap/Map.ma".
+
+include "IntMap/Fset.ma".
+
+(* UNEXPORTED
+Section AdAlloc
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Adalloc/AdAlloc/A.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Adalloc/nat_of_ad.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/nat_le.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/nat_le_correct.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/nat_le_complete.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/nat_le_correct_conv.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/nat_le_complete_conv.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_of_nat.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_of_nat_of_ad.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/nat_of_ad_of_nat.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_le.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_le_refl.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_le_antisym.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_le_trans.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_le_lt_trans.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_lt_le_trans.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_lt_trans.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_lt_le_weak.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_min.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_min_choice.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_min_le_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_min_le_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_min_le_3.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_min_le_4.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_min_le_5.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_min_lt_3.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_min_lt_4.con" as lemma.
+
+(*#* Allocator: returns an address not in the domain of [m].
+  This allocator is optimal in that it returns the lowest possible address,
+  in the usual ordering on integers. It is not the most efficient, however. *)
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_alloc_opt.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_alloc_opt_allocates_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_alloc_opt_allocates.con" as lemma.
+
+(*#* Moreover, this is optimal: all addresses below [(ad_alloc_opt m)]
+      are in [dom m]: *)
+
+inline procedural "cic:/Coq/IntMap/Adalloc/nat_of_ad_double.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/nat_of_ad_double_plus_un.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_le_double_mono.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_le_double_plus_un_mono.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_le_double_mono_conv.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_le_double_plus_un_mono_conv.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_lt_double_mono.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_lt_double_plus_un_mono.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_lt_double_mono_conv.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_lt_double_plus_un_mono_conv.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_alloc_opt_optimal_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adalloc/ad_alloc_opt_optimal.con" as lemma.
+
+(* UNEXPORTED
+End AdAlloc
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Addec.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Addec.mma
new file mode 100644 (file)
index 0000000..28a12ef
--- /dev/null
@@ -0,0 +1,80 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i    $Id: Addec.v,v 1.7 2003/11/29 17:28:31 herbelin Exp $    i*)
+
+(*#* Equality on adresses *)
+
+include "Bool/Bool.ma".
+
+include "Bool/Sumbool.ma".
+
+include "ZArith/ZArith.ma".
+
+include "IntMap/Addr.ma".
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_eq_1.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_eq.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_eq_correct.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_eq_complete.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_eq_comm.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_xor_eq_true.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_xor_eq_false.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_bit_0_1_not_double.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_not_div_2_not_double.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_bit_0_0_not_double_plus_un.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_not_div_2_not_double_plus_un.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_bit_0_neq.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_div_eq.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_div_neq.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_div_bit_eq.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_div_bit_neq.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_neq.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addec/ad_double_or_double_plus_un.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Addr.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Addr.mma
new file mode 100644 (file)
index 0000000..e5b7aba
--- /dev/null
@@ -0,0 +1,144 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i    $Id: Addr.v,v 1.8 2003/11/29 17:28:31 herbelin Exp $     i*)
+
+(*#* Representation of adresses by the [positive] type of binary numbers *)
+
+include "Bool/Bool.ma".
+
+include "ZArith/ZArith.ma".
+
+inline procedural "cic:/Coq/IntMap/Addr/ad.ind".
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_sum.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/p_xor.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor_neutral_left.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor_neutral_right.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor_comm.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor_nilpotent.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_bit_1.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_bit.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Addr/eqf.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_faithful_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_faithful_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_faithful_3.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_faithful_4.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_faithful.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/adf_xor.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor_sem_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor_sem_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor_sem_3.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor_sem_4.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor_sem_5.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor_sem_6.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor_semantics.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/eqf_sym.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/eqf_refl.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/eqf_trans.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/adf_xor_eq.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor_eq.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/adf_xor_assoc.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/eqf_xor_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor_assoc.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_double.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_double_plus_un.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_div_2.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_double_div_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_double_plus_un_div_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_double_inj.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_double_plus_un_inj.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_bit_0.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_double_bit_0.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_double_plus_un_bit_0.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_div_2_double.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_div_2_double_plus_un.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_bit_0_correct.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_div_2_correct.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor_bit_0.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_xor_div_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_neg_bit_0.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_neg_bit_0_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_neg_bit_0_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Addr/ad_same_bit_0.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Adist.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Adist.mma
new file mode 100644 (file)
index 0000000..c51c2b1
--- /dev/null
@@ -0,0 +1,138 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i         $Id: Adist.v,v 1.9 2003/11/29 17:28:31 herbelin Exp $            i*)
+
+include "Bool/Bool.ma".
+
+include "ZArith/ZArith.ma".
+
+include "Arith/Arith.ma".
+
+include "Arith/Min.ma".
+
+include "IntMap/Addr.ma".
+
+inline procedural "cic:/Coq/IntMap/Adist/ad_plength_1.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Adist/natinf.ind".
+
+inline procedural "cic:/Coq/IntMap/Adist/ad_plength.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Adist/ad_plength_infty.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ad_plength_zeros.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ad_plength_one.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ad_plength_first_one.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_min.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_min_idemp.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_min_comm.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_min_assoc.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_min_O_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_min_O_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_min_inf_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_min_inf_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_le.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_le_refl.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_le_antisym.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_le_trans.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_le_min_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_le_min_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_min_case.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_le_total.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_le_min_induc.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/le_ni_le.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ni_le_le.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ad_plength_lb.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ad_plength_ub.con" as lemma.
+
+(*#* We define an ultrametric distance between addresses: 
+    $d(a,a')=1/2^pd(a,a')$, 
+    where $pd(a,a')$ is the number of identical bits at the beginning 
+    of $a$ and $a'$ (infinity if $a=a'$).  
+    Instead of working with $d$, we work with $pd$, namely
+    [ad_pdist]: *)
+
+inline procedural "cic:/Coq/IntMap/Adist/ad_pdist.con" as definition.
+
+(*#* d is a distance, so $d(a,a')=0$ iff $a=a'$; this means that
+    $pd(a,a')=infty$ iff $a=a'$: *)
+
+inline procedural "cic:/Coq/IntMap/Adist/ad_pdist_eq_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ad_pdist_eq_2.con" as lemma.
+
+(*#* $d$ is a distance, so $d(a,a')=d(a',a)$: *)
+
+inline procedural "cic:/Coq/IntMap/Adist/ad_pdist_comm.con" as lemma.
+
+(*#* $d$ is an ultrametric distance, that is, not only $d(a,a')\leq
+    d(a,a'')+d(a'',a')$,
+  but in fact $d(a,a')\leq max(d(a,a''),d(a'',a'))$.
+  This means that $min(pd(a,a''),pd(a'',a'))<=pd(a,a')$ (lemma [ad_pdist_ultra] below).
+  This follows from the fact that $a ~Ra~|a| = 1/2^{\texttt{ad\_plength}}(a))$
+  is an ultrametric norm, i.e. that $|a-a'| \leq max (|a-a''|, |a''-a'|)$,
+  or equivalently that $|a+b|<=max(|a|,|b|)$, i.e. that
+  min $(\texttt{ad\_plength}(a), \texttt{ad\_plength}(b)) \leq 
+  \texttt{ad\_plength} (a~\texttt{xor}~ b)$
+  (lemma [ad_plength_ultra]).
+*)
+
+inline procedural "cic:/Coq/IntMap/Adist/ad_plength_ultra_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ad_plength_ultra.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Adist/ad_pdist_ultra.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Allmaps.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Allmaps.mma
new file mode 100644 (file)
index 0000000..0bec24b
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i    $Id: Allmaps.v,v 1.3 2003/11/29 17:28:31 herbelin Exp $  i*)
+
+include "IntMap/Addr.ma".
+
+include "IntMap/Adist.ma".
+
+include "IntMap/Addec.ma".
+
+include "IntMap/Map.ma".
+
+include "IntMap/Fset.ma".
+
+include "IntMap/Mapaxioms.ma".
+
+include "IntMap/Mapiter.ma".
+
+include "IntMap/Mapsubset.ma".
+
+include "IntMap/Lsort.ma".
+
+include "IntMap/Mapfold.ma".
+
+include "IntMap/Mapcard.ma".
+
+include "IntMap/Mapcanon.ma".
+
+include "IntMap/Mapc.ma".
+
+include "IntMap/Maplists.ma".
+
+include "IntMap/Adalloc.ma".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Fset.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Fset.mma
new file mode 100644 (file)
index 0000000..c93674c
--- /dev/null
@@ -0,0 +1,164 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i    $Id: Fset.v,v 1.5 2003/11/29 17:28:31 herbelin Exp $     i*)
+
+(*s Sets operations on maps *)
+
+include "Bool/Bool.ma".
+
+include "Bool/Sumbool.ma".
+
+include "ZArith/ZArith.ma".
+
+include "IntMap/Addr.ma".
+
+include "IntMap/Adist.ma".
+
+include "IntMap/Addec.ma".
+
+include "IntMap/Map.ma".
+
+(* UNEXPORTED
+Section Dom
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Fset/Dom/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Fset/Dom/B.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Fset/MapDomRestrTo.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Fset/MapDomRestrTo_semantics.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/MapDomRestrBy.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Fset/MapDomRestrBy_semantics.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_dom.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_dom_M0.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_dom_M1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_dom_M1_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_dom_M1_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_dom_some.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_dom_none.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_dom_put.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_dom_put_behind.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_dom_remove.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_dom_merge.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_dom_delta.con" as lemma.
+
+(* UNEXPORTED
+End Dom
+*)
+
+(* UNEXPORTED
+Section InDom
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Fset/InDom/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Fset/InDom/B.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Fset/in_dom_restrto.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_dom_restrby.con" as lemma.
+
+(* UNEXPORTED
+End InDom
+*)
+
+inline procedural "cic:/Coq/IntMap/Fset/FSet.con" as definition.
+
+(* UNEXPORTED
+Section FSetDefs
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Fset/FSetDefs/A.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Fset/in_FSet.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Fset/MapDom.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Fset/MapDom_semantics_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/MapDom_semantics_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/MapDom_semantics_3.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/MapDom_semantics_4.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/MapDom_Dom.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/FSetUnion.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_FSet_union.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/FSetInter.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_FSet_inter.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/FSetDiff.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_FSet_diff.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Fset/FSetDelta.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Fset/in_FSet_delta.con" as lemma.
+
+(* UNEXPORTED
+End FSetDefs
+*)
+
+inline procedural "cic:/Coq/IntMap/Fset/FSet_Dom.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Lsort.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Lsort.mma
new file mode 100644 (file)
index 0000000..11b5aa6
--- /dev/null
@@ -0,0 +1,160 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i    $Id: Lsort.v,v 1.4 2003/11/29 17:28:31 herbelin Exp $    i*)
+
+include "Bool/Bool.ma".
+
+include "Bool/Sumbool.ma".
+
+include "Arith/Arith.ma".
+
+include "ZArith/ZArith.ma".
+
+include "IntMap/Addr.ma".
+
+include "IntMap/Adist.ma".
+
+include "IntMap/Addec.ma".
+
+include "IntMap/Map.ma".
+
+include "Lists/List.ma".
+
+include "IntMap/Mapiter.ma".
+
+(* UNEXPORTED
+Section LSort
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Lsort/LSort/A.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_less_1.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_less.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_bit_0_less.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_bit_0_gt.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_less_not_refl.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_ind_double.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_rec_double.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_less_def_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_less_def_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_less_def_3.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_less_def_4.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_less_z.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_z_less_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_z_less_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_less_trans.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_sorted.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_nth_ad.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_sorted_1.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_sorted_imp_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_sorted_2.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_sorted_1_imp_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_sorted_2_imp.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/app_length.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/aapp_length.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_nth_ad_aapp_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_nth_ad_aapp_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/interval_split.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_conc_sorted.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_nth_ad_semantics.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_of_Map_nth_ad.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_monotonic.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_double_monotonic.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_double_plus_un_monotonic.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_comp_monotonic.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_comp_double_monotonic.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_comp_double_plus_un_monotonic.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_of_Map_sorts_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_of_Map_sorts.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_of_Map_sorts1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_of_Map_sorts2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/ad_less_total.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_too_low.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_semantics_nth_ad.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_semantics_tail.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_semantics_same_tail.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_sorted_tail.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Lsort/alist_canonical.con" as lemma.
+
+(* UNEXPORTED
+End LSort
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Map.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Map.mma
new file mode 100644 (file)
index 0000000..0878585
--- /dev/null
@@ -0,0 +1,213 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i    $Id: Map.v,v 1.7 2003/11/29 17:28:31 herbelin Exp $      i*)
+
+(*#* Definition of finite sets as trees indexed by adresses *)
+
+include "Bool/Bool.ma".
+
+include "Bool/Sumbool.ma".
+
+include "ZArith/ZArith.ma".
+
+include "IntMap/Addr.ma".
+
+include "IntMap/Adist.ma".
+
+include "IntMap/Addec.ma".
+
+(* UNEXPORTED
+Section MapDefs
+*)
+
+(*#* We define maps from ad to A. *)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Map/MapDefs/A.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Map/Map.ind".
+
+inline procedural "cic:/Coq/IntMap/Map/option.ind".
+
+inline procedural "cic:/Coq/IntMap/Map/option_sum.con" as lemma.
+
+(*#* The semantics of maps is given by the function [MapGet].
+      The semantics of a map [m] is a partial, finite function from
+      [ad] to [A]: *)
+
+inline procedural "cic:/Coq/IntMap/Map/MapGet.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Map/newMap.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Map/MapSingleton.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Map/eqm.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Map/newMap_semantics.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapSingleton_semantics.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/M1_semantics_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/M1_semantics_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/Map2_semantics_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/Map2_semantics_1_eq.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/Map2_semantics_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/Map2_semantics_2_eq.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapGet_M2_bit_0_0.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapGet_M2_bit_0_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapGet_M2_bit_0_if.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapGet_M2_bit_0.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/Map2_semantics_3.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/Map2_semantics_3_eq.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut1.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Map/MapGet_if_commute.con" as lemma.
+
+(*i
+  Lemma MapGet_M2_bit_0_1' : (m,m',m'',m''':Map)
+      (a:ad) (MapGet (if (ad_bit_0 a) then (M2 m m') else (M2 m'' m''')) a)=
+             (MapGet (if (ad_bit_0 a) then m' else m'') (ad_div_2 a)).
+  Proof.
+    Intros. Rewrite (MapGet_if_commute (ad_bit_0 a)). Rewrite (MapGet_if_commute (ad_bit_0 a)).
+    Cut (ad_bit_0 a)=false\/(ad_bit_0 a)=true. Intros. Elim H. Intros. Rewrite H0.
+    Apply MapGet_M2_bit_0_0. Assumption.
+    Intros. Rewrite H0. Apply MapGet_M2_bit_0_1. Assumption.
+    Case (ad_bit_0 a); Auto.
+  Qed.
+  i*)
+
+inline procedural "cic:/Coq/IntMap/Map/MapGet_if_same.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapGet_M2_bit_0_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut1_semantics_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut1_semantics_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapGet_M2_both_NONE.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut1_semantics_3.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut1_semantics.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut1_semantics'.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut_semantics_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut_semantics_2_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut_semantics_2_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut_semantics_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut_semantics_3_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut_semantics.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut_behind.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut_behind_semantics_3_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut_behind_as_before_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut_behind_as_before.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut_behind_new.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapPut_behind_semantics.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/makeM2.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Map/makeM2_M2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapRemove.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Map/MapRemove_semantics.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapCard.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Map/MapMerge.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Map/MapMerge_semantics.con" as lemma.
+
+(*#* [MapInter], [MapRngRestrTo], [MapRngRestrBy], [MapInverse] 
+      not implemented: need a decidable equality on [A]. *)
+
+inline procedural "cic:/Coq/IntMap/Map/MapDelta.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_comm.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_1_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_2_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_2_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_3_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_3.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapEmptyp.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Map/MapEmptyp_correct.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Map/MapEmptyp_complete.con" as lemma.
+
+(*#* [MapSplit] not implemented: not the preferred way of recursing over Maps
+      (use [MapSweep], [MapCollect], or [MapFold] in Mapiter.v. *)
+
+(* UNEXPORTED
+End MapDefs
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Mapaxioms.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Mapaxioms.mma
new file mode 100644 (file)
index 0000000..84d919b
--- /dev/null
@@ -0,0 +1,240 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i    $Id: Mapaxioms.v,v 1.4 2003/11/29 17:28:31 herbelin Exp $        i*)
+
+include "Bool/Bool.ma".
+
+include "Bool/Sumbool.ma".
+
+include "ZArith/ZArith.ma".
+
+include "IntMap/Addr.ma".
+
+include "IntMap/Adist.ma".
+
+include "IntMap/Addec.ma".
+
+include "IntMap/Map.ma".
+
+include "IntMap/Fset.ma".
+
+(* UNEXPORTED
+Section MapAxioms
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapaxioms/MapAxioms/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapaxioms/MapAxioms/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapaxioms/MapAxioms/C.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/eqm_sym.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/eqm_refl.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/eqm_trans.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/eqmap.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/eqmap_sym.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/eqmap_refl.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/eqmap_trans.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapPut_as_Merge.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapPut_ext.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapPut_behind_as_Merge.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapPut_behind_ext.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapMerge_empty_m_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapMerge_empty_m.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapMerge_m_empty_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapMerge_m_empty.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapMerge_empty_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapMerge_empty_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapMerge_assoc.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapMerge_idempotent.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapMerge_ext.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapMerge_ext_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapMerge_ext_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapMerge_RestrTo_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapRemove_as_RestrBy.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapRemove_ext.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrTo_empty_m_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrTo_empty_m.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrTo_m_empty_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrTo_m_empty.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrTo_assoc.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrTo_idempotent.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrTo_Dom.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrBy_empty_m_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrBy_empty_m.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrBy_m_empty_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrBy_m_empty.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrBy_Dom.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrBy_m_m_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrBy_By.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrBy_By_comm.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrBy_To.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrBy_To_comm.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrTo_By.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrTo_By_comm.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrTo_To_comm.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapMerge_DomRestrTo.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapMerge_DomRestrBy.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDelta_empty_m_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDelta_empty_m.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDelta_m_empty_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDelta_m_empty.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDelta_nilpotent.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDelta_as_Merge.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDelta_as_DomRestrBy.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDelta_as_DomRestrBy_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDelta_sym.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDelta_ext.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDelta_ext_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDelta_ext_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDom_Split_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDom_Split_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDom_Split_3.con" as lemma.
+
+(* UNEXPORTED
+End MapAxioms
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrTo_ext.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrTo_ext_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrTo_ext_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrBy_ext.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrBy_ext_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrBy_ext_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/MapDomRestrBy_m_m.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSetDelta_assoc.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSet_ext.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSetUnion_comm.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSetUnion_assoc.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSetUnion_M0_s.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSetUnion_s_M0.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSetUnion_idempotent.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSetInter_comm.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSetInter_assoc.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSetInter_M0_s.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSetInter_s_M0.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSetInter_idempotent.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSetUnion_Inter_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSetUnion_Inter_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSetInter_Union_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapaxioms/FSetInter_Union_r.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Mapc.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Mapc.mma
new file mode 100644 (file)
index 0000000..fb94992
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i    $Id: Mapc.v,v 1.4 2003/11/29 17:28:31 herbelin Exp $     i*)
+
+include "Bool/Bool.ma".
+
+include "Bool/Sumbool.ma".
+
+include "Arith/Arith.ma".
+
+include "ZArith/ZArith.ma".
+
+include "IntMap/Addr.ma".
+
+include "IntMap/Adist.ma".
+
+include "IntMap/Addec.ma".
+
+include "IntMap/Map.ma".
+
+include "IntMap/Mapaxioms.ma".
+
+include "IntMap/Fset.ma".
+
+include "IntMap/Mapiter.ma".
+
+include "IntMap/Mapsubset.ma".
+
+include "Lists/List.ma".
+
+include "IntMap/Lsort.ma".
+
+include "IntMap/Mapcard.ma".
+
+include "IntMap/Mapcanon.ma".
+
+(* UNEXPORTED
+Section MapC
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapc/MapC/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapc/MapC/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapc/MapC/C.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapPut_as_Merge_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapPut_behind_as_Merge_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapMerge_empty_m_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapMerge_assoc_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapMerge_idempotent_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapMerge_RestrTo_l_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapRemove_as_RestrBy_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDomRestrTo_assoc_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDomRestrTo_idempotent_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDomRestrTo_Dom_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDomRestrBy_Dom_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDomRestrBy_By_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDomRestrBy_By_comm_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDomRestrBy_To_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDomRestrBy_To_comm_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDomRestrTo_By_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDomRestrTo_By_comm_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDomRestrTo_To_comm_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapMerge_DomRestrTo_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapMerge_DomRestrBy_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDelta_nilpotent_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDelta_as_Merge_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDelta_as_DomRestrBy_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDelta_as_DomRestrBy_2_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDelta_sym_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDom_Split_1_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDom_Split_2_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDom_Split_3_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/Map_of_alist_of_Map_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/alist_of_Map_of_alist_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapSubset_antisym_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSubset_antisym_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDisjoint_empty_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/MapDelta_disjoint_c.con" as lemma.
+
+(* UNEXPORTED
+End MapC
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSetDelta_assoc_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSet_ext_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSetUnion_comm_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSetUnion_assoc_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSetUnion_M0_s_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSetUnion_s_M0_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSetUnion_idempotent.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSetInter_comm_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSetInter_assoc_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSetInter_M0_s_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSetInter_s_M0_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSetInter_idempotent.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSetUnion_Inter_l_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSetUnion_Inter_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSetInter_Union_l_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapc/FSetInter_Union_r.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Mapcanon.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Mapcanon.mma
new file mode 100644 (file)
index 0000000..c809f94
--- /dev/null
@@ -0,0 +1,162 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i    $Id: Mapcanon.v,v 1.4 2003/11/29 17:28:31 herbelin Exp $         i*)
+
+include "Bool/Bool.ma".
+
+include "Bool/Sumbool.ma".
+
+include "Arith/Arith.ma".
+
+include "ZArith/ZArith.ma".
+
+include "IntMap/Addr.ma".
+
+include "IntMap/Adist.ma".
+
+include "IntMap/Addec.ma".
+
+include "IntMap/Map.ma".
+
+include "IntMap/Mapaxioms.ma".
+
+include "IntMap/Mapiter.ma".
+
+include "IntMap/Fset.ma".
+
+include "Lists/List.ma".
+
+include "IntMap/Lsort.ma".
+
+include "IntMap/Mapsubset.ma".
+
+include "IntMap/Mapcard.ma".
+
+(* UNEXPORTED
+Section MapCanon
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapcanon/MapCanon/A.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/mapcanon.ind".
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/mapcanon_M2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/mapcanon_M2_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/mapcanon_M2_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/M2_eqmap_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/M2_eqmap_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/mapcanon_unique.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/MapPut1_canon.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/MapPut_canon.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/MapPut_behind_canon.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/makeM2_canon.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/MapCanonicalize.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/mapcanon_exists_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/mapcanon_exists_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/mapcanon_exists.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/MapRemove_canon.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/MapMerge_canon.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/MapDelta_canon.con" as lemma.
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapcanon/MapCanon/B.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/MapDomRestrTo_canon.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/MapDomRestrBy_canon.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/Map_of_alist_canon.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/MapSubset_c_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/MapSubset_c_2.con" as lemma.
+
+(* UNEXPORTED
+End MapCanon
+*)
+
+(* UNEXPORTED
+Section FSetCanon
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapcanon/FSetCanon/A.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/MapDom_canon.con" as lemma.
+
+(* UNEXPORTED
+End FSetCanon
+*)
+
+(* UNEXPORTED
+Section MapFoldCanon
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapcanon/MapFoldCanon/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapcanon/MapFoldCanon/B.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/MapFold_canon_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/MapFold_canon.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcanon/MapCollect_canon.con" as lemma.
+
+(* UNEXPORTED
+End MapFoldCanon
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Mapcard.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Mapcard.mma
new file mode 100644 (file)
index 0000000..2ab1f41
--- /dev/null
@@ -0,0 +1,206 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i    $Id: Mapcard.v,v 1.5 2003/11/29 17:28:31 herbelin Exp $  i*)
+
+include "Bool/Bool.ma".
+
+include "Bool/Sumbool.ma".
+
+include "Arith/Arith.ma".
+
+include "ZArith/ZArith.ma".
+
+include "IntMap/Addr.ma".
+
+include "IntMap/Adist.ma".
+
+include "IntMap/Addec.ma".
+
+include "IntMap/Map.ma".
+
+include "IntMap/Mapaxioms.ma".
+
+include "IntMap/Mapiter.ma".
+
+include "IntMap/Fset.ma".
+
+include "IntMap/Mapsubset.ma".
+
+include "Lists/List.ma".
+
+include "IntMap/Lsort.ma".
+
+include "Arith/Peano_dec.ma".
+
+(* UNEXPORTED
+Section MapCard
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapcard/MapCard/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapcard/MapCard/B.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_M0.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_M1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_is_O.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_is_not_O.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_is_one.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_is_one_unique.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/length_as_fold.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/length_as_fold_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_as_Fold_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_as_Fold.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_as_length.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Put1_equals_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Put_sum.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Put_lb.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Put_ub.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Put_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Put_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Put_1_conv.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Put_2_conv.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_ext.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Dom.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Dom_Put_behind.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Put_behind_Put.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Put_behind_sum.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_makeM2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Remove_sum.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Remove_ub.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Remove_lb.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Remove_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Remove_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Remove_1_conv.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_Remove_2_conv.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapMerge_Restr_Card.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapMerge_disjoint_Card.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapSplit_Card.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapMerge_Card_ub.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapDomRestrTo_Card_ub_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapDomRestrBy_Card_ub_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapMerge_Card_disjoint.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapCard_is_Sn.con" as lemma.
+
+(* UNEXPORTED
+End MapCard
+*)
+
+(* UNEXPORTED
+Section MapCard2
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapcard/MapCard2/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapcard/MapCard2/B.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapSubset_card_eq_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapDomRestrTo_Card_ub_r.con" as lemma.
+
+(* UNEXPORTED
+End MapCard2
+*)
+
+(* UNEXPORTED
+Section MapCard3
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapcard/MapCard3/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapcard/MapCard3/B.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapMerge_Card_lb_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapMerge_Card_lb_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapDomRestrBy_Card_lb.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapSubset_Card_le.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapcard/MapSubset_card_eq.con" as lemma.
+
+(* UNEXPORTED
+End MapCard3
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Mapfold.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Mapfold.mma
new file mode 100644 (file)
index 0000000..bb781b8
--- /dev/null
@@ -0,0 +1,272 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i      $Id: Mapfold.v,v 1.4 2003/11/29 17:28:31 herbelin Exp $      i*)
+
+include "Bool/Bool.ma".
+
+include "Bool/Sumbool.ma".
+
+include "ZArith/ZArith.ma".
+
+include "IntMap/Addr.ma".
+
+include "IntMap/Adist.ma".
+
+include "IntMap/Addec.ma".
+
+include "IntMap/Map.ma".
+
+include "IntMap/Fset.ma".
+
+include "IntMap/Mapaxioms.ma".
+
+include "IntMap/Mapiter.ma".
+
+include "IntMap/Lsort.ma".
+
+include "IntMap/Mapsubset.ma".
+
+include "Lists/List.ma".
+
+(* UNEXPORTED
+Section MapFoldResults
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldResults/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldResults/M.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldResults/neutral.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldResults/op.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldResults/nleft.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldResults/nright.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldResults/assoc.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold_ext.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold_ext_f_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold_ext_f.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold1_as_Fold_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold1_as_Fold.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold1_ext.con" as lemma.
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldResults/comm.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold_Put_disjoint_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold_Put_disjoint_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold_Put_disjoint.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold_Put_behind_disjoint_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold_Put_behind_disjoint.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold_Merge_disjoint_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold_Merge_disjoint.con" as lemma.
+
+(* UNEXPORTED
+End MapFoldResults
+*)
+
+(* UNEXPORTED
+Section MapFoldDistr
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistr/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistr/M.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistr/neutral.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistr/op.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistr/M'.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistr/neutral'.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistr/op'.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistr/N.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistr/times.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistr/absorb.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistr/distr.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold_distr_r_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold_distr_r.con" as lemma.
+
+(* UNEXPORTED
+End MapFoldDistr
+*)
+
+(* UNEXPORTED
+Section MapFoldDistrL
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistrL/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistrL/M.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistrL/neutral.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistrL/op.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistrL/M'.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistrL/neutral'.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistrL/op'.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistrL/N.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistrL/times.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistrL/absorb.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldDistrL/distr.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold_distr_l.con" as lemma.
+
+(* UNEXPORTED
+End MapFoldDistrL
+*)
+
+(* UNEXPORTED
+Section MapFoldExists
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/MapFoldExists/A.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold_orb_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/MapFold_orb.con" as lemma.
+
+(* UNEXPORTED
+End MapFoldExists
+*)
+
+(* UNEXPORTED
+Section DMergeDef
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapfold/DMergeDef/A.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapfold/DMerge.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/in_dom_DMerge_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/in_dom_DMerge_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapfold/in_dom_DMerge_3.con" as lemma.
+
+(* UNEXPORTED
+End DMergeDef
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Mapiter.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Mapiter.mma
new file mode 100644 (file)
index 0000000..89049cc
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i    $Id: Mapiter.v,v 1.4 2003/11/29 17:28:31 herbelin Exp $  i*)
+
+include "Bool/Bool.ma".
+
+include "Bool/Sumbool.ma".
+
+include "ZArith/ZArith.ma".
+
+include "IntMap/Addr.ma".
+
+include "IntMap/Adist.ma".
+
+include "IntMap/Addec.ma".
+
+include "IntMap/Map.ma".
+
+include "IntMap/Mapaxioms.ma".
+
+include "IntMap/Fset.ma".
+
+include "Lists/List.ma".
+
+(* UNEXPORTED
+Section MapIter
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapiter/MapIter/A.var
+*)
+
+(* UNEXPORTED
+Section MapSweepDef
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapiter/MapIter/MapSweepDef/f.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapSweep2.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapSweep1.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapSweep.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapSweep_semantics_1_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapSweep_semantics_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapSweep_semantics_2_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapSweep_semantics_2_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapSweep_semantics_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapSweep_semantics_3_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapSweep_semantics_3.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapSweep_semantics_4_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapSweep_semantics_4.con" as lemma.
+
+(* UNEXPORTED
+End MapSweepDef
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapiter/MapIter/B.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapCollect1.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapCollect.con" as definition.
+
+(* UNEXPORTED
+Section MapFoldDef
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapiter/MapIter/MapFoldDef/M.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapiter/MapIter/MapFoldDef/neutral.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapiter/MapIter/MapFoldDef/op.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapFold1.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapFold.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapFold_empty.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapFold_M1.con" as lemma.
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapiter/MapIter/MapFoldDef/State.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapiter/MapIter/MapFoldDef/f.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapFold1_state.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapFold_state.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/pair_sp.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapFold_state_stateless_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapFold_state_stateless.con" as lemma.
+
+(* UNEXPORTED
+End MapFoldDef
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapCollect_as_Fold.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/alist.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/anil.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/acons.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/aapp.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/alist_of_Map.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/alist_semantics.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/alist_semantics_app.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/alist_of_Map_semantics_1_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/ad_inj.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/ad_comp_double_inj.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/ad_comp_double_plus_un_inj.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/alist_of_Map_semantics_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/alist_of_Map_semantics.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/Map_of_alist.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/Map_of_alist_semantics.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/Map_of_alist_of_Map.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/alist_of_Map_of_alist.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/fold_right_aapp.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapFold_as_fold_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/MapFold_as_fold.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/alist_MapMerge_semantics.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/alist_MapMerge_semantics_disjoint.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapiter/alist_semantics_disjoint_comm.con" as lemma.
+
+(* UNEXPORTED
+End MapIter
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Maplists.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Maplists.mma
new file mode 100644 (file)
index 0000000..984acf3
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i    $Id: Maplists.v,v 1.4 2003/11/29 17:28:31 herbelin Exp $         i*)
+
+include "IntMap/Addr.ma".
+
+include "IntMap/Addec.ma".
+
+include "IntMap/Map.ma".
+
+include "IntMap/Fset.ma".
+
+include "IntMap/Mapaxioms.ma".
+
+include "IntMap/Mapsubset.ma".
+
+include "IntMap/Mapcard.ma".
+
+include "IntMap/Mapcanon.ma".
+
+include "IntMap/Mapc.ma".
+
+include "Bool/Bool.ma".
+
+include "Bool/Sumbool.ma".
+
+include "Lists/List.ma".
+
+include "Arith/Arith.ma".
+
+include "IntMap/Mapiter.ma".
+
+include "IntMap/Mapfold.ma".
+
+(* UNEXPORTED
+Section MapLists
+*)
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_in_list.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_stutters.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_in_list_forms_circuit.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_stutters_has_circuit.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/Elems.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Maplists/Elems_canon.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/Elems_app.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/Elems_rev.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_in_elems_in_list.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_not_stutters_card.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_card.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_stutters_card.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_not_stutters_card_conv.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_stutters_card_conv.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_in_list_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_stutters_app_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_in_list_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_stutters_app_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_stutters_app_conv_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_stutters_app_conv_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_in_list_app_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_in_list_app.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_in_list_rev.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_has_circuit_stutters.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_stutters_prev_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_stutters_prev_conv_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_stutters_prev_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_stutters_prev_conv_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_Elems.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_app_length.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_stutters_permute.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_rev_length.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_stutters_rev.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_app_rev.con" as lemma.
+
+(* UNEXPORTED
+Section ListOfDomDef
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Maplists/MapLists/ListOfDomDef/A.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_of_dom.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_in_list_of_dom_in_dom.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/Elems_of_list_of_dom.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/Elems_of_list_of_dom_c.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_of_dom_card_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_of_dom_card.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_of_dom_not_stutters.con" as lemma.
+
+(* UNEXPORTED
+End ListOfDomDef
+*)
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_of_dom_Dom_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Maplists/ad_list_of_dom_Dom.con" as lemma.
+
+(* UNEXPORTED
+End MapLists
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/IntMap/Mapsubset.mma b/helm/software/matita/contribs/procedural/Coq/IntMap/Mapsubset.mma
new file mode 100644 (file)
index 0000000..700bdeb
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i    $Id: Mapsubset.v,v 1.4 2003/11/29 17:28:32 herbelin Exp $        i*)
+
+include "Bool/Bool.ma".
+
+include "Bool/Sumbool.ma".
+
+include "Arith/Arith.ma".
+
+include "ZArith/ZArith.ma".
+
+include "IntMap/Addr.ma".
+
+include "IntMap/Adist.ma".
+
+include "IntMap/Addec.ma".
+
+include "IntMap/Map.ma".
+
+include "IntMap/Fset.ma".
+
+include "IntMap/Mapaxioms.ma".
+
+include "IntMap/Mapiter.ma".
+
+(* UNEXPORTED
+Section MapSubsetDef
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapsubset/MapSubsetDef/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapsubset/MapSubsetDef/B.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_1.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_2.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_imp_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_1_imp.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/map_dom_empty_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/map_dom_empty_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_imp_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_2_imp.con" as lemma.
+
+(* UNEXPORTED
+End MapSubsetDef
+*)
+
+(* UNEXPORTED
+Section MapSubsetOrder
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapsubset/MapSubsetOrder/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapsubset/MapSubsetOrder/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapsubset/MapSubsetOrder/C.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_refl.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_antisym.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_trans.con" as lemma.
+
+(* UNEXPORTED
+End MapSubsetOrder
+*)
+
+(* UNEXPORTED
+Section FSubsetOrder
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/FSubset_refl.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/FSubset_antisym.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/FSubset_trans.con" as lemma.
+
+(* UNEXPORTED
+End FSubsetOrder
+*)
+
+(* UNEXPORTED
+Section MapSubsetExtra
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapsubset/MapSubsetExtra/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapsubset/MapSubsetExtra/B.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_Dom_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_Dom_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_1_Dom.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_Put.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_Put_mono.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_Put_behind.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_Put_behind_mono.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_Remove.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_Remove_mono.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_Merge_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_Merge_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_Merge_mono.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_DomRestrTo_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_DomRestrTo_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_ext.con" as lemma.
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapsubset/MapSubsetExtra/C.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapsubset/MapSubsetExtra/D.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_DomRestrTo_mono.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_DomRestrBy_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_DomRestrBy_mono.con" as lemma.
+
+(* UNEXPORTED
+End MapSubsetExtra
+*)
+
+(* UNEXPORTED
+Section MapDisjointDef
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapsubset/MapDisjointDef/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapsubset/MapDisjointDef/B.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_1.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_2.con" as definition.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_imp_1.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_1_imp.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_imp_2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_2_imp.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/Map_M0_disjoint.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/Map_disjoint_M0.con" as lemma.
+
+(* UNEXPORTED
+End MapDisjointDef
+*)
+
+(* UNEXPORTED
+Section MapDisjointExtra
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapsubset/MapDisjointExtra/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapsubset/MapDisjointExtra/B.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_ext.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapMerge_disjoint.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_M2_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_M2_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_M2.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_M1_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_M1_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_M1_conv_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_M1_conv_r.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_sym.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDisjoint_empty.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDelta_disjoint.con" as lemma.
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapsubset/MapDisjointExtra/C.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDomRestr_disjoint.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDelta_RestrTo_disjoint.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapDelta_RestrTo_disjoint_2.con" as lemma.
+
+(* UNEXPORTED
+cic:/Coq/IntMap/Mapsubset/MapDisjointExtra/D.var
+*)
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_Disjoint.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_Disjoint_l.con" as lemma.
+
+inline procedural "cic:/Coq/IntMap/Mapsubset/MapSubset_Disjoint_r.con" as lemma.
+
+(* UNEXPORTED
+End MapDisjointExtra
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Lists/List.mma b/helm/software/matita/contribs/procedural/Coq/Lists/List.mma
new file mode 100644 (file)
index 0000000..97ea8c3
--- /dev/null
@@ -0,0 +1,511 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: List.v,v 1.9 2003/12/24 17:10:31 herbelin Exp $ i*)
+
+include "Arith/Le.ma".
+
+(* UNEXPORTED
+Section Lists
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Lists/A.var
+*)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+inline procedural "cic:/Coq/Lists/List/list.ind".
+
+(* NOTATION
+Infix "::" := cons (at level 60, right associativity) : list_scope.
+*)
+
+(* UNEXPORTED
+Open Scope list_scope.
+*)
+
+(*#************************)
+
+(*#* Discrimination       *)
+
+(*#************************)
+
+inline procedural "cic:/Coq/Lists/List/nil_cons.con" as lemma.
+
+(*#************************)
+
+(*#* Concatenation        *)
+
+(*#************************)
+
+inline procedural "cic:/Coq/Lists/List/app.con" as definition.
+
+(* NOTATION
+Infix "++" := app (right associativity, at level 60) : list_scope.
+*)
+
+inline procedural "cic:/Coq/Lists/List/app_nil_end.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve app_nil_end.
+*)
+
+(* UNEXPORTED
+Ltac now_show c := change c in |- *.
+*)
+
+inline procedural "cic:/Coq/Lists/List/app_ass.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve app_ass.
+*)
+
+inline procedural "cic:/Coq/Lists/List/ass_app.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve ass_app.
+*)
+
+inline procedural "cic:/Coq/Lists/List/app_comm_cons.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/app_eq_nil.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/app_cons_not_nil.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/app_eq_unit.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/app_inj_tail.con" as lemma.
+
+(*#************************)
+
+(*#* Head and tail        *)
+
+(*#************************)
+
+inline procedural "cic:/Coq/Lists/List/head.con" as definition.
+
+inline procedural "cic:/Coq/Lists/List/tail.con" as definition.
+
+(*#***************************************)
+
+(*#* Length of lists                     *)
+
+(*#***************************************)
+
+inline procedural "cic:/Coq/Lists/List/length.con" as definition.
+
+(*#*****************************)
+
+(*#* Length order of lists     *)
+
+(*#*****************************)
+
+(* UNEXPORTED
+Section length_order
+*)
+
+inline procedural "cic:/Coq/Lists/List/lel.con" as definition.
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Lists/length_order/a.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Lists/length_order/b.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Lists/length_order/l.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Lists/length_order/m.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Lists/length_order/n.var
+*)
+
+inline procedural "cic:/Coq/Lists/List/lel_refl.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/lel_trans.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/lel_cons_cons.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/lel_cons.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/lel_tail.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/lel_nil.con" as lemma.
+
+(* UNEXPORTED
+End length_order
+*)
+
+(* UNEXPORTED
+Hint Resolve lel_refl lel_cons_cons lel_cons lel_nil lel_nil nil_cons.
+*)
+
+(*#********************************)
+
+(*#* The [In] predicate           *)
+
+(*#********************************)
+
+inline procedural "cic:/Coq/Lists/List/In.con" as definition.
+
+inline procedural "cic:/Coq/Lists/List/in_eq.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve in_eq.
+*)
+
+inline procedural "cic:/Coq/Lists/List/in_cons.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve in_cons.
+*)
+
+inline procedural "cic:/Coq/Lists/List/in_nil.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/in_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/In_dec.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/in_app_or.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate in_app_or.
+*)
+
+inline procedural "cic:/Coq/Lists/List/in_or_app.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve in_or_app.
+*)
+
+(*#**************************)
+
+(*#* Set inclusion on list  *)
+
+(*#**************************)
+
+inline procedural "cic:/Coq/Lists/List/incl.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold incl.
+*)
+
+inline procedural "cic:/Coq/Lists/List/incl_refl.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve incl_refl.
+*)
+
+inline procedural "cic:/Coq/Lists/List/incl_tl.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate incl_tl.
+*)
+
+inline procedural "cic:/Coq/Lists/List/incl_tran.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/incl_appl.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate incl_appl.
+*)
+
+inline procedural "cic:/Coq/Lists/List/incl_appr.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate incl_appr.
+*)
+
+inline procedural "cic:/Coq/Lists/List/incl_cons.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve incl_cons.
+*)
+
+inline procedural "cic:/Coq/Lists/List/incl_app.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve incl_app.
+*)
+
+(*#*************************)
+
+(*#* Nth element of a list *)
+
+(*#*************************)
+
+inline procedural "cic:/Coq/Lists/List/nth.con" as definition.
+
+inline procedural "cic:/Coq/Lists/List/nth_ok.con" as definition.
+
+inline procedural "cic:/Coq/Lists/List/nth_in_or_default.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/nth_S_cons.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/nth_error.con" as definition.
+
+inline procedural "cic:/Coq/Lists/List/nth_default.con" as definition.
+
+inline procedural "cic:/Coq/Lists/List/nth_In.con" as lemma.
+
+(*#*******************************)
+
+(*#* Decidable equality on lists *)
+
+(*#*******************************)
+
+inline procedural "cic:/Coq/Lists/List/list_eq_dec.con" as lemma.
+
+(*#************************)
+
+(*#*  Reverse             *)
+
+(*#************************)
+
+inline procedural "cic:/Coq/Lists/List/rev.con" as definition.
+
+inline procedural "cic:/Coq/Lists/List/distr_rev.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/rev_unit.con" as remark.
+
+inline procedural "cic:/Coq/Lists/List/rev_involutive.con" as lemma.
+
+(*#********************************************)
+
+(*#*  Reverse Induction Principle on Lists    *)
+
+(*#********************************************)
+
+(* UNEXPORTED
+Section Reverse_Induction
+*)
+
+(* UNEXPORTED
+Unset Implicit Arguments.
+*)
+
+inline procedural "cic:/Coq/Lists/List/rev_list_ind.con" as remark.
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+inline procedural "cic:/Coq/Lists/List/rev_ind.con" as lemma.
+
+(* UNEXPORTED
+End Reverse_Induction
+*)
+
+(* UNEXPORTED
+End Lists
+*)
+
+(* UNEXPORTED
+Implicit Arguments nil [A].
+*)
+
+(* UNEXPORTED
+Hint Resolve nil_cons app_nil_end ass_app app_ass: datatypes v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve app_comm_cons app_cons_not_nil: datatypes v62.
+*)
+
+(* UNEXPORTED
+Hint Immediate app_eq_nil: datatypes v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve app_eq_unit app_inj_tail: datatypes v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve lel_refl lel_cons_cons lel_cons lel_nil lel_nil nil_cons:
+  datatypes v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve in_eq in_cons in_inv in_nil in_app_or in_or_app: datatypes v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve incl_refl incl_tl incl_tran incl_appl incl_appr incl_cons
+  incl_app: datatypes v62.
+*)
+
+(* UNEXPORTED
+Section Functions_on_lists
+*)
+
+(*#***************************************************************)
+
+(*#* Some generic functions on lists and basic functions of them *)
+
+(*#***************************************************************)
+
+(* UNEXPORTED
+Section Map
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Functions_on_lists/Map/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Functions_on_lists/Map/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Functions_on_lists/Map/f.var
+*)
+
+inline procedural "cic:/Coq/Lists/List/map.con" as definition.
+
+(* UNEXPORTED
+End Map
+*)
+
+inline procedural "cic:/Coq/Lists/List/in_map.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/flat_map.con" as definition.
+
+inline procedural "cic:/Coq/Lists/List/list_prod.con" as definition.
+
+inline procedural "cic:/Coq/Lists/List/in_prod_aux.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/List/in_prod.con" as lemma.
+
+(*#* [(list_power x y)] is [y^x], or the set of sequences of elts of [y]
+    indexed by elts of [x], sorted in lexicographic order. *)
+
+inline procedural "cic:/Coq/Lists/List/list_power.con" as definition.
+
+(*#***********************************)
+
+(*#* Left-to-right iterator on lists *)
+
+(*#***********************************)
+
+(* UNEXPORTED
+Section Fold_Left_Recursor
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Functions_on_lists/Fold_Left_Recursor/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Functions_on_lists/Fold_Left_Recursor/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Functions_on_lists/Fold_Left_Recursor/f.var
+*)
+
+inline procedural "cic:/Coq/Lists/List/fold_left.con" as definition.
+
+(* UNEXPORTED
+End Fold_Left_Recursor
+*)
+
+(*#***********************************)
+
+(*#* Right-to-left iterator on lists *)
+
+(*#***********************************)
+
+(* UNEXPORTED
+Section Fold_Right_Recursor
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Functions_on_lists/Fold_Right_Recursor/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Functions_on_lists/Fold_Right_Recursor/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Functions_on_lists/Fold_Right_Recursor/f.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/List/Functions_on_lists/Fold_Right_Recursor/a0.var
+*)
+
+inline procedural "cic:/Coq/Lists/List/fold_right.con" as definition.
+
+(* UNEXPORTED
+End Fold_Right_Recursor
+*)
+
+inline procedural "cic:/Coq/Lists/List/fold_symmetric.con" as theorem.
+
+(* UNEXPORTED
+End Functions_on_lists
+*)
+
+(*#* Exporting list notations *)
+
+(* NOTATION
+Infix "::" := cons (at level 60, right associativity) : list_scope.
+*)
+
+(* NOTATION
+Infix "++" := app (right associativity, at level 60) : list_scope.
+*)
+
+(* UNEXPORTED
+Open Scope list_scope.
+*)
+
+(*#* Declare Scope list_scope with key list *)
+
+(* UNEXPORTED
+Delimit Scope list_scope with list.
+*)
+
+(* UNEXPORTED
+Bind Scope list_scope with list.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Lists/ListSet.mma b/helm/software/matita/contribs/procedural/Coq/Lists/ListSet.mma
new file mode 100644 (file)
index 0000000..2ca6c0f
--- /dev/null
@@ -0,0 +1,192 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: ListSet.v,v 1.13 2003/11/29 17:28:32 herbelin Exp $ i*)
+
+(*#* A Library for finite sets, implemented as lists 
+    A Library with similar interface will soon be available under
+    the name TreeSet in the theories/Trees directory *)
+
+(*#* PolyList is loaded, but not exported.
+    This allow to "hide" the definitions, functions and theorems of PolyList
+    and to see only the ones of ListSet *)
+
+include "Lists/List.ma".
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(* UNEXPORTED
+Section first_definitions
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/ListSet/first_definitions/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/ListSet/first_definitions/Aeq_dec.var
+*)
+
+inline procedural "cic:/Coq/Lists/ListSet/set.con" as definition.
+
+inline procedural "cic:/Coq/Lists/ListSet/empty_set.con" as definition.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_add.con" as definition.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_mem.con" as definition.
+
+(*#* If [a] belongs to [x], removes [a] from [x]. If not, does nothing *)
+
+inline procedural "cic:/Coq/Lists/ListSet/set_remove.con" as definition.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_inter.con" as definition.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_union.con" as definition.
+
+(*#* returns the set of all els of [x] that does not belong to [y] *)
+
+inline procedural "cic:/Coq/Lists/ListSet/set_diff.con" as definition.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_In.con" as definition.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_In_dec.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_mem_ind.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_mem_ind2.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_mem_correct1.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_mem_correct2.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_mem_complete1.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_mem_complete2.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_add_intro1.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_add_intro2.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve set_add_intro1 set_add_intro2.
+*)
+
+inline procedural "cic:/Coq/Lists/ListSet/set_add_intro.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_add_elim.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_add_elim2.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve set_add_intro set_add_elim set_add_elim2.
+*)
+
+inline procedural "cic:/Coq/Lists/ListSet/set_add_not_empty.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_union_intro1.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_union_intro2.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve set_union_intro2 set_union_intro1.
+*)
+
+inline procedural "cic:/Coq/Lists/ListSet/set_union_intro.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_union_elim.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_union_emptyL.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_union_emptyR.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_inter_intro.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_inter_elim1.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_inter_elim2.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve set_inter_elim1 set_inter_elim2.
+*)
+
+inline procedural "cic:/Coq/Lists/ListSet/set_inter_elim.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_diff_intro.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_diff_elim1.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_diff_elim2.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_diff_trivial.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve set_diff_intro set_diff_trivial.
+*)
+
+(* UNEXPORTED
+End first_definitions
+*)
+
+(* UNEXPORTED
+Section other_definitions
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/ListSet/other_definitions/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/ListSet/other_definitions/B.var
+*)
+
+inline procedural "cic:/Coq/Lists/ListSet/set_prod.con" as definition.
+
+(*#* [B^A], set of applications from [A] to [B] *)
+
+inline procedural "cic:/Coq/Lists/ListSet/set_power.con" as definition.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_map.con" as definition.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_fold_left.con" as definition.
+
+inline procedural "cic:/Coq/Lists/ListSet/set_fold_right.con" as definition.
+
+(* UNEXPORTED
+End other_definitions
+*)
+
+(* UNEXPORTED
+Unset Implicit Arguments.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Lists/MonoList.mma b/helm/software/matita/contribs/procedural/Coq/Lists/MonoList.mma
new file mode 100644 (file)
index 0000000..b201747
--- /dev/null
@@ -0,0 +1,203 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: MonoList.v,v 1.2 2003/11/29 17:28:32 herbelin Exp $ i*)
+
+(*#* THIS IS A OLD CONTRIB. IT IS NO LONGER MAINTAINED ***)
+
+include "Arith/Le.ma".
+
+inline procedural "cic:/Coq/Lists/MonoList/List_Dom.con".
+
+inline procedural "cic:/Coq/Lists/MonoList/A.con" as definition.
+
+inline procedural "cic:/Coq/Lists/MonoList/list.ind".
+
+inline procedural "cic:/Coq/Lists/MonoList/app.con" as definition.
+
+inline procedural "cic:/Coq/Lists/MonoList/app_nil_end.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve app_nil_end: list v62.
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/app_ass.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve app_ass: list v62.
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/ass_app.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve ass_app: list v62.
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/tail.con" as definition.
+
+inline procedural "cic:/Coq/Lists/MonoList/nil_cons.con" as lemma.
+
+(*#***************************************)
+
+(* Length of lists                      *)
+
+(*#***************************************)
+
+inline procedural "cic:/Coq/Lists/MonoList/length.con" as definition.
+
+(*#*****************************)
+
+(* Length order of lists      *)
+
+(*#*****************************)
+
+(* UNEXPORTED
+Section length_order
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/lel.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold lel: list.
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/MonoList/length_order/a.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/MonoList/length_order/b.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/MonoList/length_order/l.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/MonoList/length_order/m.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/MonoList/length_order/n.var
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/lel_refl.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/MonoList/lel_trans.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/MonoList/lel_cons_cons.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/MonoList/lel_cons.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/MonoList/lel_tail.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/MonoList/lel_nil.con" as lemma.
+
+(* UNEXPORTED
+End length_order
+*)
+
+(* UNEXPORTED
+Hint Resolve lel_refl lel_cons_cons lel_cons lel_nil lel_nil nil_cons: list
+  v62.
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/In.con" as definition.
+
+inline procedural "cic:/Coq/Lists/MonoList/in_eq.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve in_eq: list v62.
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/in_cons.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve in_cons: list v62.
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/in_app_or.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate in_app_or: list v62.
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/in_or_app.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve in_or_app: list v62.
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/incl.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold incl: list v62.
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/incl_refl.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve incl_refl: list v62.
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/incl_tl.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate incl_tl: list v62.
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/incl_tran.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/MonoList/incl_appl.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate incl_appl: list v62.
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/incl_appr.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate incl_appr: list v62.
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/incl_cons.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve incl_cons: list v62.
+*)
+
+inline procedural "cic:/Coq/Lists/MonoList/incl_app.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve incl_app: list v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Lists/TheoryList.mma b/helm/software/matita/contribs/procedural/Coq/Lists/TheoryList.mma
new file mode 100644 (file)
index 0000000..ac0cf51
--- /dev/null
@@ -0,0 +1,292 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: TheoryList.v,v 1.15 2004/03/28 14:41:45 herbelin Exp $ i*)
+
+(*#* Some programs and results about lists following CAML Manual *)
+
+include "Lists/List.ma".
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(* UNEXPORTED
+Section Lists
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/TheoryList/Lists/A.var
+*)
+
+(*#*********************)
+
+(*#* The null function *)
+
+(*#*********************)
+
+inline procedural "cic:/Coq/Lists/TheoryList/Isnil.con" as definition.
+
+inline procedural "cic:/Coq/Lists/TheoryList/Isnil_nil.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Isnil_nil.
+*)
+
+inline procedural "cic:/Coq/Lists/TheoryList/not_Isnil_cons.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Isnil_nil not_Isnil_cons.
+*)
+
+inline procedural "cic:/Coq/Lists/TheoryList/Isnil_dec.con" as lemma.
+
+(*#***********************)
+
+(*#* The Uncons function *)
+
+(*#***********************)
+
+inline procedural "cic:/Coq/Lists/TheoryList/Uncons.con" as lemma.
+
+(*#*******************************)
+
+(*#* The head function           *)
+
+(*#*******************************)
+
+inline procedural "cic:/Coq/Lists/TheoryList/Hd.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/TheoryList/Tl.con" as lemma.
+
+(*#***************************************)
+
+(*#* Length of lists                     *)
+
+(*#***************************************)
+
+(* length is defined in List *)
+
+inline procedural "cic:/Coq/Lists/TheoryList/Length_l.con" as definition.
+
+(* A tail recursive version *)
+
+inline procedural "cic:/Coq/Lists/TheoryList/Length_l_pf.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/TheoryList/Length.con" as lemma.
+
+(*#******************************)
+
+(*#* Members of lists           *)
+
+(*#******************************)
+
+inline procedural "cic:/Coq/Lists/TheoryList/In_spec.ind".
+
+(* UNEXPORTED
+Hint Resolve in_hd in_tl.
+*)
+
+(* UNEXPORTED
+Hint Unfold In.
+*)
+
+(* UNEXPORTED
+Hint Resolve in_cons.
+*)
+
+inline procedural "cic:/Coq/Lists/TheoryList/In_In_spec.con" as theorem.
+
+inline procedural "cic:/Coq/Lists/TheoryList/AllS.ind".
+
+(* UNEXPORTED
+Hint Resolve allS_nil allS_cons.
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/TheoryList/Lists/eqA_dec.var
+*)
+
+inline procedural "cic:/Coq/Lists/TheoryList/mem.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold In.
+*)
+
+inline procedural "cic:/Coq/Lists/TheoryList/Mem.con" as lemma.
+
+(*#********************************)
+
+(*#* Index of elements            *)
+
+(*#********************************)
+
+include "Arith/Le.ma".
+
+include "Arith/Lt.ma".
+
+inline procedural "cic:/Coq/Lists/TheoryList/nth_spec.ind".
+
+(* UNEXPORTED
+Hint Resolve nth_spec_O nth_spec_S.
+*)
+
+inline procedural "cic:/Coq/Lists/TheoryList/fst_nth_spec.ind".
+
+(* UNEXPORTED
+Hint Resolve fst_nth_O fst_nth_S.
+*)
+
+inline procedural "cic:/Coq/Lists/TheoryList/fst_nth_nth.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate fst_nth_nth.
+*)
+
+inline procedural "cic:/Coq/Lists/TheoryList/nth_lt_O.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/TheoryList/nth_le_length.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/TheoryList/Nth_func.con" as definition.
+
+inline procedural "cic:/Coq/Lists/TheoryList/Nth.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/TheoryList/Item.con" as lemma.
+
+include "Arith/Minus.ma".
+
+include "Bool/DecBool.ma".
+
+inline procedural "cic:/Coq/Lists/TheoryList/index_p.con" as definition.
+
+inline procedural "cic:/Coq/Lists/TheoryList/Index_p.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/TheoryList/Index.con" as lemma.
+
+(* UNEXPORTED
+Section Find_sec
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/TheoryList/Lists/Find_sec/R.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/TheoryList/Lists/Find_sec/P.var
+*)
+
+inline procedural "cic:/Coq/Lists/TheoryList/InR.ind".
+
+(* UNEXPORTED
+Hint Resolve inR_hd inR_tl.
+*)
+
+inline procedural "cic:/Coq/Lists/TheoryList/InR_inv.con" as definition.
+
+inline procedural "cic:/Coq/Lists/TheoryList/InR_INV.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/TheoryList/InR_cons_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/TheoryList/InR_or_app.con" as lemma.
+
+inline procedural "cic:/Coq/Lists/TheoryList/InR_app_or.con" as lemma.
+
+(* UNEXPORTED
+cic:/Coq/Lists/TheoryList/Lists/Find_sec/RS_dec.var
+*)
+
+inline procedural "cic:/Coq/Lists/TheoryList/find.con" as definition.
+
+inline procedural "cic:/Coq/Lists/TheoryList/Find.con" as lemma.
+
+(* UNEXPORTED
+cic:/Coq/Lists/TheoryList/Lists/Find_sec/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/TheoryList/Lists/Find_sec/T.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/TheoryList/Lists/Find_sec/TS_dec.var
+*)
+
+inline procedural "cic:/Coq/Lists/TheoryList/try_find.con" as definition.
+
+inline procedural "cic:/Coq/Lists/TheoryList/Try_find.con" as lemma.
+
+(* UNEXPORTED
+End Find_sec
+*)
+
+(* UNEXPORTED
+Section Assoc_sec
+*)
+
+(* UNEXPORTED
+cic:/Coq/Lists/TheoryList/Lists/Assoc_sec/B.var
+*)
+
+inline procedural "cic:/Coq/Lists/TheoryList/assoc.con" as definition.
+
+inline procedural "cic:/Coq/Lists/TheoryList/AllS_assoc.ind".
+
+(* UNEXPORTED
+Hint Resolve allS_assoc_nil allS_assoc_cons.
+*)
+
+(* The specification seems too weak: it is enough to return b if the
+   list has at least an element (a,b); probably the intention is to have
+   the specification
+
+   (a:A)(l:(list A*B)){b:B|(In_spec (a,b) l)}+{(AllS_assoc [a':A]~(a=a') l)}.
+*)
+
+inline procedural "cic:/Coq/Lists/TheoryList/Assoc.con" as lemma.
+
+(* UNEXPORTED
+End Assoc_sec
+*)
+
+(* UNEXPORTED
+End Lists
+*)
+
+(* UNEXPORTED
+Hint Resolve Isnil_nil not_Isnil_cons in_hd in_tl in_cons allS_nil allS_cons:
+  datatypes.
+*)
+
+(* UNEXPORTED
+Hint Immediate fst_nth_nth: datatypes.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/Berardi.mma b/helm/software/matita/contribs/procedural/Coq/Logic/Berardi.mma
new file mode 100644 (file)
index 0000000..e8f8fe9
--- /dev/null
@@ -0,0 +1,161 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Berardi.v,v 1.5 2003/11/29 17:28:33 herbelin Exp $ i*)
+
+(*#* This file formalizes Berardi's paradox which says that in
+   the calculus of constructions, excluded middle (EM) and axiom of
+   choice (AC) implie proof irrelevenace (PI).
+   Here, the axiom of choice is not necessary because of the use
+   of inductive types.
+<<
+@article{Barbanera-Berardi:JFP96,
+   author    = {F. Barbanera and S. Berardi},
+   title     = {Proof-irrelevance out of Excluded-middle and Choice
+                in the Calculus of Constructions},
+   journal   = {Journal of Functional Programming},
+   year      = {1996},
+   volume    = {6},
+   number    = {3},
+   pages     = {519-525}
+}
+>> *)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(* UNEXPORTED
+Section Berardis_paradox
+*)
+
+(*#* Excluded middle *)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Berardi/Berardis_paradox/EM.var
+*)
+
+(*#* Conditional on any proposition. *)
+
+inline procedural "cic:/Coq/Logic/Berardi/IFProp.con" as definition.
+
+(*#* Axiom of choice applied to disjunction.
+    Provable in Coq because of dependent elimination. *)
+
+inline procedural "cic:/Coq/Logic/Berardi/AC_IF.con" as lemma.
+
+(*#* We assume a type with two elements. They play the role of booleans.
+    The main theorem under the current assumptions is that [T=F] *)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Berardi/Berardis_paradox/Bool.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Berardi/Berardis_paradox/T.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Berardi/Berardis_paradox/F.var
+*)
+
+(*#* The powerset operator *)
+
+inline procedural "cic:/Coq/Logic/Berardi/pow.con" as definition.
+
+(*#* A piece of theory about retracts *)
+
+(* UNEXPORTED
+Section Retracts
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Berardi/Berardis_paradox/Retracts/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Berardi/Berardis_paradox/Retracts/B.var
+*)
+
+inline procedural "cic:/Coq/Logic/Berardi/retract.ind".
+
+inline procedural "cic:/Coq/Logic/Berardi/retract_cond.ind".
+
+(*#* The dependent elimination above implies the axiom of choice: *)
+
+inline procedural "cic:/Coq/Logic/Berardi/AC.con" as lemma.
+
+(* UNEXPORTED
+End Retracts
+*)
+
+(*#* This lemma is basically a commutation of implication and existential
+    quantification:  (EX x | A -> P(x))  <=> (A -> EX x | P(x))
+    which is provable in classical logic ( => is already provable in
+    intuitionnistic logic). *)
+
+inline procedural "cic:/Coq/Logic/Berardi/L1.con" as lemma.
+
+(*#* The paradoxical set *)
+
+inline procedural "cic:/Coq/Logic/Berardi/U.con" as definition.
+
+(*#* Bijection between [U] and [(pow U)] *)
+
+inline procedural "cic:/Coq/Logic/Berardi/f.con" as definition.
+
+inline procedural "cic:/Coq/Logic/Berardi/g.con" as definition.
+
+(*#* We deduce that the powerset of [U] is a retract of [U].
+    This lemma is stated in Berardi's article, but is not used
+    afterwards. *)
+
+inline procedural "cic:/Coq/Logic/Berardi/retract_pow_U_U.con" as lemma.
+
+(*#* Encoding of Russel's paradox *)
+
+(*#* The boolean negation. *)
+
+inline procedural "cic:/Coq/Logic/Berardi/Not_b.con" as definition.
+
+(*#* the set of elements not belonging to itself *)
+
+inline procedural "cic:/Coq/Logic/Berardi/R.con" as definition.
+
+inline procedural "cic:/Coq/Logic/Berardi/not_has_fixpoint.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Berardi/classical_proof_irrelevence.con" as theorem.
+
+(* UNEXPORTED
+End Berardis_paradox
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/ChoiceFacts.mma b/helm/software/matita/contribs/procedural/Coq/Logic/ChoiceFacts.mma
new file mode 100644 (file)
index 0000000..83fa4cf
--- /dev/null
@@ -0,0 +1,71 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: ChoiceFacts.v,v 1.7 2003/12/24 10:27:05 barras Exp $ i*)
+
+(* We show that the functional formulation of the axiom of Choice
+   (usual formulation in type theory) is equivalent to its relational
+   formulation (only formulation of set theory) + the axiom of
+   (parametric) definite description (aka axiom of unique choice) *)
+
+(* This shows that the axiom of choice can be assumed (under its
+   relational formulation) without known inconsistency with classical logic,
+   though definite description conflicts with classical logic *)
+
+inline procedural "cic:/Coq/Logic/ChoiceFacts/RelationalChoice.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ChoiceFacts/FunctionalChoice.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ChoiceFacts/ParamDefiniteDescription.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ChoiceFacts/description_rel_choice_imp_funct_choice.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/ChoiceFacts/funct_choice_imp_rel_choice.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/ChoiceFacts/funct_choice_imp_description.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/ChoiceFacts/FunChoice_Equiv_RelChoice_and_ParamDefinDescr.con" as theorem.
+
+(* We show that the guarded relational formulation of the axiom of Choice
+   comes from the non guarded formulation in presence either of the
+   independance of premises or proof-irrelevance *)
+
+inline procedural "cic:/Coq/Logic/ChoiceFacts/GuardedRelationalChoice.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ChoiceFacts/ProofIrrelevance.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ChoiceFacts/rel_choice_and_proof_irrel_imp_guarded_rel_choice.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/ChoiceFacts/IndependenceOfPremises.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ChoiceFacts/rel_choice_indep_of_premises_imp_guarded_rel_choice.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/Classical.mma b/helm/software/matita/contribs/procedural/Coq/Logic/Classical.mma
new file mode 100644 (file)
index 0000000..707a91a
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Classical.v,v 1.6 2003/11/29 17:28:33 herbelin Exp $ i*)
+
+(*#* Classical Logic *)
+
+include "Logic/Classical_Prop.ma".
+
+include "Logic/Classical_Pred_Type.ma".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/ClassicalChoice.mma b/helm/software/matita/contribs/procedural/Coq/Logic/ClassicalChoice.mma
new file mode 100644 (file)
index 0000000..13c713a
--- /dev/null
@@ -0,0 +1,51 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: ClassicalChoice.v,v 1.4 2003/12/15 19:48:19 barras Exp $ i*)
+
+(*#* This file provides classical logic and functional choice *)
+
+(*#* This file extends ClassicalDescription.v with the axiom of choice.
+    As ClassicalDescription.v, it implies the double-negation of
+    excluded-middle in Set and implies a strongly classical
+    world. Especially it conflicts with impredicativity of Set, knowing
+    that true<>false in Set.
+*)
+
+include "Logic/ClassicalDescription.ma".
+
+include "Logic/RelationalChoice.ma".
+
+include "Logic/ChoiceFacts.ma".
+
+inline procedural "cic:/Coq/Logic/ClassicalChoice/choice.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/ClassicalDescription.mma b/helm/software/matita/contribs/procedural/Coq/Logic/ClassicalDescription.mma
new file mode 100644 (file)
index 0000000..7ab50d0
--- /dev/null
@@ -0,0 +1,58 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: ClassicalDescription.v,v 1.7 2004/03/17 00:11:13 herbelin Exp $ i*)
+
+(*#* This file provides classical logic and definite description *)
+
+(*#* Classical logic and definite description, as shown in [1],
+    implies the double-negation of excluded-middle in Set, hence it
+    implies a strongly classical world. Especially it conflicts with
+    impredicativity of Set, knowing that true<>false in Set.
+
+    [1] Laurent Chicli, Loïc Pottier, Carlos Simpson, Mathematical
+    Quotients and Quotient Types in Coq, Proceedings of TYPES 2002,
+    Lecture Notes in Computer Science 2646, Springer Verlag.
+*)
+
+include "Logic/Classical.ma".
+
+inline procedural "cic:/Coq/Logic/ClassicalDescription/dependent_description.con".
+
+(*#* Principle of definite descriptions (aka axiom of unique choice) *)
+
+inline procedural "cic:/Coq/Logic/ClassicalDescription/description.con" as theorem.
+
+(*#* The followig proof comes from [1] *)
+
+inline procedural "cic:/Coq/Logic/ClassicalDescription/classic_set.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/ClassicalFacts.mma b/helm/software/matita/contribs/procedural/Coq/Logic/ClassicalFacts.mma
new file mode 100644 (file)
index 0000000..f3aaa44
--- /dev/null
@@ -0,0 +1,196 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: ClassicalFacts.v,v 1.6 2004/03/17 00:11:13 herbelin Exp $ i*)
+
+(*#* Some facts and definitions about classical logic *)
+
+(*#* [prop_degeneracy] (also referred as propositional completeness) *)
+
+(*  asserts (up to consistency) that there are only two distinct formulas *)
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/prop_degeneracy.con" as definition.
+
+(*#* [prop_extensionality] asserts equivalent formulas are equal *)
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/prop_extensionality.con" as definition.
+
+(*#* [excluded_middle] asserts we can reason by case on the truth *)
+
+(*  or falsity of any formula *)
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/excluded_middle.con" as definition.
+
+(*#* [proof_irrelevance] asserts equality of all proofs of a given formula *)
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/proof_irrelevance.con" as definition.
+
+(*#* We show [prop_degeneracy <-> (prop_extensionality /\ excluded_middle)] *)
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/prop_degen_ext.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/prop_degen_em.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/prop_ext_em_degen.con" as lemma.
+
+(*#* We successively show that:
+
+   [prop_extensionality]
+     implies equality of [A] and [A->A] for inhabited [A], which 
+     implies the existence of a (trivial) retract from [A->A] to [A]
+        (just take the identity), which
+     implies the existence of a fixpoint operator in [A]
+        (e.g. take the Y combinator of lambda-calculus)
+*)
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/inhabited.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/prop_ext_A_eq_A_imp_A.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/retract.ind".
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/prop_ext_retract_A_A_imp_A.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/has_fixpoint.ind".
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/ext_prop_fixpoint.con" as lemma.
+
+(*#* Assume we have booleans with the property that there is at most 2
+    booleans (which is equivalent to dependent case analysis). Consider
+    the fixpoint of the negation function: it is either true or false by
+    dependent case analysis, but also the opposite by fixpoint. Hence
+    proof-irrelevance.
+
+    We then map bool proof-irrelevance to all propositions.
+*)
+
+(* UNEXPORTED
+Section Proof_irrelevance_gen
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ClassicalFacts/Proof_irrelevance_gen/bool.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ClassicalFacts/Proof_irrelevance_gen/true.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ClassicalFacts/Proof_irrelevance_gen/false.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ClassicalFacts/Proof_irrelevance_gen/bool_elim.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ClassicalFacts/Proof_irrelevance_gen/bool_elim_redl.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ClassicalFacts/Proof_irrelevance_gen/bool_elim_redr.var
+*)
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/Proof_irrelevance_gen/bool_dep_induction.con" "Proof_irrelevance_gen__" as definition.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/aux.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/ext_prop_dep_proof_irrel_gen.con" as lemma.
+
+(* UNEXPORTED
+End Proof_irrelevance_gen
+*)
+
+(*#* In the pure Calculus of Constructions, we can define the boolean
+    proposition bool = (C:Prop)C->C->C but we cannot prove that it has at
+    most 2 elements.
+*)
+
+(* UNEXPORTED
+Section Proof_irrelevance_CC
+*)
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/BoolP.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/TrueP.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/FalseP.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/BoolP_elim.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/BoolP_elim_redl.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/BoolP_elim_redr.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/BoolP_dep_induction.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/ext_prop_dep_proof_irrel_cc.con" as lemma.
+
+(* UNEXPORTED
+End Proof_irrelevance_CC
+*)
+
+(*#* In the Calculus of Inductive Constructions, inductively defined booleans
+    enjoy dependent case analysis, hence directly proof-irrelevance from
+    propositional extensionality.
+*)
+
+(* UNEXPORTED
+Section Proof_irrelevance_CIC
+*)
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/boolP.ind".
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/boolP_elim_redl.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/boolP_elim_redr.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/boolP_indd.con" as theorem.
+
+inline procedural "cic:/Coq/Logic/ClassicalFacts/ext_prop_dep_proof_irrel_cic.con" as lemma.
+
+(* UNEXPORTED
+End Proof_irrelevance_CIC
+*)
+
+(*#* Can we state proof irrelevance from propositional degeneracy
+  (i.e. propositional extensionality + excluded middle) without
+  dependent case analysis ?
+
+  Conjecture: it seems possible to build a model of CC interpreting
+  all non-empty types by the set of all lambda-terms. Such a model would
+  satisfy propositional degeneracy without satisfying proof-irrelevance
+  (nor dependent case analysis). This would imply that the previous
+  results cannot be refined.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/Classical_Pred_Set.mma b/helm/software/matita/contribs/procedural/Coq/Logic/Classical_Pred_Set.mma
new file mode 100644 (file)
index 0000000..108d948
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Classical_Pred_Set.v,v 1.6 2003/12/15 19:48:19 barras Exp $ i*)
+
+(*#* Classical Predicate Logic on Set*)
+
+include "Logic/Classical_Prop.ma".
+
+(* UNEXPORTED
+Section Generic
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Classical_Pred_Set/Generic/U.var
+*)
+
+(*#* de Morgan laws for quantifiers *)
+
+inline procedural "cic:/Coq/Logic/Classical_Pred_Set/not_all_ex_not.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Pred_Set/not_all_not_ex.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Pred_Set/not_ex_all_not.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Pred_Set/not_ex_not_all.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Pred_Set/ex_not_not_all.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Pred_Set/all_not_not_ex.con" as lemma.
+
+(* UNEXPORTED
+End Generic
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/Classical_Pred_Type.mma b/helm/software/matita/contribs/procedural/Coq/Logic/Classical_Pred_Type.mma
new file mode 100644 (file)
index 0000000..d943a2b
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Classical_Pred_Type.v,v 1.6 2003/12/15 19:48:19 barras Exp $ i*)
+
+(*#* Classical Predicate Logic on Type *)
+
+include "Logic/Classical_Prop.ma".
+
+(* UNEXPORTED
+Section Generic
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Classical_Pred_Type/Generic/U.var
+*)
+
+(*#* de Morgan laws for quantifiers *)
+
+inline procedural "cic:/Coq/Logic/Classical_Pred_Type/not_all_ex_not.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Pred_Type/not_all_not_ex.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Pred_Type/not_ex_all_not.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Pred_Type/not_ex_not_all.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Pred_Type/ex_not_not_all.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Pred_Type/all_not_not_ex.con" as lemma.
+
+(* UNEXPORTED
+End Generic
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/Classical_Prop.mma b/helm/software/matita/contribs/procedural/Coq/Logic/Classical_Prop.mma
new file mode 100644 (file)
index 0000000..17eee4b
--- /dev/null
@@ -0,0 +1,70 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Classical_Prop.v,v 1.6 2003/11/29 17:28:33 herbelin Exp $ i*)
+
+(*#* Classical Propositional Logic *)
+
+include "Logic/ProofIrrelevance.ma".
+
+(* UNEXPORTED
+Hint Unfold not: core.
+*)
+
+inline procedural "cic:/Coq/Logic/Classical_Prop/classic.con".
+
+inline procedural "cic:/Coq/Logic/Classical_Prop/NNPP.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Prop/not_imply_elim.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Prop/not_imply_elim2.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Prop/imply_to_or.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Prop/imply_to_and.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Prop/or_to_imply.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Prop/not_and_or.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Prop/or_not_and.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Prop/not_or_and.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Prop/and_not_or.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Prop/imply_and_or.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Prop/imply_and_or2.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Classical_Prop/proof_irrelevance.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/Classical_Type.mma b/helm/software/matita/contribs/procedural/Coq/Logic/Classical_Type.mma
new file mode 100644 (file)
index 0000000..5fe5ea0
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Classical_Type.v,v 1.5 2003/11/29 17:28:33 herbelin Exp $ i*)
+
+(*#* Classical Logic for Type *)
+
+include "Logic/Classical_Prop.ma".
+
+include "Logic/Classical_Pred_Type.ma".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/Decidable.mma b/helm/software/matita/contribs/procedural/Coq/Logic/Decidable.mma
new file mode 100644 (file)
index 0000000..166425e
--- /dev/null
@@ -0,0 +1,62 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i    $Id: Decidable.v,v 1.5 2003/11/29 17:28:33 herbelin Exp $        i*)
+
+(*#* Properties of decidable propositions *)
+
+inline procedural "cic:/Coq/Logic/Decidable/decidable.con" as definition.
+
+inline procedural "cic:/Coq/Logic/Decidable/dec_not_not.con" as theorem.
+
+inline procedural "cic:/Coq/Logic/Decidable/dec_True.con" as theorem.
+
+inline procedural "cic:/Coq/Logic/Decidable/dec_False.con" as theorem.
+
+inline procedural "cic:/Coq/Logic/Decidable/dec_or.con" as theorem.
+
+inline procedural "cic:/Coq/Logic/Decidable/dec_and.con" as theorem.
+
+inline procedural "cic:/Coq/Logic/Decidable/dec_not.con" as theorem.
+
+inline procedural "cic:/Coq/Logic/Decidable/dec_imp.con" as theorem.
+
+inline procedural "cic:/Coq/Logic/Decidable/not_not.con" as theorem.
+
+inline procedural "cic:/Coq/Logic/Decidable/not_or.con" as theorem.
+
+inline procedural "cic:/Coq/Logic/Decidable/not_and.con" as theorem.
+
+inline procedural "cic:/Coq/Logic/Decidable/not_imp.con" as theorem.
+
+inline procedural "cic:/Coq/Logic/Decidable/imp_simp.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/Diaconescu.mma b/helm/software/matita/contribs/procedural/Coq/Logic/Diaconescu.mma
new file mode 100644 (file)
index 0000000..1947fdb
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Diaconescu.v,v 1.5 2003/12/24 10:27:05 barras Exp $ i*)
+
+(* R. Diaconescu [Diaconescu] showed that the Axiom of Choice in Set Theory
+   entails Excluded-Middle; S. Lacas and B. Werner [LacasWerner]
+   adapted the proof to show that the axiom of choice in equivalence
+   classes entails Excluded-Middle in Type Theory.
+
+   This is an adaptatation of the proof by Hugo Herbelin to show that
+   the relational form of the Axiom of Choice + Extensionality for
+   predicates entails Excluded-Middle
+
+   [Diaconescu] R. Diaconescu, Axiom of Choice and Complementation, in
+   Proceedings of AMS, vol 51, pp 176-178, 1975.
+
+   [LacasWerner] S. Lacas, B Werner, Which Choices imply the excluded middle?,
+   preprint, 1999.
+
+*)
+
+(* UNEXPORTED
+Section PredExt_GuardRelChoice_imp_EM
+*)
+
+(* The axiom of extensionality for predicates *)
+
+inline procedural "cic:/Coq/Logic/Diaconescu/PredicateExtensionality.con" as definition.
+
+(* From predicate extensionality we get propositional extensionality
+   hence proof-irrelevance *)
+
+include "Logic/ClassicalFacts.ma".
+
+(* UNEXPORTED
+cic:/Coq/Logic/Diaconescu/PredExt_GuardRelChoice_imp_EM/pred_extensionality.var
+*)
+
+inline procedural "cic:/Coq/Logic/Diaconescu/prop_ext.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Diaconescu/proof_irrel.con" as lemma.
+
+(* From proof-irrelevance and relational choice, we get guarded
+   relational choice *)
+
+include "Logic/ChoiceFacts.ma".
+
+(* UNEXPORTED
+cic:/Coq/Logic/Diaconescu/PredExt_GuardRelChoice_imp_EM/rel_choice.var
+*)
+
+inline procedural "cic:/Coq/Logic/Diaconescu/guarded_rel_choice.con" as lemma.
+
+(* The form of choice we need: there is a functional relation which chooses
+   an element in any non empty subset of bool *)
+
+include "Bool/Bool.ma".
+
+inline procedural "cic:/Coq/Logic/Diaconescu/AC.con" as lemma.
+
+(* The proof of the excluded middle *)
+
+(* Remark: P could have been in Set or Type *)
+
+inline procedural "cic:/Coq/Logic/Diaconescu/pred_ext_and_rel_choice_imp_EM.con" as theorem.
+
+(* UNEXPORTED
+End PredExt_GuardRelChoice_imp_EM
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/Eqdep.mma b/helm/software/matita/contribs/procedural/Coq/Logic/Eqdep.mma
new file mode 100644 (file)
index 0000000..4efee30
--- /dev/null
@@ -0,0 +1,153 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Eqdep.v,v 1.10 2004/01/27 14:37:30 herbelin Exp $ i*)
+
+(*#* This file defines dependent equality and shows its equivalence with
+    equality on dependent pairs (inhabiting sigma-types). It axiomatizes
+    the invariance by substitution of reflexive equality proofs and 
+    shows the equivalence between the 4 following statements
+
+    - Invariance by Substitution of Reflexive Equality Proofs.
+    - Injectivity of Dependent Equality
+    - Uniqueness of Identity Proofs
+    - Uniqueness of Reflexive Identity Proofs
+    - Streicher's Axiom K
+
+  These statements are independent of the calculus of constructions [2].
+
+  References:
+
+  [1] T. Streicher, Semantical Investigations into Intensional Type Theory,
+      Habilitationsschrift, LMU München, 1993.
+  [2] M. Hofmann, T. Streicher, The groupoid interpretation of type theory,
+      Proceedings of the meeting Twenty-five years of constructive
+      type theory, Venice, Oxford University Press, 1998
+*)
+
+(* UNEXPORTED
+Section Dependent_Equality
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Eqdep/Dependent_Equality/U.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Eqdep/Dependent_Equality/P.var
+*)
+
+(*#* Dependent equality *)
+
+inline procedural "cic:/Coq/Logic/Eqdep/eq_dep.ind".
+
+(* UNEXPORTED
+Hint Constructors eq_dep: core v62.
+*)
+
+inline procedural "cic:/Coq/Logic/Eqdep/eq_dep_sym.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate eq_dep_sym: core v62.
+*)
+
+inline procedural "cic:/Coq/Logic/Eqdep/eq_dep_trans.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Eqdep/eq_indd.con" as theorem.
+
+inline procedural "cic:/Coq/Logic/Eqdep/eq_dep1.ind".
+
+inline procedural "cic:/Coq/Logic/Eqdep/eq_dep1_dep.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Eqdep/eq_dep_dep1.con" as lemma.
+
+(*#* Invariance by Substitution of Reflexive Equality Proofs *)
+
+inline procedural "cic:/Coq/Logic/Eqdep/eq_rect_eq.con".
+
+(*#* Injectivity of Dependent Equality is a consequence of *)
+
+(*#* Invariance by Substitution of Reflexive Equality Proof *)
+
+inline procedural "cic:/Coq/Logic/Eqdep/eq_dep1_eq.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Eqdep/eq_dep_eq.con" as lemma.
+
+(* UNEXPORTED
+End Dependent_Equality
+*)
+
+(*#* Uniqueness of Identity Proofs (UIP) is a consequence of *)
+
+(*#* Injectivity of Dependent Equality *)
+
+inline procedural "cic:/Coq/Logic/Eqdep/UIP.con" as lemma.
+
+(*#* Uniqueness of Reflexive Identity Proofs is a direct instance of UIP *)
+
+inline procedural "cic:/Coq/Logic/Eqdep/UIP_refl.con" as lemma.
+
+(*#* Streicher axiom K is a direct consequence of Uniqueness of
+    Reflexive Identity Proofs *)
+
+inline procedural "cic:/Coq/Logic/Eqdep/Streicher_K.con" as lemma.
+
+(*#* We finally recover eq_rec_eq (alternatively eq_rect_eq) from K *)
+
+inline procedural "cic:/Coq/Logic/Eqdep/eq_rec_eq.con" as lemma.
+
+(*#* Dependent equality is equivalent to equality on dependent pairs *)
+
+inline procedural "cic:/Coq/Logic/Eqdep/equiv_eqex_eqdep.con" as lemma.
+
+(*#* UIP implies the injectivity of equality on dependent pairs *)
+
+inline procedural "cic:/Coq/Logic/Eqdep/inj_pair2.con" as lemma.
+
+(*#* UIP implies the injectivity of equality on dependent pairs *)
+
+inline procedural "cic:/Coq/Logic/Eqdep/inj_pairT2.con" as lemma.
+
+(*#* The main results to be exported *)
+
+(* UNEXPORTED
+Hint Resolve eq_dep_intro eq_dep_eq: core v62.
+*)
+
+(* UNEXPORTED
+Hint Immediate eq_dep_sym: core v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve inj_pair2 inj_pairT2: core.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/Eqdep_dec.mma b/helm/software/matita/contribs/procedural/Coq/Logic/Eqdep_dec.mma
new file mode 100644 (file)
index 0000000..3d70f5e
--- /dev/null
@@ -0,0 +1,107 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Eqdep_dec.v,v 1.14 2003/11/29 17:28:33 herbelin Exp $ i*)
+
+(*#* We prove that there is only one proof of [x=x], i.e [(refl_equal ? x)].
+   This holds if the equality upon the set of [x] is decidable.
+   A corollary of this theorem is the equality of the right projections
+   of two equal dependent pairs.
+
+   Author:   Thomas Kleymann |<tms@dcs.ed.ac.uk>| in Lego
+             adapted to Coq by B. Barras
+
+   Credit:   Proofs up to [K_dec] follows an outline by Michael Hedberg
+*)
+
+(*#* We need some dependent elimination schemes *)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(*#* Bijection between [eq] and [eqT] *)
+
+inline procedural "cic:/Coq/Logic/Eqdep_dec/eq2eqT.con" as definition.
+
+inline procedural "cic:/Coq/Logic/Eqdep_dec/eqT2eq.con" as definition.
+
+inline procedural "cic:/Coq/Logic/Eqdep_dec/eq_eqT_bij.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Eqdep_dec/eqT_eq_bij.con" as lemma.
+
+(* UNEXPORTED
+Section DecidableEqDep
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Eqdep_dec/DecidableEqDep/A.var
+*)
+
+inline procedural "cic:/Coq/Logic/Eqdep_dec/DecidableEqDep/comp.con" "DecidableEqDep__" as definition.
+
+inline procedural "cic:/Coq/Logic/Eqdep_dec/trans_sym_eqT.con" as remark.
+
+(* UNEXPORTED
+cic:/Coq/Logic/Eqdep_dec/DecidableEqDep/eq_dec.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Eqdep_dec/DecidableEqDep/x.var
+*)
+
+inline procedural "cic:/Coq/Logic/Eqdep_dec/DecidableEqDep/nu.con" "DecidableEqDep__" as definition.
+
+inline procedural "cic:/Coq/Logic/Eqdep_dec/DecidableEqDep/nu_constant.con" "DecidableEqDep__" as definition.
+
+inline procedural "cic:/Coq/Logic/Eqdep_dec/DecidableEqDep/nu_inv.con" "DecidableEqDep__" as definition.
+
+inline procedural "cic:/Coq/Logic/Eqdep_dec/nu_left_inv.con" as remark.
+
+inline procedural "cic:/Coq/Logic/Eqdep_dec/eq_proofs_unicity.con" as theorem.
+
+inline procedural "cic:/Coq/Logic/Eqdep_dec/K_dec.con" as theorem.
+
+(*#* The corollary *)
+
+inline procedural "cic:/Coq/Logic/Eqdep_dec/DecidableEqDep/proj.con" "DecidableEqDep__" as definition.
+
+inline procedural "cic:/Coq/Logic/Eqdep_dec/inj_right_pair.con" as theorem.
+
+(* UNEXPORTED
+End DecidableEqDep
+*)
+
+(*#* We deduce the [K] axiom for (decidable) Set *)
+
+inline procedural "cic:/Coq/Logic/Eqdep_dec/K_dec_set.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/Hurkens.mma b/helm/software/matita/contribs/procedural/Coq/Logic/Hurkens.mma
new file mode 100644 (file)
index 0000000..f595611
--- /dev/null
@@ -0,0 +1,112 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#***************************************************************************)
+
+(*                 The Calculus of Inductive Constructions                  *)
+
+(*                                                                          *)
+
+(*                            Projet LogiCal                                *)
+
+(*                                                                          *)
+
+(*                     INRIA                        LRI-CNRS                *)
+
+(*              Rocquencourt                        Orsay                   *)
+
+(*                                                                          *)
+
+(*                              May 29th 2002                               *)
+
+(*                                                                          *)
+
+(*#***************************************************************************)
+
+(*                                Hurkens.v                                 *)
+
+(*#***************************************************************************)
+
+(*#* This is Hurkens paradox [Hurkens] in system U-, adapted by Herman
+    Geuvers [Geuvers] to show the inconsistency in the pure calculus of
+    constructions of a retract from Prop into a small type.
+
+    References:
+
+    - [Hurkens] A. J. Hurkens, "A simplification of Girard's paradox",
+      Proceedings of the 2nd international conference Typed Lambda-Calculi
+      and Applications (TLCA'95), 1995.
+
+    - [Geuvers] "Inconsistency of Classical Logic in Type Theory", 2001
+      (see www.cs.kun.nl/~herman/note.ps.gz).
+*)
+
+(* UNEXPORTED
+Section Paradox
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Hurkens/Paradox/bool.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Hurkens/Paradox/p2b.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Hurkens/Paradox/b2p.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Hurkens/Paradox/p2p1.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Hurkens/Paradox/p2p2.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/Hurkens/Paradox/B.var
+*)
+
+inline procedural "cic:/Coq/Logic/Hurkens/V.con" as definition.
+
+inline procedural "cic:/Coq/Logic/Hurkens/U.con" as definition.
+
+inline procedural "cic:/Coq/Logic/Hurkens/sb.con" as definition.
+
+inline procedural "cic:/Coq/Logic/Hurkens/le.con" as definition.
+
+inline procedural "cic:/Coq/Logic/Hurkens/induct.con" as definition.
+
+inline procedural "cic:/Coq/Logic/Hurkens/WF.con" as definition.
+
+inline procedural "cic:/Coq/Logic/Hurkens/I.con" as definition.
+
+inline procedural "cic:/Coq/Logic/Hurkens/Omega.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Hurkens/lemma1.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Hurkens/lemma2.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/Hurkens/paradox.con" as theorem.
+
+(* UNEXPORTED
+End Paradox
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/JMeq.mma b/helm/software/matita/contribs/procedural/Coq/Logic/JMeq.mma
new file mode 100644 (file)
index 0000000..44955e3
--- /dev/null
@@ -0,0 +1,76 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: JMeq.v,v 1.8 2003/11/29 17:28:33 herbelin Exp $ i*)
+
+(*#* John Major's Equality as proposed by C. Mc Bride *)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+inline procedural "cic:/Coq/Logic/JMeq/JMeq.ind".
+
+(* UNEXPORTED
+Reset JMeq_ind.
+*)
+
+(* UNEXPORTED
+Hint Resolve JMeq_refl.
+*)
+
+inline procedural "cic:/Coq/Logic/JMeq/sym_JMeq.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate sym_JMeq.
+*)
+
+inline procedural "cic:/Coq/Logic/JMeq/trans_JMeq.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/JMeq/JMeq_eq.con".
+
+inline procedural "cic:/Coq/Logic/JMeq/JMeq_ind.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/JMeq/JMeq_rec.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/JMeq/JMeq_ind_r.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/JMeq/JMeq_rec_r.con" as lemma.
+
+(*#* [JMeq] is equivalent to [(eq_dep Set [X]X)] *)
+
+include "Logic/Eqdep.ma".
+
+inline procedural "cic:/Coq/Logic/JMeq/JMeq_eq_dep.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/JMeq/eq_dep_JMeq.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/ProofIrrelevance.mma b/helm/software/matita/contribs/procedural/Coq/Logic/ProofIrrelevance.mma
new file mode 100644 (file)
index 0000000..f0b41cc
--- /dev/null
@@ -0,0 +1,157 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#***************************************************************************)
+
+(*                 The Calculus of Inductive Constructions                  *)
+
+(*                                                                          *)
+
+(*                            Projet LogiCal                                *)
+
+(*                                                                          *)
+
+(*                     INRIA                        LRI-CNRS                *)
+
+(*              Rocquencourt                        Orsay                   *)
+
+(*                                                                          *)
+
+(*                              May 29th 2002                               *)
+
+(*                                                                          *)
+
+(*#***************************************************************************)
+
+(*#* This is a proof in the pure Calculus of Construction that
+    classical logic in Prop + dependent elimination of disjunction entails
+    proof-irrelevance.
+
+    Since, dependent elimination is derivable in the Calculus of
+    Inductive Constructions (CCI), we get proof-irrelevance from classical
+    logic in the CCI.
+
+    Reference:
+
+    - [Coquand] T. Coquand, "Metamathematical Investigations of a
+      Calculus of Constructions", Proceedings of Logic in Computer Science
+      (LICS'90), 1990.
+
+    Proof skeleton: classical logic + dependent elimination of
+    disjunction + discrimination of proofs implies the existence of a
+    retract from [Prop] into [bool], hence inconsistency by encoding any
+    paradox of system U- (e.g. Hurkens' paradox).
+*)
+
+include "Logic/Hurkens.ma".
+
+(* UNEXPORTED
+Section Proof_irrelevance_CC
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ProofIrrelevance/Proof_irrelevance_CC/or.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ProofIrrelevance/Proof_irrelevance_CC/or_introl.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ProofIrrelevance/Proof_irrelevance_CC/or_intror.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ProofIrrelevance/Proof_irrelevance_CC/or_elim.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ProofIrrelevance/Proof_irrelevance_CC/or_elim_redl.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ProofIrrelevance/Proof_irrelevance_CC/or_elim_redr.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ProofIrrelevance/Proof_irrelevance_CC/or_dep_elim.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ProofIrrelevance/Proof_irrelevance_CC/em.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ProofIrrelevance/Proof_irrelevance_CC/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ProofIrrelevance/Proof_irrelevance_CC/b1.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ProofIrrelevance/Proof_irrelevance_CC/b2.var
+*)
+
+(*#* [p2b] and [b2p] form a retract if [~b1=b2] *)
+
+inline procedural "cic:/Coq/Logic/ProofIrrelevance/p2b.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ProofIrrelevance/b2p.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ProofIrrelevance/p2p1.con" as lemma.
+
+inline procedural "cic:/Coq/Logic/ProofIrrelevance/p2p2.con" as lemma.
+
+(*#* Using excluded-middle a second time, we get proof-irrelevance *)
+
+inline procedural "cic:/Coq/Logic/ProofIrrelevance/proof_irrelevance_cc.con" as theorem.
+
+(* UNEXPORTED
+End Proof_irrelevance_CC
+*)
+
+(*#* The Calculus of Inductive Constructions (CCI) enjoys dependent
+    elimination, hence classical logic in CCI entails proof-irrelevance.
+*)
+
+(* UNEXPORTED
+Section Proof_irrelevance_CCI
+*)
+
+(* UNEXPORTED
+cic:/Coq/Logic/ProofIrrelevance/Proof_irrelevance_CCI/em.var
+*)
+
+inline procedural "cic:/Coq/Logic/ProofIrrelevance/or_elim_redl.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ProofIrrelevance/or_elim_redr.con" as definition.
+
+inline procedural "cic:/Coq/Logic/ProofIrrelevance/or_indd.con" as theorem.
+
+inline procedural "cic:/Coq/Logic/ProofIrrelevance/proof_irrelevance_cci.con" as theorem.
+
+(* UNEXPORTED
+End Proof_irrelevance_CCI
+*)
+
+(*#* Remark: in CCI, [bool] can be taken in [Set] as well in the
+    paradox and since [~true=false] for [true] and [false] in
+    [bool], we get the inconsistency of [em : forall A:Prop, {A}+{~A}] in CCI
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Logic/RelationalChoice.mma b/helm/software/matita/contribs/procedural/Coq/Logic/RelationalChoice.mma
new file mode 100644 (file)
index 0000000..1091255
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: RelationalChoice.v,v 1.3 2003/12/15 19:48:19 barras Exp $ i*)
+
+(* This file axiomatizes the relational form of the axiom of choice *)
+
+inline procedural "cic:/Coq/Logic/RelationalChoice/relational_choice.con".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Makefile b/helm/software/matita/contribs/procedural/Coq/Makefile
new file mode 100644 (file)
index 0000000..e718612
--- /dev/null
@@ -0,0 +1,3 @@
+DEVEL = Coq
+
+include ../Makefile.common
diff --git a/helm/software/matita/contribs/procedural/Coq/NArith/BinNat.mma b/helm/software/matita/contribs/procedural/Coq/NArith/BinNat.mma
new file mode 100644 (file)
index 0000000..c00a109
--- /dev/null
@@ -0,0 +1,138 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: BinNat.v,v 1.7 2003/11/29 17:28:34 herbelin Exp $ i*)
+
+include "NArith/BinPos.ma".
+
+(*#*********************************************************************)
+
+(*#* Binary natural numbers *)
+
+inline procedural "cic:/Coq/NArith/BinNat/N.ind".
+
+(*#* Declare binding key for scope positive_scope *)
+
+(* UNEXPORTED
+Delimit Scope N_scope with N.
+*)
+
+(*#* Automatically open scope N_scope for the constructors of N *)
+
+(* UNEXPORTED
+Bind Scope N_scope with N.
+*)
+
+(* UNEXPORTED
+Arguments Scope Npos [N_scope].
+*)
+
+(* UNEXPORTED
+Open Local Scope N_scope.
+*)
+
+(*#* Operation x -> 2*x+1 *)
+
+inline procedural "cic:/Coq/NArith/BinNat/Ndouble_plus_one.con" as definition.
+
+(*#* Operation x -> 2*x *)
+
+inline procedural "cic:/Coq/NArith/BinNat/Ndouble.con" as definition.
+
+(*#* Successor *)
+
+inline procedural "cic:/Coq/NArith/BinNat/Nsucc.con" as definition.
+
+(*#* Addition *)
+
+inline procedural "cic:/Coq/NArith/BinNat/Nplus.con" as definition.
+
+(* NOTATION
+Infix "+" := Nplus : N_scope.
+*)
+
+(*#* Multiplication *)
+
+inline procedural "cic:/Coq/NArith/BinNat/Nmult.con" as definition.
+
+(* NOTATION
+Infix "*" := Nmult : N_scope.
+*)
+
+(*#* Order *)
+
+inline procedural "cic:/Coq/NArith/BinNat/Ncompare.con" as definition.
+
+(* NOTATION
+Infix "?=" := Ncompare (at level 70, no associativity) : N_scope.
+*)
+
+(*#* Peano induction on binary natural numbers *)
+
+inline procedural "cic:/Coq/NArith/BinNat/Nind.con" as theorem.
+
+(*#* Properties of addition *)
+
+inline procedural "cic:/Coq/NArith/BinNat/Nplus_0_l.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinNat/Nplus_0_r.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinNat/Nplus_comm.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinNat/Nplus_assoc.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinNat/Nplus_succ.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinNat/Nsucc_inj.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinNat/Nplus_reg_l.con" as theorem.
+
+(*#* Properties of multiplication *)
+
+inline procedural "cic:/Coq/NArith/BinNat/Nmult_1_l.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinNat/Nmult_1_r.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinNat/Nmult_comm.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinNat/Nmult_assoc.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinNat/Nmult_plus_distr_r.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinNat/Nmult_reg_r.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinNat/Nmult_0_l.con" as theorem.
+
+(*#* Properties of comparison *)
+
+inline procedural "cic:/Coq/NArith/BinNat/Ncompare_Eq_eq.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/NArith/BinPos.mma b/helm/software/matita/contribs/procedural/Coq/NArith/BinPos.mma
new file mode 100644 (file)
index 0000000..18782ad
--- /dev/null
@@ -0,0 +1,382 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: BinPos.v,v 1.7 2003/12/15 19:48:20 barras Exp $ i*)
+
+(*#*********************************************************************)
+
+(*#* Binary positive numbers *)
+
+(*#* Original development by Pierre Crégut, CNET, Lannion, France *)
+
+inline procedural "cic:/Coq/NArith/BinPos/positive.ind".
+
+(*#* Declare binding key for scope positive_scope *)
+
+(* UNEXPORTED
+Delimit Scope positive_scope with positive.
+*)
+
+(*#* Automatically open scope positive_scope for type positive, xO and xI *)
+
+(* UNEXPORTED
+Bind Scope positive_scope with positive.
+*)
+
+(* UNEXPORTED
+Arguments Scope xO [positive_scope].
+*)
+
+(* UNEXPORTED
+Arguments Scope xI [positive_scope].
+*)
+
+(*#* Successor *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Psucc.con" as definition.
+
+(*#* Addition *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus.con" as definition.
+
+(* NOTATION
+Infix "+" := Pplus : positive_scope.
+*)
+
+(* UNEXPORTED
+Open Local Scope positive_scope.
+*)
+
+(*#* From binary positive numbers to Peano natural numbers *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pmult_nat.con" as definition.
+
+inline procedural "cic:/Coq/NArith/BinPos/nat_of_P.con" as definition.
+
+(*#* From Peano natural numbers to binary positive numbers *)
+
+inline procedural "cic:/Coq/NArith/BinPos/P_of_succ_nat.con" as definition.
+
+(*#* Operation x -> 2*x-1 *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pdouble_minus_one.con" as definition.
+
+(*#* Predecessor *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Ppred.con" as definition.
+
+(*#* An auxiliary type for subtraction *)
+
+inline procedural "cic:/Coq/NArith/BinPos/positive_mask.ind".
+
+(*#* Operation x -> 2*x+1 *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pdouble_plus_one_mask.con" as definition.
+
+(*#* Operation x -> 2*x *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pdouble_mask.con" as definition.
+
+(*#* Operation x -> 2*x-2 *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pdouble_minus_two.con" as definition.
+
+(*#* Subtraction of binary positive numbers into a positive numbers mask *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pminus_mask.con" as definition.
+
+(*#* Subtraction of binary positive numbers x and y, returns 1 if x<=y *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pminus.con" as definition.
+
+(* NOTATION
+Infix "-" := Pminus : positive_scope.
+*)
+
+(*#* Multiplication on binary positive numbers *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pmult.con" as definition.
+
+(* NOTATION
+Infix "*" := Pmult : positive_scope.
+*)
+
+(*#* Division by 2 rounded below but for 1 *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pdiv2.con" as definition.
+
+(* NOTATION
+Infix "/" := Pdiv2 : positive_scope.
+*)
+
+(*#* Comparison on binary positive numbers *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pcompare.con" as definition.
+
+(* NOTATION
+Infix "?=" := Pcompare (at level 70, no associativity) : positive_scope.
+*)
+
+(*#*********************************************************************)
+
+(*#* Miscellaneous properties of binary positive numbers *)
+
+inline procedural "cic:/Coq/NArith/BinPos/ZL11.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* Properties of successor on binary positive numbers *)
+
+(*#* Specification of [xI] in term of [Psucc] and [xO] *)
+
+inline procedural "cic:/Coq/NArith/BinPos/xI_succ_xO.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Psucc_discr.con" as lemma.
+
+(*#* Successor and double *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Psucc_o_double_minus_one_eq_xO.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pdouble_minus_one_o_succ_eq_xI.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/xO_succ_permute.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/double_moins_un_xO_discr.con" as lemma.
+
+(*#* Successor and predecessor *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Psucc_not_one.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Ppred_succ.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Psucc_pred.con" as lemma.
+
+(*#* Injectivity of successor *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Psucc_inj.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* Properties of addition on binary positive numbers *)
+
+(*#* Specification of [Psucc] in term of [Pplus] *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_one_succ_r.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_one_succ_l.con" as lemma.
+
+(*#* Specification of [Pplus_carry] *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_carry_spec.con" as theorem.
+
+(*#* Commutativity *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_comm.con" as theorem.
+
+(*#* Permutation of [Pplus] and [Psucc] *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_succ_permute_r.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_succ_permute_l.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_carry_pred_eq_plus.con" as theorem.
+
+(*#* No neutral for addition on strictly positive numbers *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_no_neutral.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_carry_no_neutral.con" as lemma.
+
+(*#* Simplification *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_carry_plus.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_reg_r.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_reg_l.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_carry_reg_r.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_carry_reg_l.con" as lemma.
+
+(*#* Addition on positive is associative *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_assoc.con" as theorem.
+
+(*#* Commutation of addition with the double of a positive number *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_xI_double_minus_one.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_xO_double_minus_one.con" as lemma.
+
+(*#* Misc *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_diag.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* Peano induction on binary positive positive numbers *)
+
+inline procedural "cic:/Coq/NArith/BinPos/plus_iter.con" as definition.
+
+inline procedural "cic:/Coq/NArith/BinPos/plus_iter_eq_plus.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/plus_iter_xO.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/plus_iter_xI.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/iterate_add.con" as lemma.
+
+(*#* Peano induction *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pind.con" as theorem.
+
+(*#* Peano recursion *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Prec.con" as definition.
+
+(*#* Peano case analysis *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pcase.con" as theorem.
+
+(*
+Check
+  (let fact := Prec positive xH (fun p r => Psucc p * r) in
+   let seven := xI (xI xH) in
+   let five_thousand_forty :=
+     xO (xO (xO (xO (xI (xI (xO (xI (xI (xI (xO (xO xH))))))))))) in
+   refl_equal _:fact seven = five_thousand_forty).
+*)
+
+(*#*********************************************************************)
+
+(*#* Properties of multiplication on binary positive numbers *)
+
+(*#* One is right neutral for multiplication *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pmult_1_r.con" as lemma.
+
+(*#* Right reduction properties for multiplication *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pmult_xO_permute_r.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pmult_xI_permute_r.con" as lemma.
+
+(*#* Commutativity of multiplication *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pmult_comm.con" as theorem.
+
+(*#* Distributivity of multiplication over addition *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pmult_plus_distr_l.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pmult_plus_distr_r.con" as theorem.
+
+(*#* Associativity of multiplication *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pmult_assoc.con" as theorem.
+
+(*#* Parity properties of multiplication *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pmult_xI_mult_xO_discr.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pmult_xO_discr.con" as lemma.
+
+(*#* Simplification properties of multiplication *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pmult_reg_r.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pmult_reg_l.con" as theorem.
+
+(*#* Inversion of multiplication *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pmult_1_inversion_l.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* Properties of comparison on binary positive numbers *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pcompare_not_Eq.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pcompare_Eq_eq.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pcompare_Gt_Lt.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pcompare_Lt_Gt.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pcompare_Lt_Lt.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pcompare_Gt_Gt.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Dcompare.con" as lemma.
+
+(* UNEXPORTED
+Ltac ElimPcompare c1 c2 :=
+  elim (Dcompare ((c1 ?= c2) Eq));
+   [ idtac | let x := fresh "H" in
+             (intro x; case x; clear x) ].
+*)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pcompare_refl.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pcompare_antisym.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/ZC1.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/ZC2.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/ZC3.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/ZC4.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* Properties of subtraction on binary positive numbers *)
+
+inline procedural "cic:/Coq/NArith/BinPos/double_eq_zero_inversion.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/double_plus_one_zero_discr.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/double_plus_one_eq_one_inversion.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/double_eq_one_discr.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pminus_mask_diag.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/BinPos/ZL10.con" as lemma.
+
+(*#* Properties of subtraction valid only for x>y *)
+
+inline procedural "cic:/Coq/NArith/BinPos/Pminus_mask_Gt.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/BinPos/Pplus_minus.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/NArith/NArith.mma b/helm/software/matita/contribs/procedural/Coq/NArith/NArith.mma
new file mode 100644 (file)
index 0000000..2c1f752
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(* $Id: NArith.v,v 1.2 2003/11/29 17:28:34 herbelin Exp $ *)
+
+(*#* Library for binary natural numbers *)
+
+include "NArith/BinPos.ma".
+
+include "NArith/BinNat.ma".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/NArith/Pnat.mma b/helm/software/matita/contribs/procedural/Coq/NArith/Pnat.mma
new file mode 100644 (file)
index 0000000..da44e41
--- /dev/null
@@ -0,0 +1,194 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Pnat.v,v 1.3 2003/12/15 19:48:20 barras Exp $ i*)
+
+include "NArith/BinPos.ma".
+
+(*#*********************************************************************)
+
+(*#* Properties of the injection from binary positive numbers to Peano 
+    natural numbers *)
+
+(*#* Original development by Pierre Crégut, CNET, Lannion, France *)
+
+include "Arith/Le.ma".
+
+include "Arith/Lt.ma".
+
+include "Arith/Gt.ma".
+
+include "Arith/Plus.ma".
+
+include "Arith/Mult.ma".
+
+include "Arith/Minus.ma".
+
+(*#* [nat_of_P] is a morphism for addition *)
+
+inline procedural "cic:/Coq/NArith/Pnat/Pmult_nat_succ_morphism.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_succ_morphism.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/Pnat/Pmult_nat_plus_carry_morphism.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_plus_carry_morphism.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/Pnat/Pmult_nat_l_plus_morphism.con" as theorem.
+
+inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_plus_morphism.con" as theorem.
+
+(*#* [Pmult_nat] is a morphism for addition *)
+
+inline procedural "cic:/Coq/NArith/Pnat/Pmult_nat_r_plus_morphism.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/Pnat/ZL6.con" as lemma.
+
+(*#* [nat_of_P] is a morphism for multiplication *)
+
+inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_mult_morphism.con" as theorem.
+
+(*#* [nat_of_P] maps to the strictly positive subset of [nat] *)
+
+inline procedural "cic:/Coq/NArith/Pnat/ZL4.con" as lemma.
+
+(*#* Extra lemmas on [lt] on Peano natural numbers *)
+
+inline procedural "cic:/Coq/NArith/Pnat/ZL7.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/Pnat/ZL8.con" as lemma.
+
+(*#* [nat_of_P] is a morphism from [positive] to [nat] for [lt] (expressed
+    from [compare] on [positive])
+
+    Part 1: [lt] on [positive] is finer than [lt] on [nat]
+*)
+
+inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_lt_Lt_compare_morphism.con" as lemma.
+
+(*#* [nat_of_P] is a morphism from [positive] to [nat] for [gt] (expressed
+    from [compare] on [positive])
+
+    Part 1: [gt] on [positive] is finer than [gt] on [nat]
+*)
+
+inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_gt_Gt_compare_morphism.con" as lemma.
+
+(*#* [nat_of_P] is a morphism from [positive] to [nat] for [lt] (expressed
+    from [compare] on [positive])
+
+    Part 2: [lt] on [nat] is finer than [lt] on [positive]
+*)
+
+inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_lt_Lt_compare_complement_morphism.con" as lemma.
+
+(*#* [nat_of_P] is a morphism from [positive] to [nat] for [gt] (expressed
+    from [compare] on [positive])
+
+    Part 2: [gt] on [nat] is finer than [gt] on [positive]
+*)
+
+inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_gt_Gt_compare_complement_morphism.con" as lemma.
+
+(*#* [nat_of_P] is strictly positive *)
+
+inline procedural "cic:/Coq/NArith/Pnat/le_Pmult_nat.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/Pnat/lt_O_nat_of_P.con" as lemma.
+
+(*#* Pmult_nat permutes with multiplication *)
+
+inline procedural "cic:/Coq/NArith/Pnat/Pmult_nat_mult_permute.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/Pnat/Pmult_nat_2_mult_2_permute.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/Pnat/Pmult_nat_4_mult_2_permute.con" as lemma.
+
+(*#* Mapping of xH, xO and xI through [nat_of_P] *)
+
+inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_xH.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_xO.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_xI.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* Properties of the shifted injection from Peano natural numbers to 
+    binary positive numbers *)
+
+(*#* Composition of [P_of_succ_nat] and [nat_of_P] is successor on [nat] *)
+
+inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_o_P_of_succ_nat_eq_succ.con" as theorem.
+
+(*#* Miscellaneous lemmas on [P_of_succ_nat] *)
+
+inline procedural "cic:/Coq/NArith/Pnat/ZL3.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/Pnat/ZL5.con" as lemma.
+
+(*#* Composition of [nat_of_P] and [P_of_succ_nat] is successor on [positive] *)
+
+inline procedural "cic:/Coq/NArith/Pnat/P_of_succ_nat_o_nat_of_P_eq_succ.con" as theorem.
+
+(*#* Composition of [nat_of_P], [P_of_succ_nat] and [Ppred] is identity
+    on [positive] *)
+
+inline procedural "cic:/Coq/NArith/Pnat/pred_o_P_of_succ_nat_o_nat_of_P_eq_id.con" as theorem.
+
+(*#*********************************************************************)
+
+(*#* Extra properties of the injection from binary positive numbers to Peano 
+    natural numbers *)
+
+(*#* [nat_of_P] is a morphism for subtraction on positive numbers *)
+
+inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_minus_morphism.con" as theorem.
+
+(*#* [nat_of_P] is injective *)
+
+inline procedural "cic:/Coq/NArith/Pnat/nat_of_P_inj.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/Pnat/ZL16.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/Pnat/ZL17.con" as lemma.
+
+(*#* Comparison and subtraction *)
+
+inline procedural "cic:/Coq/NArith/Pnat/Pcompare_minus_r.con" as lemma.
+
+inline procedural "cic:/Coq/NArith/Pnat/Pcompare_minus_l.con" as lemma.
+
+(*#* Distributivity of multiplication over subtraction *)
+
+inline procedural "cic:/Coq/NArith/Pnat/Pmult_minus_distr_l.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/AddProps.mma b/helm/software/matita/contribs/procedural/Coq/Num/AddProps.mma
new file mode 100644 (file)
index 0000000..dc1e96f
--- /dev/null
@@ -0,0 +1,88 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+include "Num/Axioms.ma".
+
+include "Num/EqAxioms.ma".
+
+(*#* This file contains basic properties of addition with respect to equality *)
+
+(*#* Properties of Addition *)
+
+inline procedural "cic:/Coq/Num/AddProps/add_x_0.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve add_x_0 : num.
+*)
+
+inline procedural "cic:/Coq/Num/AddProps/add_x_Sy.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve add_x_Sy : num.
+*)
+
+inline procedural "cic:/Coq/Num/AddProps/add_x_Sy_swap.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve add_x_Sy_swap : num.
+*)
+
+inline procedural "cic:/Coq/Num/AddProps/add_Sx_y_swap.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve add_Sx_y_swap : num.
+*)
+
+inline procedural "cic:/Coq/Num/AddProps/add_assoc_r.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve add_assoc_r : num.
+*)
+
+inline procedural "cic:/Coq/Num/AddProps/add_x_y_z_perm.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve add_x_y_z_perm : num.
+*)
+
+inline procedural "cic:/Coq/Num/AddProps/add_x_one_S.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve add_x_one_S : num.
+*)
+
+inline procedural "cic:/Coq/Num/AddProps/add_one_x_S.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve add_one_x_S : num.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/Axioms.mma b/helm/software/matita/contribs/procedural/Coq/Num/Axioms.mma
new file mode 100644 (file)
index 0000000..301398d
--- /dev/null
@@ -0,0 +1,84 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Axioms.v,v 1.6 2002/02/14 14:39:02 filliatr Exp $ i*)
+
+(*#* Axioms for the basic numerical operations *)
+
+include "Num/Params.ma".
+
+include "Num/EqParams.ma".
+
+include "Num/NSyntax.ma".
+
+(*#* Axioms for [eq] *)
+
+inline procedural "cic:/Coq/Num/Axioms/eq_refl.con".
+
+inline procedural "cic:/Coq/Num/Axioms/eq_sym.con".
+
+inline procedural "cic:/Coq/Num/Axioms/eq_trans.con".
+
+(*#* Axioms for [add] *)
+
+inline procedural "cic:/Coq/Num/Axioms/add_sym.con".
+
+inline procedural "cic:/Coq/Num/Axioms/add_assoc_l.con".
+
+inline procedural "cic:/Coq/Num/Axioms/add_0_x.con".
+
+(*#* Axioms for [S] *)
+
+inline procedural "cic:/Coq/Num/Axioms/add_Sx_y.con".
+
+(*#* Axioms for [one] *)
+
+inline procedural "cic:/Coq/Num/Axioms/S_0_1.con".
+
+(*#* Axioms for [<], 
+    properties of [>], [<=] and [>=] will be derived from [<] *)
+
+inline procedural "cic:/Coq/Num/Axioms/lt_trans.con".
+
+inline procedural "cic:/Coq/Num/Axioms/lt_anti_refl.con".
+
+inline procedural "cic:/Coq/Num/Axioms/lt_x_Sx.con".
+
+inline procedural "cic:/Coq/Num/Axioms/lt_S_compat.con".
+
+inline procedural "cic:/Coq/Num/Axioms/lt_add_compat_l.con".
+
+(* UNEXPORTED
+Hints Resolve add_sym add_assoc_l add_0_x add_Sx_y S_0_1 lt_x_Sx lt_S_compat
+              lt_trans lt_anti_refl lt_add_compat_l : num.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/Definitions.mma b/helm/software/matita/contribs/procedural/Coq/Num/Definitions.mma
new file mode 100644 (file)
index 0000000..f067417
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Definitions.v,v 1.3 2002/02/14 14:39:02 filliatr Exp $ i*)
+
+(*#* Axiomatisation of a numerical set 
+
+  It will be instantiated by Z and R later on
+  We choose to introduce many operation to allow flexibility in definition 
+  ([S] is primitive in the definition of [nat] while [add] and [one] 
+   are primitive in the definition 
+*)
+
+inline procedural "cic:/Coq/Num/Definitions/N.con".
+
+inline procedural "cic:/Coq/Num/Definitions/zero.con".
+
+inline procedural "cic:/Coq/Num/Definitions/one.con".
+
+inline procedural "cic:/Coq/Num/Definitions/add.con".
+
+inline procedural "cic:/Coq/Num/Definitions/S.con".
+
+(*#* Relations *)
+
+inline procedural "cic:/Coq/Num/Definitions/eq.con".
+
+inline procedural "cic:/Coq/Num/Definitions/lt.con".
+
+inline procedural "cic:/Coq/Num/Definitions/le.con".
+
+inline procedural "cic:/Coq/Num/Definitions/gt.con".
+
+inline procedural "cic:/Coq/Num/Definitions/ge.con".
+
+inline procedural "cic:/Coq/Num/Definitions/neq.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/DiscrAxioms.mma b/helm/software/matita/contribs/procedural/Coq/Num/DiscrAxioms.mma
new file mode 100644 (file)
index 0000000..d35a733
--- /dev/null
@@ -0,0 +1,46 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: DiscrAxioms.v,v 1.4 2002/02/14 14:39:02 filliatr Exp $ i*)
+
+include "Num/Params.ma".
+
+include "Num/NSyntax.ma".
+
+(*#* Axiom for a discrete set *)
+
+inline procedural "cic:/Coq/Num/DiscrAxioms/lt_x_Sy_le.con".
+
+(* UNEXPORTED
+Hints Resolve lt_x_Sy_le : num.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/DiscrProps.mma b/helm/software/matita/contribs/procedural/Coq/Num/DiscrProps.mma
new file mode 100644 (file)
index 0000000..6ee4651
--- /dev/null
@@ -0,0 +1,46 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: DiscrProps.v,v 1.4 2002/04/17 11:30:20 herbelin Exp $ i*)
+
+include "Num/DiscrAxioms.ma".
+
+include "Num/LtProps.ma".
+
+(*#* Properties of a discrete order *)
+
+inline procedural "cic:/Coq/Num/DiscrProps/lt_le_Sx_y.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve lt_le_Sx_y : num.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/EqAxioms.mma b/helm/software/matita/contribs/procedural/Coq/Num/EqAxioms.mma
new file mode 100644 (file)
index 0000000..d7916e4
--- /dev/null
@@ -0,0 +1,70 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: EqAxioms.v,v 1.3 2002/02/14 14:39:02 filliatr Exp $ i*)
+
+(*#* Axioms for equality *)
+
+include "Num/Params.ma".
+
+include "Num/EqParams.ma".
+
+include "Num/NSyntax.ma".
+
+(*#* Basic Axioms for [eq] *)
+
+inline procedural "cic:/Coq/Num/EqAxioms/eq_refl.con".
+
+inline procedural "cic:/Coq/Num/EqAxioms/eq_sym.con".
+
+inline procedural "cic:/Coq/Num/EqAxioms/eq_trans.con".
+
+(*#* Axioms for [eq] and [add] *)
+
+inline procedural "cic:/Coq/Num/EqAxioms/add_eq_compat.con".
+
+(*#* Axioms for [eq] and [S] *)
+
+inline procedural "cic:/Coq/Num/EqAxioms/S_eq_compat.con".
+
+(*#* Axioms for [eq] and [<] *)
+
+inline procedural "cic:/Coq/Num/EqAxioms/lt_eq_compat.con".
+
+(* UNEXPORTED
+Hints Resolve eq_refl eq_trans add_eq_compat S_eq_compat lt_eq_compat : num.
+*)
+
+(* UNEXPORTED
+Hints Immediate eq_sym : num.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/EqParams.mma b/helm/software/matita/contribs/procedural/Coq/Num/EqParams.mma
new file mode 100644 (file)
index 0000000..ebc29c0
--- /dev/null
@@ -0,0 +1,55 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: EqParams.v,v 1.4 2003/03/21 17:37:16 barras Exp $ i*)
+
+(*#* Equality is introduced as an independant parameter, it could be 
+    instantiated with Leibniz equality *)
+
+include "Num/Params.ma".
+
+inline procedural "cic:/Coq/Num/EqParams/eqN.con".
+
+(*i Infix 6 "=" eqN V8only 50. i*)
+
+(* NOTATION
+Grammar constr constr1 :=
+eq_impl [ constr0($c) "=" constr0($c2) ] -> [ (eqN $c $c2) ].
+*)
+
+(* NOTATION
+Syntax constr
+  level 1:
+    equal [ (eqN $t1 $t2) ] -> [ [<hov 0> $t1:E [0 1]  "=" $t2:E ] ]
+.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/GeAxioms.mma b/helm/software/matita/contribs/procedural/Coq/Num/GeAxioms.mma
new file mode 100644 (file)
index 0000000..e2568c5
--- /dev/null
@@ -0,0 +1,52 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: GeAxioms.v,v 1.3 2002/02/14 14:39:02 filliatr Exp $ i*)
+
+include "Num/Axioms.ma".
+
+include "Num/LtProps.ma".
+
+(*#* Axiomatizing [>=] from [<] *)
+
+inline procedural "cic:/Coq/Num/GeAxioms/not_lt_ge.con".
+
+inline procedural "cic:/Coq/Num/GeAxioms/ge_not_lt.con".
+
+(* UNEXPORTED
+Hints Resolve not_lt_ge : num.
+*)
+
+(* UNEXPORTED
+Hints Immediate ge_not_lt : num.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/GeProps.mma b/helm/software/matita/contribs/procedural/Coq/Num/GeProps.mma
new file mode 100644 (file)
index 0000000..4ac4014
--- /dev/null
@@ -0,0 +1,32 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/GtAxioms.mma b/helm/software/matita/contribs/procedural/Coq/Num/GtAxioms.mma
new file mode 100644 (file)
index 0000000..dcafd6e
--- /dev/null
@@ -0,0 +1,52 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: GtAxioms.v,v 1.3 2002/02/14 14:39:02 filliatr Exp $ i*)
+
+include "Num/Axioms.ma".
+
+include "Num/LeProps.ma".
+
+(*#* Axiomatizing [>] from [<] *)
+
+inline procedural "cic:/Coq/Num/GtAxioms/not_le_gt.con".
+
+inline procedural "cic:/Coq/Num/GtAxioms/gt_not_le.con".
+
+(* UNEXPORTED
+Hints Resolve not_le_gt : num.
+*)
+
+(* UNEXPORTED
+Hints Immediate gt_not_le : num.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/GtProps.mma b/helm/software/matita/contribs/procedural/Coq/Num/GtProps.mma
new file mode 100644 (file)
index 0000000..4ac4014
--- /dev/null
@@ -0,0 +1,32 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/LeAxioms.mma b/helm/software/matita/contribs/procedural/Coq/Num/LeAxioms.mma
new file mode 100644 (file)
index 0000000..04c8eb9
--- /dev/null
@@ -0,0 +1,52 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: LeAxioms.v,v 1.3 2002/02/14 14:39:02 filliatr Exp $ i*)
+
+include "Num/Axioms.ma".
+
+include "Num/LtProps.ma".
+
+(*#* Axiomatizing [<=] from [<] *)
+
+inline procedural "cic:/Coq/Num/LeAxioms/lt_or_eq_le.con".
+
+inline procedural "cic:/Coq/Num/LeAxioms/le_lt_or_eq.con".
+
+(* UNEXPORTED
+Hints Resolve lt_or_eq_le : num.
+*)
+
+(* UNEXPORTED
+Hints Immediate le_lt_or_eq : num.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/LeProps.mma b/helm/software/matita/contribs/procedural/Coq/Num/LeProps.mma
new file mode 100644 (file)
index 0000000..8493c65
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+include "Num/LtProps.ma".
+
+include "Num/LeAxioms.ma".
+
+(*#* Properties of the relation [<=] *)
+
+inline procedural "cic:/Coq/Num/LeProps/lt_le.con" as lemma.
+
+inline procedural "cic:/Coq/Num/LeProps/eq_le.con" as lemma.
+
+(*#* compatibility with equality *)
+
+inline procedural "cic:/Coq/Num/LeProps/le_eq_compat.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve le_eq_compat : num.
+*)
+
+(*#* Transitivity *)
+
+inline procedural "cic:/Coq/Num/LeProps/le_trans.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve le_trans : num.
+*)
+
+(*#* compatibility with equality, addition and successor *)
+
+inline procedural "cic:/Coq/Num/LeProps/le_add_compat_l.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve le_add_compat_l : num.
+*)
+
+inline procedural "cic:/Coq/Num/LeProps/le_add_compat_r.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve le_add_compat_r : num.
+*)
+
+inline procedural "cic:/Coq/Num/LeProps/le_add_compat.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate le_add_compat : num.
+*)
+
+(* compatibility with successor *)
+
+inline procedural "cic:/Coq/Num/LeProps/le_S_compat.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve le_S_compat : num.
+*)
+
+(*#* relating [<=] with [<] *)
+
+inline procedural "cic:/Coq/Num/LeProps/le_lt_x_Sy.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate le_lt_x_Sy : num.
+*)
+
+inline procedural "cic:/Coq/Num/LeProps/le_le_x_Sy.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate le_le_x_Sy : num.
+*)
+
+inline procedural "cic:/Coq/Num/LeProps/le_Sx_y_lt.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate le_Sx_y_lt : num.
+*)
+
+(*#* Combined transitivity *)
+
+inline procedural "cic:/Coq/Num/LeProps/lt_le_trans.con" as lemma.
+
+inline procedural "cic:/Coq/Num/LeProps/le_lt_trans.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate lt_le_trans le_lt_trans : num.
+*)
+
+(*#* weaker compatibility results involving [<] and [<=] *)
+
+inline procedural "cic:/Coq/Num/LeProps/lt_add_compat_weak_l.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate  lt_add_compat_weak_l : num.
+*)
+
+inline procedural "cic:/Coq/Num/LeProps/lt_add_compat_weak_r.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate lt_add_compat_weak_r : num.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/Leibniz/EqAxioms.mma b/helm/software/matita/contribs/procedural/Coq/Num/Leibniz/EqAxioms.mma
new file mode 100644 (file)
index 0000000..f473e4d
--- /dev/null
@@ -0,0 +1,75 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*s Instantiating [eqN] with Leibniz equality *)
+
+include "Num/NSyntax.ma".
+
+inline procedural "cic:/Coq/Num/Leibniz/EqAxioms/eqN.con" as definition.
+
+(* UNEXPORTED
+Hints Unfold eqN : num.
+*)
+
+(* NOTATION
+Grammar constr constr1 :=
+eq_impl [ constr0($c) "=" constr0($c2) ] -> [ (eqN $c $c2) ].
+*)
+
+(* NOTATION
+Syntax constr
+  level 1:
+    equal [ (eqN $t1 $t2) ] -> [ [<hov 0> $t1:E [0 1]  "=" $t2:E ] ].
+*)
+
+(*s Lemmas for [eqN] *)
+
+inline procedural "cic:/Coq/Num/Leibniz/EqAxioms/eq_refl.con" as lemma.
+
+inline procedural "cic:/Coq/Num/Leibniz/EqAxioms/eq_sym.con" as lemma.
+
+inline procedural "cic:/Coq/Num/Leibniz/EqAxioms/eq_trans.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve eq_refl eq_trans : num.
+*)
+
+(* UNEXPORTED
+Hints Immediate eq_sym : num.
+*)
+
+(*s Compatibility lemmas for [S], [add], [lt] *)
+
+inline procedural "cic:/Coq/Num/Leibniz/EqAxioms/S_eq_compat.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve S_eq_compat : nat.
+*)
+
+inline procedural "cic:/Coq/Num/Leibniz/EqAxioms/add_eq_compat.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve add_eq_compat : nat.
+*)
+
+inline procedural "cic:/Coq/Num/Leibniz/EqAxioms/lt_eq_compat.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve add_eq_compat S_eq_compat lt_eq_compat : num.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/Leibniz/NSyntax.mma b/helm/software/matita/contribs/procedural/Coq/Num/Leibniz/NSyntax.mma
new file mode 100644 (file)
index 0000000..b80b0c5
--- /dev/null
@@ -0,0 +1,65 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*s Syntax for arithmetic *)
+
+include "Num/Params.ma".
+
+(* NOTATION
+Infix 6 "<" lt.
+*)
+
+(* NOTATION
+Infix 6 "<=" le.
+*)
+
+(* NOTATION
+Infix 6 ">" gt.
+*)
+
+(* NOTATION
+Infix 6 ">=" ge.
+*)
+
+(*i Infix 7 "+" plus. i*)
+
+(* NOTATION
+Grammar constr lassoc_constr4 :=
+  squash_sum
+  [ lassoc_constr4($c1) "+" lassoc_constr4($c2) ] ->
+      case [$c2] of
+        (SQUASH $T2) ->
+            case [$c1] of
+              (SQUASH $T1) -> [ (sumbool $T1 $T2) ] (* {T1}+{T2} *)
+            | $_           -> [ (sumor $c1 $T2) ]   (* c1+{T2} *)
+            esac
+      | $_           -> [ (add $c1 $c2) ]           (* c1+c2 *)
+      esac.
+*)
+
+(* NOTATION
+Syntax constr
+  level 1:
+    equal [ (eqN $t1 $t2) ] -> [ [<hov 0> $t1:E [0 1]  "=" $t2:E ] ]
+ ;
+
+  level 4:
+    sum [ (add $t1 $t2) ] -> [ [<hov 0> $t1:E [0 1] "+" $t2:L ] ]
+.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/Leibniz/Params.mma b/helm/software/matita/contribs/procedural/Coq/Num/Leibniz/Params.mma
new file mode 100644 (file)
index 0000000..c52856b
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*i $Id $ i*)
+
+(*s 
+  Axiomatisation of a numerical set 
+  It will be instantiated by Z and R later on
+  We choose to introduce many operation to allow flexibility in definition 
+  ([S] is primitive in the definition of [nat] while [add] and [one] 
+   are primitive in the definition 
+*)
+
+inline procedural "cic:/Coq/Num/Leibniz/Params/N.con".
+
+inline procedural "cic:/Coq/Num/Leibniz/Params/zero.con".
+
+inline procedural "cic:/Coq/Num/Leibniz/Params/one.con".
+
+inline procedural "cic:/Coq/Num/Leibniz/Params/add.con".
+
+inline procedural "cic:/Coq/Num/Leibniz/Params/S.con".
+
+(*s Relations, equality is defined separately *)
+
+inline procedural "cic:/Coq/Num/Leibniz/Params/lt.con".
+
+inline procedural "cic:/Coq/Num/Leibniz/Params/le.con".
+
+inline procedural "cic:/Coq/Num/Leibniz/Params/gt.con".
+
+inline procedural "cic:/Coq/Num/Leibniz/Params/ge.con".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/LtProps.mma b/helm/software/matita/contribs/procedural/Coq/Num/LtProps.mma
new file mode 100644 (file)
index 0000000..408550d
--- /dev/null
@@ -0,0 +1,118 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+include "Num/Axioms.ma".
+
+include "Num/AddProps.ma".
+
+include "Num/NeqProps.ma".
+
+(*#* This file contains basic properties of the less than relation *)
+
+inline procedural "cic:/Coq/Num/LtProps/lt_anti_sym.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve lt_anti_refl : num.
+*)
+
+inline procedural "cic:/Coq/Num/LtProps/eq_not_lt.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve eq_not_lt : num.
+*)
+
+inline procedural "cic:/Coq/Num/LtProps/lt_0_1.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve lt_0_1 : num.
+*)
+
+inline procedural "cic:/Coq/Num/LtProps/eq_lt_x_Sy.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve eq_lt_x_Sy : num.
+*)
+
+inline procedural "cic:/Coq/Num/LtProps/lt_lt_x_Sy.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate lt_lt_x_Sy : num.
+*)
+
+inline procedural "cic:/Coq/Num/LtProps/lt_Sx_y_lt.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate lt_Sx_y_lt : num.
+*)
+
+(*#* Relating [<] and [=] *)
+
+inline procedural "cic:/Coq/Num/LtProps/lt_neq.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate lt_neq : num.
+*)
+
+inline procedural "cic:/Coq/Num/LtProps/lt_neq_sym.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate lt_neq_sym : num.
+*)
+
+(*#* Application to inequalities properties *)
+
+inline procedural "cic:/Coq/Num/LtProps/neq_x_Sx.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve neq_x_Sx : num.
+*)
+
+inline procedural "cic:/Coq/Num/LtProps/neq_0_1.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve neq_0_1 : num.
+*)
+
+(*#* Relating [<] and [+] *)
+
+inline procedural "cic:/Coq/Num/LtProps/lt_add_compat_r.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve lt_add_compat_r : num.
+*)
+
+inline procedural "cic:/Coq/Num/LtProps/lt_add_compat.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate lt_add_compat : num.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/NSyntax.mma b/helm/software/matita/contribs/procedural/Coq/Num/NSyntax.mma
new file mode 100644 (file)
index 0000000..ded4e91
--- /dev/null
@@ -0,0 +1,75 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#* Syntax for arithmetic *)
+
+include "Num/Params.ma".
+
+(* NOTATION
+Infix 6 "<" lt V8only 70.
+*)
+
+(* NOTATION
+Infix 6 "<=" le V8only 70.
+*)
+
+(* NOTATION
+Infix 6 ">" gt V8only 70.
+*)
+
+(* NOTATION
+Infix 6 ">=" ge V8only 70.
+*)
+
+(*i Infix 7 "+" plus V8only 50. i*)
+
+(* NOTATION
+Grammar constr lassoc_constr4 :=
+  squash_sum
+  [ lassoc_constr4($c1) "+" lassoc_constr4($c2) ] ->
+      case [$c2] of
+        (SQUASH $T2) ->
+            case [$c1] of
+              (SQUASH $T1) -> [ (sumbool $T1 $T2) ] (* {T1}+{T2} *)
+            | $_           -> [ (sumor $c1 $T2) ]   (* c1+{T2} *)
+            esac
+      | $_           -> [ (add $c1 $c2) ]           (* c1+c2 *)
+      esac.
+*)
+
+(* NOTATION
+Syntax constr
+  level 4:
+    sum [ (add $t1 $t2) ] -> [ [<hov 0> $t1:E [0 1] "+" $t2:L ] ]
+.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/Nat/Axioms.mma b/helm/software/matita/contribs/procedural/Coq/Num/Nat/Axioms.mma
new file mode 100644 (file)
index 0000000..9450785
--- /dev/null
@@ -0,0 +1,95 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*i $Id: i*)
+
+(*s Axioms for the basic numerical operations *)
+
+include "Num/Params.ma".
+
+include "Num/EqAxioms.ma".
+
+include "Num/NSyntax.ma".
+
+(*s Lemmas for [add] *)
+
+inline procedural "cic:/Coq/Num/Nat/Axioms/add_Sx_y.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve add_Sx_y : nat.
+*)
+
+(*s Lemmas for [add] *)
+
+inline procedural "cic:/Coq/Num/Nat/Axioms/add_0_x.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve add_0_x : nat.
+*)
+
+inline procedural "cic:/Coq/Num/Nat/Axioms/add_sym.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve add_sym : nat.
+*)
+
+inline procedural "cic:/Coq/Num/Nat/Axioms/add_eq_compat.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve add_eq_compat : nat.
+*)
+
+inline procedural "cic:/Coq/Num/Nat/Axioms/add_assoc_l.con" as lemma.
+
+(*s Lemmas for [one] *)
+
+inline procedural "cic:/Coq/Num/Nat/Axioms/S_0_1.con" as lemma.
+
+(*s Lemmas for [<], 
+    properties of [>], [<=] and [>=] will be derived from [<] *)
+
+inline procedural "cic:/Coq/Num/Nat/Axioms/lt_trans.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve lt_trans : nat.
+*)
+
+inline procedural "cic:/Coq/Num/Nat/Axioms/lt_x_Sx.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve lt_x_Sx : nat.
+*)
+
+inline procedural "cic:/Coq/Num/Nat/Axioms/lt_S_compat.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve lt_S_compat : nat.
+*)
+
+inline procedural "cic:/Coq/Num/Nat/Axioms/lt_eq_compat.con" as lemma.
+
+inline procedural "cic:/Coq/Num/Nat/Axioms/lt_add_compat_l.con" as lemma.
+
+inline procedural "cic:/Coq/Num/Nat/Axioms/lt_Sx_Sy_lt.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate lt_Sx_Sy_lt : nat.
+*)
+
+inline procedural "cic:/Coq/Num/Nat/Axioms/lt_anti_refl.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/Nat/NSyntax.mma b/helm/software/matita/contribs/procedural/Coq/Num/Nat/NSyntax.mma
new file mode 100644 (file)
index 0000000..c2b4871
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*s Syntax for arithmetic *)
+
+(* NOTATION
+Infix 6 "<" lt.
+*)
+
+(* NOTATION
+Infix 6 "<=" le.
+*)
+
+(* NOTATION
+Infix 6 ">" gt.
+*)
+
+(* NOTATION
+Infix 6 ">=" ge.
+*)
+
+(*i Infix 7 "+" plus. i*)
+
+(* NOTATION
+Grammar constr lassoc_constr4 :=
+  squash_sum
+  [ lassoc_constr4($c1) "+" lassoc_constr4($c2) ] ->
+      case [$c2] of
+        (SQUASH $T2) ->
+            case [$c1] of
+              (SQUASH $T1) -> [ (sumbool $T1 $T2) ] (* {T1}+{T2} *)
+            | $_           -> [ (sumor $c1 $T2) ]   (* c1+{T2} *)
+            esac
+      | $_           -> [ (add $c1 $c2) ]           (* c1+c2 *)
+      esac.
+*)
+
+(* NOTATION
+Syntax constr
+  level 4:
+    sum [ (add $t1 $t2) ] -> [ [<hov 0> $t1:E [0 1] "+" $t2:L ] ]
+.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/Nat/NeqDef.mma b/helm/software/matita/contribs/procedural/Coq/Num/Nat/NeqDef.mma
new file mode 100644 (file)
index 0000000..eff18db
--- /dev/null
@@ -0,0 +1,24 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*s Definition of inequality *)
+
+include "Num/Params.ma".
+
+inline procedural "cic:/Coq/Num/Nat/NeqDef/neq.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/NeqAxioms.mma b/helm/software/matita/contribs/procedural/Coq/Num/NeqAxioms.mma
new file mode 100644 (file)
index 0000000..e7b7e12
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: NeqAxioms.v,v 1.2 2002/02/14 14:39:03 filliatr Exp $ i*)
+
+(*#* InEquality is introduced as an independant parameter, it could be 
+    instantiated with the negation of equality *)
+
+include "Num/EqParams.ma".
+
+include "Num/NeqParams.ma".
+
+inline procedural "cic:/Coq/Num/NeqAxioms/eq_not_neq.con".
+
+(* UNEXPORTED
+Hints Immediate eq_not_neq : num.
+*)
+
+inline procedural "cic:/Coq/Num/NeqAxioms/neq_sym.con".
+
+(* UNEXPORTED
+Hints Resolve neq_sym : num.
+*)
+
+inline procedural "cic:/Coq/Num/NeqAxioms/neq_not_neq_trans.con".
+
+(* UNEXPORTED
+Hints Resolve neq_not_neq_trans : num.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/NeqDef.mma b/helm/software/matita/contribs/procedural/Coq/Num/NeqDef.mma
new file mode 100644 (file)
index 0000000..5e256a1
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: NeqDef.v,v 1.6 2003/10/22 10:35:03 barras Exp $ i*)
+
+(*#* DisEquality is defined as the negation of equality *)
+
+include "Num/Params.ma".
+
+include "Num/EqParams.ma".
+
+include "Num/EqAxioms.ma".
+
+inline procedural "cic:/Coq/Num/NeqDef/neq.con" as definition.
+
+(* NOTATION
+Infix 6 "<>" neq V8only 70.
+*)
+
+(* Proofs of axioms *)
+
+inline procedural "cic:/Coq/Num/NeqDef/eq_not_neq.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate eq_not_neq : num.
+*)
+
+inline procedural "cic:/Coq/Num/NeqDef/neq_sym.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve neq_sym : num.
+*)
+
+inline procedural "cic:/Coq/Num/NeqDef/neq_not_neq_trans.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve neq_not_neq_trans : num.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/NeqParams.mma b/helm/software/matita/contribs/procedural/Coq/Num/NeqParams.mma
new file mode 100644 (file)
index 0000000..72d8886
--- /dev/null
@@ -0,0 +1,45 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: NeqParams.v,v 1.4 2003/10/22 10:35:03 barras Exp $ i*)
+
+(*#* InEquality is introduced as an independant parameter, it could be 
+    instantiated with the negation of equality *)
+
+include "Num/Params.ma".
+
+inline procedural "cic:/Coq/Num/NeqParams/neq.con".
+
+(* NOTATION
+Infix 6 "<>" neq V8only 70.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/NeqProps.mma b/helm/software/matita/contribs/procedural/Coq/Num/NeqProps.mma
new file mode 100644 (file)
index 0000000..ff4504d
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+include "Num/NeqParams.ma".
+
+include "Num/NeqAxioms.ma".
+
+include "Num/EqParams.ma".
+
+include "Num/EqAxioms.ma".
+
+(*#* This file contains basic properties of disequality *)
+
+inline procedural "cic:/Coq/Num/NeqProps/neq_antirefl.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve neq_antirefl : num.
+*)
+
+inline procedural "cic:/Coq/Num/NeqProps/eq_not_neq_y_x.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate eq_not_neq_y_x : num.
+*)
+
+inline procedural "cic:/Coq/Num/NeqProps/neq_not_eq.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate neq_not_eq : num.
+*)
+
+inline procedural "cic:/Coq/Num/NeqProps/neq_not_eq_y_x.con" as lemma.
+
+(* UNEXPORTED
+Hints Immediate neq_not_eq_y_x : num.
+*)
+
+inline procedural "cic:/Coq/Num/NeqProps/not_neq_neq_trans.con" as lemma.
+
+(* UNEXPORTED
+Hints Resolve not_neq_neq_trans : num.
+*)
+
+inline procedural "cic:/Coq/Num/NeqProps/neq_eq_compat.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/OppAxioms.mma b/helm/software/matita/contribs/procedural/Coq/Num/OppAxioms.mma
new file mode 100644 (file)
index 0000000..4ac4014
--- /dev/null
@@ -0,0 +1,32 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/OppProps.mma b/helm/software/matita/contribs/procedural/Coq/Num/OppProps.mma
new file mode 100644 (file)
index 0000000..4ac4014
--- /dev/null
@@ -0,0 +1,32 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/Params.mma b/helm/software/matita/contribs/procedural/Coq/Num/Params.mma
new file mode 100644 (file)
index 0000000..e076c3a
--- /dev/null
@@ -0,0 +1,63 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Params.v,v 1.2 2002/02/14 14:39:04 filliatr Exp $ i*)
+
+(*#* 
+  Axiomatisation of a numerical set 
+
+  It will be instantiated by Z and R later on
+  We choose to introduce many operation to allow flexibility in definition 
+  ([S] is primitive in the definition of [nat] while [add] and [one] 
+   are primitive in the definition 
+*)
+
+inline procedural "cic:/Coq/Num/Params/N.con".
+
+inline procedural "cic:/Coq/Num/Params/zero.con".
+
+inline procedural "cic:/Coq/Num/Params/one.con".
+
+inline procedural "cic:/Coq/Num/Params/add.con".
+
+inline procedural "cic:/Coq/Num/Params/S.con".
+
+(*#* Relations, equality is defined separately *)
+
+inline procedural "cic:/Coq/Num/Params/lt.con".
+
+inline procedural "cic:/Coq/Num/Params/le.con".
+
+inline procedural "cic:/Coq/Num/Params/gt.con".
+
+inline procedural "cic:/Coq/Num/Params/ge.con".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Num/SubProps.mma b/helm/software/matita/contribs/procedural/Coq/Num/SubProps.mma
new file mode 100644 (file)
index 0000000..4ac4014
--- /dev/null
@@ -0,0 +1,32 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Alembert.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Alembert.mma
new file mode 100644 (file)
index 0000000..df4f9d9
--- /dev/null
@@ -0,0 +1,78 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Alembert.v,v 1.14 2003/12/24 10:27:06 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Rseries.ma".
+
+include "Reals/SeqProp.ma".
+
+include "Reals/PartSum.ma".
+
+include "Arith/Max.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#**************************************************)
+
+(* Various versions of the criterion of D'Alembert *)
+
+(*#**************************************************)
+
+inline procedural "cic:/Coq/Reals/Alembert/Alembert_C1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Alembert/Alembert_C2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Alembert/AlembertC3_step1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Alembert/AlembertC3_step2.con" as lemma.
+
+(* An useful criterion of convergence for power series *)
+
+inline procedural "cic:/Coq/Reals/Alembert/Alembert_C3.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Alembert/Alembert_C4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Alembert/Alembert_C5.con" as lemma.
+
+(* Convergence of power series in D(O,1/k) *)
+
+(*     k=0 is described in Alembert_C3     *)
+
+inline procedural "cic:/Coq/Reals/Alembert/Alembert_C6.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/AltSeries.mma b/helm/software/matita/contribs/procedural/Coq/Reals/AltSeries.mma
new file mode 100644 (file)
index 0000000..019c585
--- /dev/null
@@ -0,0 +1,116 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: AltSeries.v,v 1.12 2003/12/24 10:27:06 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Rseries.ma".
+
+include "Reals/SeqProp.ma".
+
+include "Reals/PartSum.ma".
+
+include "Arith/Max.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/AltSeries/tg_alt.con" as definition.
+
+inline procedural "cic:/Coq/Reals/AltSeries/positivity_seq.con" as definition.
+
+inline procedural "cic:/Coq/Reals/AltSeries/CV_ALT_step0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/AltSeries/CV_ALT_step1.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/AltSeries/CV_ALT_step2.con" as lemma.
+
+(* A more general inequality *)
+
+inline procedural "cic:/Coq/Reals/AltSeries/CV_ALT_step3.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/AltSeries/CV_ALT_step4.con" as lemma.
+
+(* This lemma gives an interesting result about alternated series *)
+
+inline procedural "cic:/Coq/Reals/AltSeries/CV_ALT.con" as lemma.
+
+(*#***********************************************)
+
+(*        Convergence of alternated series      *)
+
+(*                                              *)
+
+(*         Applications: PI, cos, sin           *)
+
+(*#***********************************************)
+
+inline procedural "cic:/Coq/Reals/AltSeries/alternated_series.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/AltSeries/alternated_series_ineq.con" as theorem.
+
+(*#***********************************)
+
+(* Application : construction of PI *)
+
+(*#***********************************)
+
+inline procedural "cic:/Coq/Reals/AltSeries/PI_tg.con" as definition.
+
+inline procedural "cic:/Coq/Reals/AltSeries/PI_tg_pos.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/AltSeries/PI_tg_decreasing.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/AltSeries/PI_tg_cv.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/AltSeries/exist_PI.con" as lemma.
+
+(* Now, PI is defined *)
+
+inline procedural "cic:/Coq/Reals/AltSeries/PI.con" as definition.
+
+(* We can get an approximation of PI with the following inequality *)
+
+inline procedural "cic:/Coq/Reals/AltSeries/PI_ineq.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/AltSeries/PI_RGT_0.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/ArithProp.mma b/helm/software/matita/contribs/procedural/Coq/Reals/ArithProp.mma
new file mode 100644 (file)
index 0000000..b91f2f7
--- /dev/null
@@ -0,0 +1,70 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: ArithProp.v,v 1.11 2003/12/24 10:27:06 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rbasic_fun.ma".
+
+include "Arith/Even.ma".
+
+include "Arith/Div2.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/ArithProp/minus_neq_O.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/ArithProp/le_minusni_n.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/ArithProp/lt_minus_O_lt.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/ArithProp/even_odd_cor.con" as lemma.
+
+(* 2m <= 2n => m<=n *)
+
+inline procedural "cic:/Coq/Reals/ArithProp/le_double.con" as lemma.
+
+(* Here, we have the euclidian division *)
+
+(* This lemma is used in the proof of sin_eq_0 : (sin x)=0<->x=kPI *)
+
+inline procedural "cic:/Coq/Reals/ArithProp/euclidian_division.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/ArithProp/tech8.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Binomial.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Binomial.mma
new file mode 100644 (file)
index 0000000..f8a324d
--- /dev/null
@@ -0,0 +1,62 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Binomial.v,v 1.9 2003/12/24 10:27:06 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/PartSum.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/Binomial/C.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Binomial/pascal_step1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Binomial/pascal_step2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Binomial/pascal_step3.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Binomial/pascal.con" as lemma.
+
+(*#********************)
+
+(*#********************)
+
+inline procedural "cic:/Coq/Reals/Binomial/binomial.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Cauchy_prod.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Cauchy_prod.mma
new file mode 100644 (file)
index 0000000..25f56f7
--- /dev/null
@@ -0,0 +1,58 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Cauchy_prod.v,v 1.10 2003/12/24 10:27:06 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Rseries.ma".
+
+include "Reals/PartSum.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Cauchy_prod/sum_N_predN.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Cauchy_prod/sum_plus.con" as lemma.
+
+(* The main result *)
+
+inline procedural "cic:/Coq/Reals/Cauchy_prod/cauchy_finite.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Cos_plus.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Cos_plus.mma
new file mode 100644 (file)
index 0000000..dbe73f1
--- /dev/null
@@ -0,0 +1,70 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Cos_plus.v,v 1.11 2003/12/24 10:27:06 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Rtrigo_def.ma".
+
+include "Reals/Cos_rel.ma".
+
+include "Arith/Max.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/Cos_plus/Majxy.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Cos_plus/Majxy_cv_R0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Cos_plus/reste1_maj.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Cos_plus/reste2_maj.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Cos_plus/reste1_cv_R0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Cos_plus/reste2_cv_R0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Cos_plus/reste_cv_R0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Cos_plus/cos_plus.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Cos_rel.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Cos_rel.mma
new file mode 100644 (file)
index 0000000..c0a1b2e
--- /dev/null
@@ -0,0 +1,70 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Cos_rel.v,v 1.12 2003/12/24 10:27:06 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Rtrigo_def.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/Cos_rel/A1.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Cos_rel/B1.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Cos_rel/C1.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Cos_rel/Reste1.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Cos_rel/Reste2.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Cos_rel/Reste.con" as definition.
+
+(* Here is the main result that will be used to prove that (cos (x+y))=(cos x)(cos y)-(sin x)(sin y) *)
+
+inline procedural "cic:/Coq/Reals/Cos_rel/cos_plus_form.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Cos_rel/pow_sqr.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Cos_rel/A1_cvg.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Cos_rel/C1_cvg.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Cos_rel/B1_cvg.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/DiscrR.mma b/helm/software/matita/contribs/procedural/Coq/Reals/DiscrR.mma
new file mode 100644 (file)
index 0000000..1c490bd
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i        $Id: DiscrR.v,v 1.21 2003/11/29 17:28:35 herbelin Exp $       i*)
+
+include "Reals/RIneq.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/DiscrR/Rlt_R0_R2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/DiscrR/Rplus_lt_pos.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/DiscrR/IZR_eq.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/DiscrR/IZR_neq.con" as lemma.
+
+(* UNEXPORTED
+Ltac discrR :=
+  try
+   match goal with
+   |  |- (?X1 <> ?X2) =>
+       replace 2 with (IZR 2);
+        [ replace 1 with (IZR 1);
+           [ replace 0 with (IZR 0);
+              [ repeat
+                 rewrite <- plus_IZR ||
+                   rewrite <- mult_IZR ||
+                     rewrite <- Ropp_Ropp_IZR || rewrite Z_R_minus;
+                 apply IZR_neq; try discriminate
+              | reflexivity ]
+           | reflexivity ]
+        | reflexivity ]
+   end.
+*)
+
+(* UNEXPORTED
+Ltac prove_sup0 :=
+  match goal with
+  |  |- (0 < 1) => apply Rlt_0_1
+  |  |- (0 < ?X1) =>
+      repeat
+       (apply Rmult_lt_0_compat || apply Rplus_lt_pos;
+         try apply Rlt_0_1 || apply Rlt_R0_R2)
+  |  |- (?X1 > 0) => change (0 < X1) in |- *; prove_sup0
+  end.
+*)
+
+(* UNEXPORTED
+Ltac omega_sup :=
+  replace 2 with (IZR 2);
+   [ replace 1 with (IZR 1);
+      [ replace 0 with (IZR 0);
+         [ repeat
+            rewrite <- plus_IZR ||
+              rewrite <- mult_IZR ||
+                rewrite <- Ropp_Ropp_IZR || rewrite Z_R_minus; 
+            apply IZR_lt; omega
+         | reflexivity ]
+      | reflexivity ]
+   | reflexivity ].
+*)
+
+(* UNEXPORTED
+Ltac prove_sup :=
+  match goal with
+  |  |- (?X1 > ?X2) => change (X2 < X1) in |- *; prove_sup
+  |  |- (0 < ?X1) => prove_sup0
+  |  |- (- ?X1 < 0) => rewrite <- Ropp_0; prove_sup
+  |  |- (- ?X1 < - ?X2) => apply Ropp_lt_gt_contravar; prove_sup
+  |  |- (- ?X1 < ?X2) => apply Rlt_trans with 0; prove_sup
+  |  |- (?X1 < ?X2) => omega_sup
+  | _ => idtac
+  end.
+*)
+
+(* UNEXPORTED
+Ltac Rcompute :=
+  replace 2 with (IZR 2);
+   [ replace 1 with (IZR 1);
+      [ replace 0 with (IZR 0);
+         [ repeat
+            rewrite <- plus_IZR ||
+              rewrite <- mult_IZR ||
+                rewrite <- Ropp_Ropp_IZR || rewrite Z_R_minus; 
+            apply IZR_eq; try reflexivity
+         | reflexivity ]
+      | reflexivity ]
+   | reflexivity ].
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Exp_prop.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Exp_prop.mma
new file mode 100644 (file)
index 0000000..f1c3212
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Exp_prop.v,v 1.16 2003/12/24 10:27:06 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Rtrigo.ma".
+
+include "Reals/Ranalysis1.ma".
+
+include "Reals/PSeries_reg.ma".
+
+include "Arith/Div2.ma".
+
+include "Arith/Even.ma".
+
+include "Arith/Max.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/Exp_prop/E1.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Exp_prop/E1_cvg.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Exp_prop/Reste_E.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Exp_prop/exp_form.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Exp_prop/maj_Reste_E.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Exp_prop/Rle_Rinv.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Exp_prop/div2_double.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Exp_prop/div2_S_double.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Exp_prop/div2_not_R0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Exp_prop/Reste_E_maj.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Exp_prop/maj_Reste_cv_R0.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Exp_prop/Reste_E_cv.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Exp_prop/exp_plus.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Exp_prop/exp_pos_pos.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Exp_prop/exp_pos.con" as lemma.
+
+(* ((exp h)-1)/h -> 0 quand h->0 *)
+
+inline procedural "cic:/Coq/Reals/Exp_prop/derivable_pt_lim_exp_0.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Exp_prop/derivable_pt_lim_exp.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Integration.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Integration.mma
new file mode 100644 (file)
index 0000000..0466d2a
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Integration.v,v 1.1 2002/11/27 21:17:05 desmettr Exp $ i*)
+
+include "Reals/NewtonInt.ma".
+
+include "Reals/RiemannInt_SF.ma".
+
+include "Reals/RiemannInt.ma".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/MVT.mma b/helm/software/matita/contribs/procedural/Coq/Reals/MVT.mma
new file mode 100644 (file)
index 0000000..99bcb04
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: MVT.v,v 1.10 2003/12/24 10:27:06 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Ranalysis1.ma".
+
+include "Reals/Rtopology.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(* The Mean Value Theorem *)
+
+inline procedural "cic:/Coq/Reals/MVT/MVT.con" as theorem.
+
+(* Corollaries ... *)
+
+inline procedural "cic:/Coq/Reals/MVT/MVT_cor1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/MVT/MVT_cor2.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/MVT/MVT_cor3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/MVT/Rolle.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/MVT/nonneg_derivative_1.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/MVT/nonpos_derivative_0.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/MVT/increasing_decreasing_opp.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/MVT/nonpos_derivative_1.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/MVT/positive_derivative.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/MVT/strictincreasing_strictdecreasing_opp.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/MVT/negative_derivative.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/MVT/null_derivative_0.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/MVT/increasing_decreasing.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/MVT/null_derivative_1.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/MVT/derive_increasing_interv_ax.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/MVT/derive_increasing_interv.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/MVT/derive_increasing_interv_var.con" as lemma.
+
+(*#*********)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/MVT/IAF.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/MVT/IAF_var.con" as lemma.
+
+(* If f has a null derivative in ]a,b[ and is continue in [a,b], *)
+
+(* then f is constant on [a,b] *)
+
+inline procedural "cic:/Coq/Reals/MVT/null_derivative_loc.con" as lemma.
+
+(* Unicity of the antiderivative *)
+
+inline procedural "cic:/Coq/Reals/MVT/antiderivative_Ucte.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/NewtonInt.mma b/helm/software/matita/contribs/procedural/Coq/Reals/NewtonInt.mma
new file mode 100644 (file)
index 0000000..bd802aa
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: NewtonInt.v,v 1.11 2003/12/24 10:27:06 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Rtrigo.ma".
+
+include "Reals/Ranalysis.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#******************************************)
+
+(*            Newton's Integral            *)
+
+(*#******************************************)
+
+inline procedural "cic:/Coq/Reals/NewtonInt/Newton_integrable.con" as definition.
+
+inline procedural "cic:/Coq/Reals/NewtonInt/NewtonInt.con" as definition.
+
+(* If f is differentiable, then f' is Newton integrable (Tautology ?) *)
+
+inline procedural "cic:/Coq/Reals/NewtonInt/FTCN_step1.con" as lemma.
+
+(* By definition, we have the Fondamental Theorem of Calculus *)
+
+inline procedural "cic:/Coq/Reals/NewtonInt/FTC_Newton.con" as lemma.
+
+(* $\int_a^a f$ exists forall a:R and f:R->R *)
+
+inline procedural "cic:/Coq/Reals/NewtonInt/NewtonInt_P1.con" as lemma.
+
+(* $\int_a^a f = 0$ *)
+
+inline procedural "cic:/Coq/Reals/NewtonInt/NewtonInt_P2.con" as lemma.
+
+(* If $\int_a^b f$ exists, then $\int_b^a f$ exists too *)
+
+inline procedural "cic:/Coq/Reals/NewtonInt/NewtonInt_P3.con" as lemma.
+
+(* $\int_a^b f = -\int_b^a f$ *)
+
+inline procedural "cic:/Coq/Reals/NewtonInt/NewtonInt_P4.con" as lemma.
+
+(* The set of Newton integrable functions is a vectorial space *)
+
+inline procedural "cic:/Coq/Reals/NewtonInt/NewtonInt_P5.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/NewtonInt/antiderivative_P1.con" as lemma.
+
+(* $\int_a^b \lambda f + g = \lambda \int_a^b f + \int_a^b f *)
+
+inline procedural "cic:/Coq/Reals/NewtonInt/NewtonInt_P6.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/NewtonInt/antiderivative_P2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/NewtonInt/antiderivative_P3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/NewtonInt/antiderivative_P4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/NewtonInt/NewtonInt_P7.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/NewtonInt/NewtonInt_P8.con" as lemma.
+
+(* Chasles' relation *)
+
+inline procedural "cic:/Coq/Reals/NewtonInt/NewtonInt_P9.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/PSeries_reg.mma b/helm/software/matita/contribs/procedural/Coq/Reals/PSeries_reg.mma
new file mode 100644 (file)
index 0000000..a750e9f
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: PSeries_reg.v,v 1.12 2003/12/24 10:27:06 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Ranalysis1.ma".
+
+include "Arith/Max.ma".
+
+include "Arith/Even.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/PSeries_reg/Boule.con" as definition.
+
+(* Uniform convergence *)
+
+inline procedural "cic:/Coq/Reals/PSeries_reg/CVU.con" as definition.
+
+(* Normal convergence *)
+
+inline procedural "cic:/Coq/Reals/PSeries_reg/CVN_r.con" as definition.
+
+inline procedural "cic:/Coq/Reals/PSeries_reg/CVN_R.con" as definition.
+
+inline procedural "cic:/Coq/Reals/PSeries_reg/SFL.con" as definition.
+
+(* In a complete space, normal convergence implies uniform convergence *)
+
+inline procedural "cic:/Coq/Reals/PSeries_reg/CVN_CVU.con" as lemma.
+
+(* Each limit of a sequence of functions which converges uniformly is continue *)
+
+inline procedural "cic:/Coq/Reals/PSeries_reg/CVU_continuity.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/PSeries_reg/continuity_pt_finite_SF.con" as lemma.
+
+(* Continuity and normal convergence *)
+
+inline procedural "cic:/Coq/Reals/PSeries_reg/SFL_continuity_pt.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PSeries_reg/SFL_continuity.con" as lemma.
+
+(* As R is complete, normal convergence implies that (fn) is simply-uniformly convergent *)
+
+inline procedural "cic:/Coq/Reals/PSeries_reg/CVN_R_CVS.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/PartSum.mma b/helm/software/matita/contribs/procedural/Coq/Reals/PartSum.mma
new file mode 100644 (file)
index 0000000..8f4eb3b
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: PartSum.v,v 1.11 2003/12/24 10:27:06 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Rseries.ma".
+
+include "Reals/Rcomplete.ma".
+
+include "Arith/Max.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/PartSum/tech1.con" as lemma.
+
+(* Chasles' relation *)
+
+inline procedural "cic:/Coq/Reals/PartSum/tech2.con" as lemma.
+
+(* Sum of geometric sequences *)
+
+inline procedural "cic:/Coq/Reals/PartSum/tech3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/tech4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/tech5.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/tech6.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/tech7.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/tech11.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/tech12.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/scal_sum.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/decomp_sum.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/plus_sum.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/sum_eq.con" as lemma.
+
+(* Unicity of the limit defined by convergent series *)
+
+inline procedural "cic:/Coq/Reals/PartSum/uniqueness_sum.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/minus_sum.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/sum_decomposition.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/sum_Rle.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/Rsum_abs.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/sum_cte.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/PartSum/sum_growing.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/PartSum/Rabs_triang_gen.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/PartSum/cond_pos_sum.con" as lemma.
+
+(* Cauchy's criterion for series *)
+
+inline procedural "cic:/Coq/Reals/PartSum/Cauchy_crit_series.con" as definition.
+
+(* If (|An|) satisfies the Cauchy's criterion for series, then (An) too *)
+
+inline procedural "cic:/Coq/Reals/PartSum/cauchy_abs.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/PartSum/cv_cauchy_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/cv_cauchy_2.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/PartSum/sum_eq_R0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/PartSum/SP.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/PartSum/sum_incr.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/PartSum/sum_cv_maj.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/RIneq.mma b/helm/software/matita/contribs/procedural/Coq/Reals/RIneq.mma
new file mode 100644 (file)
index 0000000..df90c5f
--- /dev/null
@@ -0,0 +1,1294 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: RIneq.v,v 1.23 2003/12/15 19:48:20 barras Exp $ i*)
+
+(*#**************************************************************************)
+
+(*#*              Basic lemmas for the classical reals numbers              *)
+
+(*#**************************************************************************)
+
+include "Reals/Raxioms.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(* UNEXPORTED
+Implicit Type r : R.
+*)
+
+(*#**************************************************************************)
+
+(*#*       Instantiating Ring tactic on reals                               *)
+
+(*#**************************************************************************)
+
+inline procedural "cic:/Coq/Reals/RIneq/RTheory.con" as lemma.
+
+(* NOTATION
+Add Field R Rplus Rmult 1 0 Ropp (fun x y:R => false) Rinv RTheory Rinv_l
+ with minus := Rminus div := Rdiv.
+*)
+
+(*#*************************************************************************)
+
+(*#*  Relation between orders and equality                                 *)
+
+(*#*************************************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rlt_irrefl.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rlt_irrefl: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rle_refl.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rlt_not_eq.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rgt_not_eq.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rlt_dichotomy_converse.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rlt_dichotomy_converse: real.
+*)
+
+(*#* Reasoning by case on equalities and order *)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Req_dec.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Req_dec: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rtotal_order.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rdichotomy.con" as lemma.
+
+(*#********************************************************************************)
+
+(*#*       Order Lemma  : relating [<], [>], [<=] and [>=]                      *)
+
+(*#********************************************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rlt_le.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rlt_le: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rle_ge.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate Rle_ge: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rge_le.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rge_le: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rnot_le_lt.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate Rnot_le_lt: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rnot_ge_lt.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rlt_not_le.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rgt_not_le.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate Rlt_not_le: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rle_not_lt.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rlt_not_ge.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate Rlt_not_ge: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Req_le.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate Req_le: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Req_ge.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate Req_ge: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Req_le_sym.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate Req_le_sym: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Req_ge_sym.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate Req_ge_sym: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rle_antisym.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rle_antisym: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rle_le_eq.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rlt_eq_compat.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rle_trans.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rle_lt_trans.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rlt_le_trans.con" as lemma.
+
+(*#* Decidability of the order *)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rlt_dec.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rle_dec.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rgt_dec.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rge_dec.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rlt_le_dec.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rle_or_lt.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rle_lt_or_eq_dec.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/inser_trans_R.con" as lemma.
+
+(*#***************************************************************)
+
+(*#*        Field Lemmas                                         *)
+
+(* This part contains lemma involving the Fields operations     *)
+
+(*#***************************************************************)
+
+(*#********************************************************)
+
+(*#*      Addition                                        *)
+
+(*#********************************************************)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_ne.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rplus_ne: real v62.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_0_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rplus_0_r: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_opp_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rplus_opp_l: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_opp_r_uniq.con" as lemma.
+
+(*i New i*)
+
+(* UNEXPORTED
+Hint Resolve (f_equal (A:=R)): real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_eq_compat_l.con" as lemma.
+
+(*i Old i*)
+
+(* UNEXPORTED
+Hint Resolve Rplus_eq_compat_l: v62.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_eq_reg_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rplus_eq_reg_l: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_0_r_uniq.con" as lemma.
+
+(*#**********************************************************)
+
+(*#*       Multiplication                                   *)
+
+(*#**********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rinv_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rinv_r: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rinv_l_sym.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rinv_r_sym.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rinv_l_sym Rinv_r_sym: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_0_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rmult_0_r: real v62.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_0_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rmult_0_l: real v62.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_ne.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rmult_ne: real v62.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_1_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rmult_1_r: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_eq_compat_l.con" as lemma.
+
+(*i OLD i*)
+
+(* UNEXPORTED
+Hint Resolve Rmult_eq_compat_l: v62.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_eq_reg_l.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_integral.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_eq_0_compat.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rmult_eq_0_compat: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_eq_0_compat_r.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_eq_0_compat_l.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_neq_0_reg.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_integral_contrapositive.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rmult_integral_contrapositive: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_plus_distr_r.con" as lemma.
+
+(*#* Square function *)
+
+(*#**********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rsqr.con" as definition.
+
+(*#**********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rsqr_0.con" as lemma.
+
+(*#**********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rsqr_0_uniq.con" as lemma.
+
+(*#********************************************************)
+
+(*#*      Opposite                                        *)
+
+(*#********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_eq_compat.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_eq_compat: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_0.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_0: real v62.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_eq_0_compat.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_eq_0_compat: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_involutive.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_involutive: real.
+*)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_neq_0_compat.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_neq_0_compat: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_plus_distr.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_plus_distr: real.
+*)
+
+(*#* Opposite and multiplication *)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_mult_distr_l_reverse.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_mult_distr_l_reverse: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_opp_opp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rmult_opp_opp: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_mult_distr_r_reverse.con" as lemma.
+
+(*#* Substraction *)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rminus_0_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rminus_0_r: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rminus_0_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rminus_0_l: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_minus_distr.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_minus_distr: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_minus_distr'.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_minus_distr': real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rminus_diag_eq.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rminus_diag_eq: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rminus_diag_uniq.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate Rminus_diag_uniq: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rminus_diag_uniq_sym.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate Rminus_diag_uniq_sym: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_minus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rplus_minus: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rminus_eq_contra.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rminus_eq_contra: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rminus_not_eq.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rminus_not_eq: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rminus_not_eq_right.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rminus_not_eq_right: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_minus_distr_l.con" as lemma.
+
+(*#* Inverse *)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rinv_1.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rinv_1: real.
+*)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rinv_neq_0_compat.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rinv_neq_0_compat: real.
+*)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rinv_involutive.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rinv_involutive: real.
+*)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rinv_mult_distr.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_inv_permute.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rinv_r_simpl_r.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rinv_r_simpl_l.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rinv_r_simpl_m.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rinv_r_simpl_l Rinv_r_simpl_r Rinv_r_simpl_m: real.
+*)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rinv_mult_simpl.con" as lemma.
+
+(*#* Order and addition *)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_lt_compat_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rplus_lt_compat_r: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_lt_reg_r.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_le_compat_l.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_le_compat_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rplus_le_compat_l Rplus_le_compat_r: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_le_reg_l.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/sum_inequa_Rle_lt.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_lt_compat.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_le_compat.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_lt_le_compat.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_le_lt_compat.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate Rplus_lt_compat Rplus_le_compat Rplus_lt_le_compat
+  Rplus_le_lt_compat: real.
+*)
+
+(*#* Order and Opposite *)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_gt_lt_contravar.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_gt_lt_contravar.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_lt_gt_contravar.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_lt_gt_contravar: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_lt_cancel.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate Ropp_lt_cancel: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_lt_contravar.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_lt_contravar: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_le_ge_contravar.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_le_ge_contravar: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_le_cancel.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate Ropp_le_cancel: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_le_contravar.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_le_contravar: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_ge_le_contravar.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_ge_le_contravar: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_0_lt_gt_contravar.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_0_lt_gt_contravar: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_0_gt_lt_contravar.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_0_gt_lt_contravar: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_lt_gt_0_contravar.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_gt_lt_0_contravar.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_lt_gt_0_contravar Ropp_gt_lt_0_contravar: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_0_le_ge_contravar.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_0_le_ge_contravar: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_0_ge_le_contravar.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Ropp_0_ge_le_contravar: real.
+*)
+
+(*#* Order and multiplication *)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_lt_compat_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rmult_lt_compat_r.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_lt_reg_l.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_lt_gt_compat_neg_l.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_le_compat_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rmult_le_compat_l: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_le_compat_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rmult_le_compat_r: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_le_reg_l.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_le_compat_neg_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rmult_le_compat_neg_l: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_le_ge_compat_neg_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rmult_le_ge_compat_neg_l: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_le_compat.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rmult_le_compat: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_gt_0_lt_compat.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_ge_0_gt_0_lt_compat.con" as lemma.
+
+(*#* Order and Substractions *)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rlt_minus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rlt_minus: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rle_minus.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rminus_lt.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rminus_le.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/tech_Rplus.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate tech_Rplus: real.
+*)
+
+(*#* Order and the square function *)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rle_0_sqr.con" as lemma.
+
+(*#**********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rlt_0_sqr.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rle_0_sqr Rlt_0_sqr: real.
+*)
+
+(*#* Zero is less than one *)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rlt_0_1.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rlt_0_1: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rle_0_1.con" as lemma.
+
+(*#* Order and inverse *)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rinv_0_lt_compat.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rinv_0_lt_compat: real.
+*)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rinv_lt_0_compat.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rinv_lt_0_compat: real.
+*)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rinv_lt_contravar.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rinv_1_lt_contravar.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rinv_1_lt_contravar: real.
+*)
+
+(*#********************************************************)
+
+(*#*      Greater                                         *)
+
+(*#********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rge_antisym.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rnot_lt_ge.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rnot_lt_le.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rnot_gt_le.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rgt_ge.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rge_gt_trans.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rgt_ge_trans.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rgt_trans.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rge_trans.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rle_lt_0_plus_1.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rle_lt_0_plus_1: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rlt_plus_1.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rlt_plus_1: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/tech_Rgt_minus.con" as lemma.
+
+(*#**********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_gt_compat_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rplus_gt_compat_l: real.
+*)
+
+(*#**********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_gt_reg_l.con" as lemma.
+
+(*#**********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_ge_compat_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rplus_ge_compat_l: real.
+*)
+
+(*#**********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_ge_reg_l.con" as lemma.
+
+(*#**********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_ge_compat_r.con" as lemma.
+
+(*#**********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rgt_minus.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/minus_Rgt.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rge_minus.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/minus_Rge.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_gt_0_compat.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_lt_0_compat.con" as lemma.
+
+(*#**********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_eq_0_l.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_eq_R0.con" as lemma.
+
+(*#**********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_sqr_eq_0_l.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_sqr_eq_0.con" as lemma.
+
+(*#*********************************************************)
+
+(*#*       Injection from [N] to [R]                       *)
+
+(*#*********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/S_INR.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/S_O_plus_INR.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/plus_INR.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/minus_INR.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/mult_INR.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve plus_INR minus_INR mult_INR: real.
+*)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/lt_INR_0.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve lt_INR_0: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/lt_INR.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve lt_INR: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/INR_lt_1.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve INR_lt_1: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/INR_pos.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve INR_pos: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/pos_INR.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve pos_INR: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/INR_lt.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve INR_lt: real.
+*)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/le_INR.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve le_INR: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/not_INR_O.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate not_INR_O: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/not_O_INR.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve not_O_INR: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/not_nm_INR.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve not_nm_INR: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/INR_eq.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve INR_eq: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/INR_le.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve INR_le: real.
+*)
+
+inline procedural "cic:/Coq/Reals/RIneq/not_1_INR.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve not_1_INR: real.
+*)
+
+(*#*********************************************************)
+
+(*#*      Injection from [Z] to [R]                        *)
+
+(*#*********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/IZN.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/INR_IZR_INZ.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/plus_IZR_NEG_POS.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/plus_IZR.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/mult_IZR.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Ropp_Ropp_IZR.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Z_R_minus.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/lt_O_IZR.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/lt_IZR.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/eq_IZR_R0.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/eq_IZR.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/not_O_IZR.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/le_O_IZR.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/le_IZR.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/le_IZR_R1.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/IZR_ge.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/IZR_le.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/IZR_lt.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/one_IZR_lt1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/one_IZR_r_R1.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/single_z_r_R1.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/tech_single_z_r_R1.con" as lemma.
+
+(*#****************************************************************)
+
+(*#* Definitions of new types                                     *)
+
+(*#****************************************************************)
+
+inline procedural "cic:/Coq/Reals/RIneq/nonnegreal.ind".
+
+inline procedural "cic:/Coq/Reals/RIneq/posreal.ind".
+
+inline procedural "cic:/Coq/Reals/RIneq/nonposreal.ind".
+
+inline procedural "cic:/Coq/Reals/RIneq/negreal.ind".
+
+inline procedural "cic:/Coq/Reals/RIneq/nonzeroreal.ind".
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/prod_neq_R0.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_le_pos.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/double.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/double_var.con" as lemma.
+
+(*#*********************************************************)
+
+(*#* Other rules about < and <=                            *)
+
+(*#*********************************************************)
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_lt_0_compat.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_le_lt_0_compat.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_lt_le_0_compat.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rplus_le_le_0_compat.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/plus_le_is_le.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/plus_lt_is_lt.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/Rmult_le_0_lt_compat.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RIneq/le_epsilon.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RIneq/completeness_weak.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/RList.mma b/helm/software/matita/contribs/procedural/Coq/Reals/RList.mma
new file mode 100644 (file)
index 0000000..a1f4920
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: RList.v,v 1.10 2003/12/15 19:48:20 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/RList/Rlist.ind".
+
+inline procedural "cic:/Coq/Reals/RList/In.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RList/Rlength.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RList/MaxRlist.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RList/MinRlist.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RList/MaxRlist_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/AbsList.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RList/MinRlist_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/AbsList_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/MinRlist_P2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/AbsList_P2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/MaxRlist_P2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/pos_Rl.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RList/pos_Rl_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/pos_Rl_P2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/Rlist_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/ordered_Rlist.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RList/insert.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RList/cons_Rlist.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RList/cons_ORlist.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RList/app_Rlist.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RList/mid_Rlist.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RList/Rtail.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RList/FF.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P5.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P6.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P7.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P8.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P9.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P10.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P11.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P12.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P13.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P14.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P15.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P16.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P17.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P18.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P19.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P20.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P21.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P22.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P23.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P24.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P25.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P26.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P27.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P28.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RList/RList_P29.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/R_Ifp.mma b/helm/software/matita/contribs/procedural/Coq/Reals/R_Ifp.mma
new file mode 100644 (file)
index 0000000..029d55d
--- /dev/null
@@ -0,0 +1,136 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: R_Ifp.v,v 1.14 2003/12/15 19:48:20 barras Exp $ i*)
+
+(*#*********************************************************)
+
+(*#* Complements for the reals.Integer and fractional part *)
+
+(*                                                        *)
+
+(*#*********************************************************)
+
+include "Reals/Rbase.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#********************************************************)
+
+(*#*      Fractional part                                 *)
+
+(*#********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/Int_part.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/frac_part.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/tech_up.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/up_tech.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/fp_R0.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/for_base_fp.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/base_fp.con" as lemma.
+
+(*#********************************************************)
+
+(*#*      Properties                                      *)
+
+(*#********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/base_Int_part.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/Int_part_INR.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/fp_nat.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/R0_fp_O.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/Rminus_Int_part1.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/Rminus_Int_part2.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/Rminus_fp1.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/Rminus_fp2.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/plus_Int_part1.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/plus_Int_part2.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/plus_frac_part1.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/R_Ifp/plus_frac_part2.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/R_sqr.mma b/helm/software/matita/contribs/procedural/Coq/Reals/R_sqr.mma
new file mode 100644 (file)
index 0000000..0ddf43b
--- /dev/null
@@ -0,0 +1,120 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: R_sqr.v,v 1.19 2003/11/29 17:28:35 herbelin Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rbasic_fun.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#***************************************************)
+
+(* Rsqr : some results                              *)
+
+(*#***************************************************)
+
+(* UNEXPORTED
+Ltac ring_Rsqr := unfold Rsqr in |- *; ring.
+*)
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_neg.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_mult.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_plus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_minus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_neg_minus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_gt_0_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_pos_lt.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_div.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_eq_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_minus_plus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_plus_minus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_incr_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_incr_0_var.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_incr_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_incrst_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_incrst_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_neg_pos_le_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_neg_pos_le_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/neg_pos_Rsqr_le.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_abs.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_le_abs_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_le_abs_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_lt_abs_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_lt_abs_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_inj.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_eq_abs_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_eq_asb_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/triangle_rectangle.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/triangle_rectangle_lt.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/triangle_rectangle_le.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/canonical_Rsqr.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqr/Rsqr_eq.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/R_sqrt.mma b/helm/software/matita/contribs/procedural/Coq/Reals/R_sqrt.mma
new file mode 100644 (file)
index 0000000..40c79d6
--- /dev/null
@@ -0,0 +1,112 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: R_sqrt.v,v 1.10 2003/11/29 17:28:35 herbelin Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Rsqrt_def.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(* Here is a continuous extension of Rsqrt on R *)
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt.con" as definition.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_positivity.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_sqrt.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_eq_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_lem_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqtr_lem_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_def.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_square.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_Rsqr.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_Rsqr_abs.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/Rsqr_sqrt.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_mult.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_lt_R0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_div.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_lt_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_lt_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_le_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_le_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_inj.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_less.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_more.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sqrt_cauchy.con" as lemma.
+
+(*#***********************************************************)
+
+(* Resolution of [a*X^2+b*X+c=0]                            *)
+
+(*#***********************************************************)
+
+inline procedural "cic:/Coq/Reals/R_sqrt/Delta.con" as definition.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/Delta_is_pos.con" as definition.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sol_x1.con" as definition.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/sol_x2.con" as definition.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/Rsqr_sol_eq_0_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/R_sqrt/Rsqr_sol_eq_0_0.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Ranalysis.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Ranalysis.mma
new file mode 100644 (file)
index 0000000..f9cbb7e
--- /dev/null
@@ -0,0 +1,880 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Ranalysis.v,v 1.19 2003/11/29 17:28:37 herbelin Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Rtrigo.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Ranalysis1.ma".
+
+include "Reals/Ranalysis2.ma".
+
+include "Reals/Ranalysis3.ma".
+
+include "Reals/Rtopology.ma".
+
+include "Reals/MVT.ma".
+
+include "Reals/PSeries_reg.ma".
+
+include "Reals/Exp_prop.ma".
+
+include "Reals/Rtrigo_reg.ma".
+
+include "Reals/Rsqrt_def.ma".
+
+include "Reals/R_sqrt.ma".
+
+include "Reals/Rtrigo_calc.ma".
+
+include "Reals/Rgeom.ma".
+
+include "Reals/RList.ma".
+
+include "Reals/Sqrt_reg.ma".
+
+include "Reals/Ranalysis4.ma".
+
+include "Reals/Rpower.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/Ranalysis/AppVar.con".
+
+(*#*********)
+
+(* UNEXPORTED
+Ltac intro_hyp_glob trm :=
+  match constr:trm with
+  | (?X1 + ?X2)%F =>
+      match goal with
+      |  |- (derivable _) => intro_hyp_glob X1; intro_hyp_glob X2
+      |  |- (continuity _) => intro_hyp_glob X1; intro_hyp_glob X2
+      | _ => idtac
+      end
+  | (?X1 - ?X2)%F =>
+      match goal with
+      |  |- (derivable _) => intro_hyp_glob X1; intro_hyp_glob X2
+      |  |- (continuity _) => intro_hyp_glob X1; intro_hyp_glob X2
+      | _ => idtac
+      end
+  | (?X1 * ?X2)%F =>
+      match goal with
+      |  |- (derivable _) => intro_hyp_glob X1; intro_hyp_glob X2
+      |  |- (continuity _) => intro_hyp_glob X1; intro_hyp_glob X2
+      | _ => idtac
+      end
+  | (?X1 / ?X2)%F =>
+      let aux := constr:X2 in
+      match goal with
+      | _:(forall x0:R, aux x0 <> 0) |- (derivable _) =>
+          intro_hyp_glob X1; intro_hyp_glob X2
+      | _:(forall x0:R, aux x0 <> 0) |- (continuity _) =>
+          intro_hyp_glob X1; intro_hyp_glob X2
+      |  |- (derivable _) =>
+          cut (forall x0:R, aux x0 <> 0);
+           [ intro; intro_hyp_glob X1; intro_hyp_glob X2 | try assumption ]
+      |  |- (continuity _) =>
+          cut (forall x0:R, aux x0 <> 0);
+           [ intro; intro_hyp_glob X1; intro_hyp_glob X2 | try assumption ]
+      | _ => idtac
+      end
+  | (comp ?X1 ?X2) =>
+      match goal with
+      |  |- (derivable _) => intro_hyp_glob X1; intro_hyp_glob X2
+      |  |- (continuity _) => intro_hyp_glob X1; intro_hyp_glob X2
+      | _ => idtac
+      end
+  | (- ?X1)%F =>
+      match goal with
+      |  |- (derivable _) => intro_hyp_glob X1
+      |  |- (continuity _) => intro_hyp_glob X1
+      | _ => idtac
+      end
+  | (/ ?X1)%F =>
+      let aux := constr:X1 in
+      match goal with
+      | _:(forall x0:R, aux x0 <> 0) |- (derivable _) =>
+          intro_hyp_glob X1
+      | _:(forall x0:R, aux x0 <> 0) |- (continuity _) => 
+      intro_hyp_glob X1
+      |  |- (derivable _) =>
+          cut (forall x0:R, aux x0 <> 0);
+           [ intro; intro_hyp_glob X1 | try assumption ]
+      |  |- (continuity _) =>
+          cut (forall x0:R, aux x0 <> 0);
+           [ intro; intro_hyp_glob X1 | try assumption ]
+      | _ => idtac
+      end
+  | cos => idtac
+  | sin => idtac
+  | cosh => idtac
+  | sinh => idtac
+  | exp => idtac
+  | Rsqr => idtac
+  | sqrt => idtac
+  | id => idtac
+  | (fct_cte _) => idtac
+  | (pow_fct _) => idtac
+  | Rabs => idtac
+  | ?X1 =>
+      let p := constr:X1 in
+      match goal with
+      | _:(derivable p) |- _ => idtac
+      |  |- (derivable p) => idtac
+      |  |- (derivable _) =>
+          cut (True -> derivable p);
+           [ intro HYPPD; cut (derivable p);
+              [ intro; clear HYPPD | apply HYPPD; clear HYPPD; trivial ]
+           | idtac ]
+      | _:(continuity p) |- _ => idtac
+      |  |- (continuity p) => idtac
+      |  |- (continuity _) =>
+          cut (True -> continuity p);
+           [ intro HYPPD; cut (continuity p);
+              [ intro; clear HYPPD | apply HYPPD; clear HYPPD; trivial ]
+           | idtac ]
+      | _ => idtac
+      end
+  end.
+*)
+
+(*#*********)
+
+(* UNEXPORTED
+Ltac intro_hyp_pt trm pt :=
+  match constr:trm with
+  | (?X1 + ?X2)%F =>
+      match goal with
+      |  |- (derivable_pt _ _) => intro_hyp_pt X1 pt; intro_hyp_pt X2 pt
+      |  |- (continuity_pt _ _) => intro_hyp_pt X1 pt; intro_hyp_pt X2 pt
+      |  |- (derive_pt _ _ _ = _) =>
+          intro_hyp_pt X1 pt; intro_hyp_pt X2 pt
+      | _ => idtac
+      end
+  | (?X1 - ?X2)%F =>
+      match goal with
+      |  |- (derivable_pt _ _) => intro_hyp_pt X1 pt; intro_hyp_pt X2 pt
+      |  |- (continuity_pt _ _) => intro_hyp_pt X1 pt; intro_hyp_pt X2 pt
+      |  |- (derive_pt _ _ _ = _) =>
+          intro_hyp_pt X1 pt; intro_hyp_pt X2 pt
+      | _ => idtac
+      end
+  | (?X1 * ?X2)%F =>
+      match goal with
+      |  |- (derivable_pt _ _) => intro_hyp_pt X1 pt; intro_hyp_pt X2 pt
+      |  |- (continuity_pt _ _) => intro_hyp_pt X1 pt; intro_hyp_pt X2 pt
+      |  |- (derive_pt _ _ _ = _) =>
+          intro_hyp_pt X1 pt; intro_hyp_pt X2 pt
+      | _ => idtac
+      end
+  | (?X1 / ?X2)%F =>
+      let aux := constr:X2 in
+      match goal with
+      | _:(aux pt <> 0) |- (derivable_pt _ _) =>
+          intro_hyp_pt X1 pt; intro_hyp_pt X2 pt
+      | _:(aux pt <> 0) |- (continuity_pt _ _) =>
+          intro_hyp_pt X1 pt; intro_hyp_pt X2 pt
+      | _:(aux pt <> 0) |- (derive_pt _ _ _ = _) =>
+          intro_hyp_pt X1 pt; intro_hyp_pt X2 pt
+      | id:(forall x0:R, aux x0 <> 0) |- (derivable_pt _ _) =>
+          generalize (id pt); intro; intro_hyp_pt X1 pt; intro_hyp_pt X2 pt
+      | id:(forall x0:R, aux x0 <> 0) |- (continuity_pt _ _) =>
+          generalize (id pt); intro; intro_hyp_pt X1 pt; intro_hyp_pt X2 pt
+      | id:(forall x0:R, aux x0 <> 0) |- (derive_pt _ _ _ = _) =>
+          generalize (id pt); intro; intro_hyp_pt X1 pt; intro_hyp_pt X2 pt
+      |  |- (derivable_pt _ _) =>
+          cut (aux pt <> 0);
+           [ intro; intro_hyp_pt X1 pt; intro_hyp_pt X2 pt | try assumption ]
+      |  |- (continuity_pt _ _) =>
+          cut (aux pt <> 0);
+           [ intro; intro_hyp_pt X1 pt; intro_hyp_pt X2 pt | try assumption ]
+      |  |- (derive_pt _ _ _ = _) =>
+          cut (aux pt <> 0);
+           [ intro; intro_hyp_pt X1 pt; intro_hyp_pt X2 pt | try assumption ]
+      | _ => idtac
+      end
+  | (comp ?X1 ?X2) =>
+      match goal with
+      |  |- (derivable_pt _ _) =>
+          let pt_f1 := eval cbv beta in (X2 pt) in
+          (intro_hyp_pt X1 pt_f1; intro_hyp_pt X2 pt)
+      |  |- (continuity_pt _ _) =>
+          let pt_f1 := eval cbv beta in (X2 pt) in
+          (intro_hyp_pt X1 pt_f1; intro_hyp_pt X2 pt)
+      |  |- (derive_pt _ _ _ = _) =>
+          let pt_f1 := eval cbv beta in (X2 pt) in
+          (intro_hyp_pt X1 pt_f1; intro_hyp_pt X2 pt)
+      | _ => idtac
+      end
+  | (- ?X1)%F =>
+      match goal with
+      |  |- (derivable_pt _ _) => intro_hyp_pt X1 pt
+      |  |- (continuity_pt _ _) => intro_hyp_pt X1 pt
+      |  |- (derive_pt _ _ _ = _) => intro_hyp_pt X1 pt
+      | _ => idtac
+      end
+  | (/ ?X1)%F =>
+      let aux := constr:X1 in
+      match goal with
+      | _:(aux pt <> 0) |- (derivable_pt _ _) =>
+          intro_hyp_pt X1 pt
+      | _:(aux pt <> 0) |- (continuity_pt _ _) =>
+          intro_hyp_pt X1 pt
+      | _:(aux pt <> 0) |- (derive_pt _ _ _ = _) =>
+          intro_hyp_pt X1 pt
+      | id:(forall x0:R, aux x0 <> 0) |- (derivable_pt _ _) =>
+          generalize (id pt); intro; intro_hyp_pt X1 pt
+      | id:(forall x0:R, aux x0 <> 0) |- (continuity_pt _ _) =>
+          generalize (id pt); intro; intro_hyp_pt X1 pt
+      | id:(forall x0:R, aux x0 <> 0) |- (derive_pt _ _ _ = _) =>
+          generalize (id pt); intro; intro_hyp_pt X1 pt
+      |  |- (derivable_pt _ _) =>
+          cut (aux pt <> 0); [ intro; intro_hyp_pt X1 pt | try assumption ]
+      |  |- (continuity_pt _ _) =>
+          cut (aux pt <> 0); [ intro; intro_hyp_pt X1 pt | try assumption ]
+      |  |- (derive_pt _ _ _ = _) =>
+          cut (aux pt <> 0); [ intro; intro_hyp_pt X1 pt | try assumption ]
+      | _ => idtac
+      end
+  | cos => idtac
+  | sin => idtac
+  | cosh => idtac
+  | sinh => idtac
+  | exp => idtac
+  | Rsqr => idtac
+  | id => idtac
+  | (fct_cte _) => idtac
+  | (pow_fct _) => idtac
+  | sqrt =>
+      match goal with
+      |  |- (derivable_pt _ _) => cut (0 < pt); [ intro | try assumption ]
+      |  |- (continuity_pt _ _) =>
+          cut (0 <= pt); [ intro | try assumption ]
+      |  |- (derive_pt _ _ _ = _) =>
+          cut (0 < pt); [ intro | try assumption ]
+      | _ => idtac
+      end
+  | Rabs =>
+      match goal with
+      |  |- (derivable_pt _ _) =>
+          cut (pt <> 0); [ intro | try assumption ]
+      | _ => idtac
+      end
+  | ?X1 =>
+      let p := constr:X1 in
+      match goal with
+      | _:(derivable_pt p pt) |- _ => idtac
+      |  |- (derivable_pt p pt) => idtac
+      |  |- (derivable_pt _ _) =>
+          cut (True -> derivable_pt p pt);
+           [ intro HYPPD; cut (derivable_pt p pt);
+              [ intro; clear HYPPD | apply HYPPD; clear HYPPD; trivial ]
+           | idtac ]
+      | _:(continuity_pt p pt) |- _ => idtac
+      |  |- (continuity_pt p pt) => idtac
+      |  |- (continuity_pt _ _) =>
+          cut (True -> continuity_pt p pt);
+           [ intro HYPPD; cut (continuity_pt p pt);
+              [ intro; clear HYPPD | apply HYPPD; clear HYPPD; trivial ]
+           | idtac ]
+      |  |- (derive_pt _ _ _ = _) =>
+          cut (True -> derivable_pt p pt);
+           [ intro HYPPD; cut (derivable_pt p pt);
+              [ intro; clear HYPPD | apply HYPPD; clear HYPPD; trivial ]
+           | idtac ]
+      | _ => idtac
+      end
+  end.
+*)
+
+(*#*********)
+
+(* UNEXPORTED
+Ltac is_diff_pt :=
+  match goal with
+  |  |- (derivable_pt Rsqr _) =>
+      
+  (* fonctions de base *)
+  apply derivable_pt_Rsqr
+  |  |- (derivable_pt id ?X1) => apply (derivable_pt_id X1)
+  |  |- (derivable_pt (fct_cte _) _) => apply derivable_pt_const
+  |  |- (derivable_pt sin _) => apply derivable_pt_sin
+  |  |- (derivable_pt cos _) => apply derivable_pt_cos
+  |  |- (derivable_pt sinh _) => apply derivable_pt_sinh
+  |  |- (derivable_pt cosh _) => apply derivable_pt_cosh
+  |  |- (derivable_pt exp _) => apply derivable_pt_exp
+  |  |- (derivable_pt (pow_fct _) _) =>
+      unfold pow_fct in |- *; apply derivable_pt_pow
+  |  |- (derivable_pt sqrt ?X1) =>
+      apply (derivable_pt_sqrt X1);
+       assumption ||
+         unfold plus_fct, minus_fct, opp_fct, mult_fct, div_fct, inv_fct,
+          comp, id, fct_cte, pow_fct in |- *
+  |  |- (derivable_pt Rabs ?X1) =>
+      apply (Rderivable_pt_abs X1);
+       assumption ||
+         unfold plus_fct, minus_fct, opp_fct, mult_fct, div_fct, inv_fct,
+          comp, id, fct_cte, pow_fct in |- *
+        (* regles de differentiabilite *)
+        (* PLUS *)
+  |  |- (derivable_pt (?X1 + ?X2) ?X3) =>
+      apply (derivable_pt_plus X1 X2 X3); is_diff_pt
+       (* MOINS *)
+  |  |- (derivable_pt (?X1 - ?X2) ?X3) =>
+      apply (derivable_pt_minus X1 X2 X3); is_diff_pt
+       (* OPPOSE *)
+  |  |- (derivable_pt (- ?X1) ?X2) =>
+      apply (derivable_pt_opp X1 X2);
+       is_diff_pt
+       (* MULTIPLICATION PAR UN SCALAIRE *)
+  |  |- (derivable_pt (mult_real_fct ?X1 ?X2) ?X3) =>
+      apply (derivable_pt_scal X2 X1 X3); is_diff_pt
+       (* MULTIPLICATION *)
+  |  |- (derivable_pt (?X1 * ?X2) ?X3) =>
+      apply (derivable_pt_mult X1 X2 X3); is_diff_pt
+       (* DIVISION *)
+  |  |- (derivable_pt (?X1 / ?X2) ?X3) =>
+      apply (derivable_pt_div X1 X2 X3);
+       [ is_diff_pt
+       | is_diff_pt
+       | try
+          assumption ||
+            unfold plus_fct, mult_fct, div_fct, minus_fct, opp_fct, inv_fct,
+             comp, pow_fct, id, fct_cte in |- * ]
+  |  |- (derivable_pt (/ ?X1) ?X2) =>
+      
+       (* INVERSION *)
+       apply (derivable_pt_inv X1 X2);
+       [ assumption ||
+           unfold plus_fct, mult_fct, div_fct, minus_fct, opp_fct, inv_fct,
+            comp, pow_fct, id, fct_cte in |- *
+       | is_diff_pt ]
+  |  |- (derivable_pt (comp ?X1 ?X2) ?X3) =>
+      
+       (* COMPOSITION *)
+       apply (derivable_pt_comp X2 X1 X3); is_diff_pt
+  | _:(derivable_pt ?X1 ?X2) |- (derivable_pt ?X1 ?X2) =>
+      assumption
+  | _:(derivable ?X1) |- (derivable_pt ?X1 ?X2) =>
+      cut (derivable X1); [ intro HypDDPT; apply HypDDPT | assumption ]
+  |  |- (True -> derivable_pt _ _) =>
+      intro HypTruE; clear HypTruE; is_diff_pt
+  | _ =>
+      try
+       unfold plus_fct, mult_fct, div_fct, minus_fct, opp_fct, inv_fct, id,
+        fct_cte, comp, pow_fct in |- *
+  end.
+*)
+
+(*#*********)
+
+(* UNEXPORTED
+Ltac is_diff_glob :=
+  match goal with
+  |  |- (derivable Rsqr) => 
+  (* fonctions de base *)
+  apply derivable_Rsqr
+  |  |- (derivable id) => apply derivable_id
+  |  |- (derivable (fct_cte _)) => apply derivable_const
+  |  |- (derivable sin) => apply derivable_sin
+  |  |- (derivable cos) => apply derivable_cos
+  |  |- (derivable cosh) => apply derivable_cosh
+  |  |- (derivable sinh) => apply derivable_sinh
+  |  |- (derivable exp) => apply derivable_exp
+  |  |- (derivable (pow_fct _)) =>
+      unfold pow_fct in |- *;
+       apply derivable_pow
+        (* regles de differentiabilite *)
+        (* PLUS *)
+  |  |- (derivable (?X1 + ?X2)) =>
+      apply (derivable_plus X1 X2); is_diff_glob
+       (* MOINS *)
+  |  |- (derivable (?X1 - ?X2)) =>
+      apply (derivable_minus X1 X2); is_diff_glob
+       (* OPPOSE *)
+  |  |- (derivable (- ?X1)) =>
+      apply (derivable_opp X1);
+       is_diff_glob
+       (* MULTIPLICATION PAR UN SCALAIRE *)
+  |  |- (derivable (mult_real_fct ?X1 ?X2)) =>
+      apply (derivable_scal X2 X1); is_diff_glob
+       (* MULTIPLICATION *)
+  |  |- (derivable (?X1 * ?X2)) =>
+      apply (derivable_mult X1 X2); is_diff_glob
+       (* DIVISION *)
+  |  |- (derivable (?X1 / ?X2)) =>
+      apply (derivable_div X1 X2);
+       [ is_diff_glob
+       | is_diff_glob
+       | try
+          assumption ||
+            unfold plus_fct, mult_fct, div_fct, minus_fct, opp_fct, inv_fct,
+             id, fct_cte, comp, pow_fct in |- * ]
+  |  |- (derivable (/ ?X1)) =>
+      
+       (* INVERSION *)
+       apply (derivable_inv X1);
+       [ try
+          assumption ||
+            unfold plus_fct, mult_fct, div_fct, minus_fct, opp_fct, inv_fct,
+             id, fct_cte, comp, pow_fct in |- *
+       | is_diff_glob ]
+  |  |- (derivable (comp sqrt _)) =>
+      
+       (* COMPOSITION *)
+       unfold derivable in |- *; intro; try is_diff_pt
+  |  |- (derivable (comp Rabs _)) =>
+      unfold derivable in |- *; intro; try is_diff_pt
+  |  |- (derivable (comp ?X1 ?X2)) =>
+      apply (derivable_comp X2 X1); is_diff_glob
+  | _:(derivable ?X1) |- (derivable ?X1) => assumption
+  |  |- (True -> derivable _) =>
+      intro HypTruE; clear HypTruE; is_diff_glob
+  | _ =>
+      try
+       unfold plus_fct, mult_fct, div_fct, minus_fct, opp_fct, inv_fct, id,
+        fct_cte, comp, pow_fct in |- *
+  end.
+*)
+
+(*#*********)
+
+(* UNEXPORTED
+Ltac is_cont_pt :=
+  match goal with
+  |  |- (continuity_pt Rsqr _) =>
+      
+       (* fonctions de base *)
+       apply derivable_continuous_pt; apply derivable_pt_Rsqr
+  |  |- (continuity_pt id ?X1) =>
+      apply derivable_continuous_pt; apply (derivable_pt_id X1)
+  |  |- (continuity_pt (fct_cte _) _) =>
+      apply derivable_continuous_pt; apply derivable_pt_const
+  |  |- (continuity_pt sin _) =>
+      apply derivable_continuous_pt; apply derivable_pt_sin
+  |  |- (continuity_pt cos _) =>
+      apply derivable_continuous_pt; apply derivable_pt_cos
+  |  |- (continuity_pt sinh _) =>
+      apply derivable_continuous_pt; apply derivable_pt_sinh
+  |  |- (continuity_pt cosh _) =>
+      apply derivable_continuous_pt; apply derivable_pt_cosh
+  |  |- (continuity_pt exp _) =>
+      apply derivable_continuous_pt; apply derivable_pt_exp
+  |  |- (continuity_pt (pow_fct _) _) =>
+      unfold pow_fct in |- *; apply derivable_continuous_pt;
+       apply derivable_pt_pow
+  |  |- (continuity_pt sqrt ?X1) =>
+      apply continuity_pt_sqrt;
+       assumption ||
+         unfold plus_fct, minus_fct, opp_fct, mult_fct, div_fct, inv_fct,
+          comp, id, fct_cte, pow_fct in |- *
+  |  |- (continuity_pt Rabs ?X1) =>
+      apply (Rcontinuity_abs X1)
+       (* regles de differentiabilite *)
+       (* PLUS *)
+  |  |- (continuity_pt (?X1 + ?X2) ?X3) =>
+      apply (continuity_pt_plus X1 X2 X3); is_cont_pt
+       (* MOINS *)
+  |  |- (continuity_pt (?X1 - ?X2) ?X3) =>
+      apply (continuity_pt_minus X1 X2 X3); is_cont_pt
+       (* OPPOSE *)
+  |  |- (continuity_pt (- ?X1) ?X2) =>
+      apply (continuity_pt_opp X1 X2);
+       is_cont_pt
+       (* MULTIPLICATION PAR UN SCALAIRE *)
+  |  |- (continuity_pt (mult_real_fct ?X1 ?X2) ?X3) =>
+      apply (continuity_pt_scal X2 X1 X3); is_cont_pt
+       (* MULTIPLICATION *)
+  |  |- (continuity_pt (?X1 * ?X2) ?X3) =>
+      apply (continuity_pt_mult X1 X2 X3); is_cont_pt
+       (* DIVISION *)
+  |  |- (continuity_pt (?X1 / ?X2) ?X3) =>
+      apply (continuity_pt_div X1 X2 X3);
+       [ is_cont_pt
+       | is_cont_pt
+       | try
+          assumption ||
+            unfold plus_fct, mult_fct, div_fct, minus_fct, opp_fct, inv_fct,
+             comp, id, fct_cte, pow_fct in |- * ]
+  |  |- (continuity_pt (/ ?X1) ?X2) =>
+      
+       (* INVERSION *)
+       apply (continuity_pt_inv X1 X2);
+       [ is_cont_pt
+       | assumption ||
+           unfold plus_fct, mult_fct, div_fct, minus_fct, opp_fct, inv_fct,
+            comp, id, fct_cte, pow_fct in |- * ]
+  |  |- (continuity_pt (comp ?X1 ?X2) ?X3) =>
+      
+       (* COMPOSITION *)
+       apply (continuity_pt_comp X2 X1 X3); is_cont_pt
+  | _:(continuity_pt ?X1 ?X2) |- (continuity_pt ?X1 ?X2) =>
+      assumption
+  | _:(continuity ?X1) |- (continuity_pt ?X1 ?X2) =>
+      cut (continuity X1); [ intro HypDDPT; apply HypDDPT | assumption ]
+  | _:(derivable_pt ?X1 ?X2) |- (continuity_pt ?X1 ?X2) =>
+      apply derivable_continuous_pt; assumption
+  | _:(derivable ?X1) |- (continuity_pt ?X1 ?X2) =>
+      cut (continuity X1);
+       [ intro HypDDPT; apply HypDDPT
+       | apply derivable_continuous; assumption ]
+  |  |- (True -> continuity_pt _ _) =>
+      intro HypTruE; clear HypTruE; is_cont_pt
+  | _ =>
+      try
+       unfold plus_fct, mult_fct, div_fct, minus_fct, opp_fct, inv_fct, id,
+        fct_cte, comp, pow_fct in |- *
+  end.
+*)
+
+(*#*********)
+
+(* UNEXPORTED
+Ltac is_cont_glob :=
+  match goal with
+  |  |- (continuity Rsqr) =>
+      
+       (* fonctions de base *)
+       apply derivable_continuous; apply derivable_Rsqr
+  |  |- (continuity id) => apply derivable_continuous; apply derivable_id
+  |  |- (continuity (fct_cte _)) =>
+      apply derivable_continuous; apply derivable_const
+  |  |- (continuity sin) => apply derivable_continuous; apply derivable_sin
+  |  |- (continuity cos) => apply derivable_continuous; apply derivable_cos
+  |  |- (continuity exp) => apply derivable_continuous; apply derivable_exp
+  |  |- (continuity (pow_fct _)) =>
+      unfold pow_fct in |- *; apply derivable_continuous; apply derivable_pow
+  |  |- (continuity sinh) =>
+      apply derivable_continuous; apply derivable_sinh
+  |  |- (continuity cosh) =>
+      apply derivable_continuous; apply derivable_cosh
+  |  |- (continuity Rabs) =>
+      apply Rcontinuity_abs
+       (* regles de continuite *)
+       (* PLUS *)
+  |  |- (continuity (?X1 + ?X2)) =>
+      apply (continuity_plus X1 X2);
+       try is_cont_glob || assumption
+            (* MOINS *)
+  |  |- (continuity (?X1 - ?X2)) =>
+      apply (continuity_minus X1 X2);
+       try is_cont_glob || assumption
+            (* OPPOSE *)
+  |  |- (continuity (- ?X1)) =>
+      apply (continuity_opp X1); try is_cont_glob || assumption
+                                      (* INVERSE *)
+  |  |- (continuity (/ ?X1)) =>
+      apply (continuity_inv X1);
+       try is_cont_glob || assumption
+            (* MULTIPLICATION PAR UN SCALAIRE *)
+  |  |- (continuity (mult_real_fct ?X1 ?X2)) =>
+      apply (continuity_scal X2 X1);
+       try is_cont_glob || assumption
+            (* MULTIPLICATION *)
+  |  |- (continuity (?X1 * ?X2)) =>
+      apply (continuity_mult X1 X2);
+       try is_cont_glob || assumption
+            (* DIVISION *)
+  |  |- (continuity (?X1 / ?X2)) =>
+      apply (continuity_div X1 X2);
+       [ try is_cont_glob || assumption
+       | try is_cont_glob || assumption
+       | try
+          assumption ||
+            unfold plus_fct, mult_fct, div_fct, minus_fct, opp_fct, inv_fct,
+             id, fct_cte, pow_fct in |- * ]
+  |  |- (continuity (comp sqrt _)) =>
+      
+       (* COMPOSITION *)
+       unfold continuity_pt in |- *; intro; try is_cont_pt
+  |  |- (continuity (comp ?X1 ?X2)) =>
+      apply (continuity_comp X2 X1); try is_cont_glob || assumption
+  | _:(continuity ?X1) |- (continuity ?X1) => assumption
+  |  |- (True -> continuity _) =>
+      intro HypTruE; clear HypTruE; is_cont_glob
+  | _:(derivable ?X1) |- (continuity ?X1) =>
+      apply derivable_continuous; assumption
+  | _ =>
+      try
+       unfold plus_fct, mult_fct, div_fct, minus_fct, opp_fct, inv_fct, id,
+        fct_cte, comp, pow_fct in |- *
+  end.
+*)
+
+(*#*********)
+
+(* UNEXPORTED
+Ltac rew_term trm :=
+  match constr:trm with
+  | (?X1 + ?X2) =>
+      let p1 := rew_term X1 with p2 := rew_term X2 in
+      match constr:p1 with
+      | (fct_cte ?X3) =>
+          match constr:p2 with
+          | (fct_cte ?X4) => constr:(fct_cte (X3 + X4))
+          | _ => constr:(p1 + p2)%F
+          end
+      | _ => constr:(p1 + p2)%F
+      end
+  | (?X1 - ?X2) =>
+      let p1 := rew_term X1 with p2 := rew_term X2 in
+      match constr:p1 with
+      | (fct_cte ?X3) =>
+          match constr:p2 with
+          | (fct_cte ?X4) => constr:(fct_cte (X3 - X4))
+          | _ => constr:(p1 - p2)%F
+          end
+      | _ => constr:(p1 - p2)%F
+      end
+  | (?X1 / ?X2) =>
+      let p1 := rew_term X1 with p2 := rew_term X2 in
+      match constr:p1 with
+      | (fct_cte ?X3) =>
+          match constr:p2 with
+          | (fct_cte ?X4) => constr:(fct_cte (X3 / X4))
+          | _ => constr:(p1 / p2)%F
+          end
+      | _ =>
+          match constr:p2 with
+          | (fct_cte ?X4) => constr:(p1 * fct_cte (/ X4))%F
+          | _ => constr:(p1 / p2)%F
+          end
+      end
+  | (?X1 * / ?X2) =>
+      let p1 := rew_term X1 with p2 := rew_term X2 in
+      match constr:p1 with
+      | (fct_cte ?X3) =>
+          match constr:p2 with
+          | (fct_cte ?X4) => constr:(fct_cte (X3 / X4))
+          | _ => constr:(p1 / p2)%F
+          end
+      | _ =>
+          match constr:p2 with
+          | (fct_cte ?X4) => constr:(p1 * fct_cte (/ X4))%F
+          | _ => constr:(p1 / p2)%F
+          end
+      end
+  | (?X1 * ?X2) =>
+      let p1 := rew_term X1 with p2 := rew_term X2 in
+      match constr:p1 with
+      | (fct_cte ?X3) =>
+          match constr:p2 with
+          | (fct_cte ?X4) => constr:(fct_cte (X3 * X4))
+          | _ => constr:(p1 * p2)%F
+          end
+      | _ => constr:(p1 * p2)%F
+      end
+  | (- ?X1) =>
+      let p := rew_term X1 in
+      match constr:p with
+      | (fct_cte ?X2) => constr:(fct_cte (- X2))
+      | _ => constr:(- p)%F
+      end
+  | (/ ?X1) =>
+      let p := rew_term X1 in
+      match constr:p with
+      | (fct_cte ?X2) => constr:(fct_cte (/ X2))
+      | _ => constr:(/ p)%F
+      end
+  | (?X1 AppVar) => constr:X1
+  | (?X1 ?X2) =>
+      let p := rew_term X2 in
+      match constr:p with
+      | (fct_cte ?X3) => constr:(fct_cte (X1 X3))
+      | _ => constr:(comp X1 p)
+      end
+  | AppVar => constr:id
+  | (AppVar ^ ?X1) => constr:(pow_fct X1)
+  | (?X1 ^ ?X2) =>
+      let p := rew_term X1 in
+      match constr:p with
+      | (fct_cte ?X3) => constr:(fct_cte (pow_fct X2 X3))
+      | _ => constr:(comp (pow_fct X2) p)
+      end
+  | ?X1 => constr:(fct_cte X1)
+  end.
+*)
+
+(*#*********)
+
+(* UNEXPORTED
+Ltac deriv_proof trm pt :=
+  match constr:trm with
+  | (?X1 + ?X2)%F =>
+      let p1 := deriv_proof X1 pt with p2 := deriv_proof X2 pt in
+      constr:(derivable_pt_plus X1 X2 pt p1 p2)
+  | (?X1 - ?X2)%F =>
+      let p1 := deriv_proof X1 pt with p2 := deriv_proof X2 pt in
+      constr:(derivable_pt_minus X1 X2 pt p1 p2)
+  | (?X1 * ?X2)%F =>
+      let p1 := deriv_proof X1 pt with p2 := deriv_proof X2 pt in
+      constr:(derivable_pt_mult X1 X2 pt p1 p2)
+  | (?X1 / ?X2)%F =>
+      match goal with
+      | id:(?X2 pt <> 0) |- _ =>
+          let p1 := deriv_proof X1 pt with p2 := deriv_proof X2 pt in
+          constr:(derivable_pt_div X1 X2 pt p1 p2 id)
+      | _ => constr:False
+      end
+  | (/ ?X1)%F =>
+      match goal with
+      | id:(?X1 pt <> 0) |- _ =>
+          let p1 := deriv_proof X1 pt in
+          constr:(derivable_pt_inv X1 pt p1 id)
+      | _ => constr:False
+      end
+  | (comp ?X1 ?X2) =>
+      let pt_f1 := eval cbv beta in (X2 pt) in
+      let p1 := deriv_proof X1 pt_f1 with p2 := deriv_proof X2 pt in
+      constr:(derivable_pt_comp X2 X1 pt p2 p1)
+  | (- ?X1)%F =>
+      let p1 := deriv_proof X1 pt in
+      constr:(derivable_pt_opp X1 pt p1)
+  | sin => constr:(derivable_pt_sin pt)
+  | cos => constr:(derivable_pt_cos pt)
+  | sinh => constr:(derivable_pt_sinh pt)
+  | cosh => constr:(derivable_pt_cosh pt)
+  | exp => constr:(derivable_pt_exp pt)
+  | id => constr:(derivable_pt_id pt)
+  | Rsqr => constr:(derivable_pt_Rsqr pt)
+  | sqrt =>
+      match goal with
+      | id:(0 < pt) |- _ => constr:(derivable_pt_sqrt pt id)
+      | _ => constr:False
+      end
+  | (fct_cte ?X1) => constr:(derivable_pt_const X1 pt)
+  | ?X1 =>
+      let aux := constr:X1 in
+      match goal with
+      | id:(derivable_pt aux pt) |- _ => constr:id
+      | id:(derivable aux) |- _ => constr:(id pt)
+      | _ => constr:False
+      end
+  end.
+*)
+
+(*#*********)
+
+(* UNEXPORTED
+Ltac simplify_derive trm pt :=
+  match constr:trm with
+  | (?X1 + ?X2)%F =>
+      try rewrite derive_pt_plus; simplify_derive X1 pt;
+       simplify_derive X2 pt
+  | (?X1 - ?X2)%F =>
+      try rewrite derive_pt_minus; simplify_derive X1 pt;
+       simplify_derive X2 pt
+  | (?X1 * ?X2)%F =>
+      try rewrite derive_pt_mult; simplify_derive X1 pt;
+       simplify_derive X2 pt
+  | (?X1 / ?X2)%F =>
+      try rewrite derive_pt_div; simplify_derive X1 pt; simplify_derive X2 pt
+  | (comp ?X1 ?X2) =>
+      let pt_f1 := eval cbv beta in (X2 pt) in
+      (try rewrite derive_pt_comp; simplify_derive X1 pt_f1;
+        simplify_derive X2 pt)
+  | (- ?X1)%F => try rewrite derive_pt_opp; simplify_derive X1 pt
+  | (/ ?X1)%F =>
+      try rewrite derive_pt_inv; simplify_derive X1 pt
+  | (fct_cte ?X1) => try rewrite derive_pt_const
+  | id => try rewrite derive_pt_id
+  | sin => try rewrite derive_pt_sin
+  | cos => try rewrite derive_pt_cos
+  | sinh => try rewrite derive_pt_sinh
+  | cosh => try rewrite derive_pt_cosh
+  | exp => try rewrite derive_pt_exp
+  | Rsqr => try rewrite derive_pt_Rsqr
+  | sqrt => try rewrite derive_pt_sqrt
+  | ?X1 =>
+      let aux := constr:X1 in
+      match goal with
+      | id:(derive_pt aux pt ?X2 = _),H:(derivable aux) |- _ =>
+          try replace (derive_pt aux pt (H pt)) with (derive_pt aux pt X2);
+           [ rewrite id | apply pr_nu ]
+      | id:(derive_pt aux pt ?X2 = _),H:(derivable_pt aux pt) |- _ =>
+          try replace (derive_pt aux pt H) with (derive_pt aux pt X2);
+           [ rewrite id | apply pr_nu ]
+      | _ => idtac
+      end
+  | _ => idtac
+  end.
+*)
+
+(*#*********)
+
+(* UNEXPORTED
+Ltac reg :=
+  match goal with
+  |  |- (derivable_pt ?X1 ?X2) =>
+      let trm := eval cbv beta in (X1 AppVar) in
+      let aux := rew_term trm in
+      (intro_hyp_pt aux X2;
+        try (change (derivable_pt aux X2) in |- *; is_diff_pt) || is_diff_pt)
+  |  |- (derivable ?X1) =>
+      let trm := eval cbv beta in (X1 AppVar) in
+      let aux := rew_term trm in
+      (intro_hyp_glob aux;
+        try (change (derivable aux) in |- *; is_diff_glob) || is_diff_glob)
+  |  |- (continuity ?X1) =>
+      let trm := eval cbv beta in (X1 AppVar) in
+      let aux := rew_term trm in
+      (intro_hyp_glob aux;
+        try (change (continuity aux) in |- *; is_cont_glob) || is_cont_glob)
+  |  |- (continuity_pt ?X1 ?X2) =>
+      let trm := eval cbv beta in (X1 AppVar) in
+      let aux := rew_term trm in
+      (intro_hyp_pt aux X2;
+        try (change (continuity_pt aux X2) in |- *; is_cont_pt) || is_cont_pt)
+  |  |- (derive_pt ?X1 ?X2 ?X3 = ?X4) =>
+      let trm := eval cbv beta in (X1 AppVar) in
+      let aux := rew_term trm in
+      (intro_hyp_pt aux X2;
+        let aux2 := deriv_proof aux X2 in
+        (try
+          (replace (derive_pt X1 X2 X3) with (derive_pt aux X2 aux2);
+            [ simplify_derive aux X2;
+               try
+                unfold plus_fct, minus_fct, mult_fct, div_fct, id, fct_cte,
+                 inv_fct, opp_fct in |- *; try ring
+            | try apply pr_nu ]) || is_diff_pt))
+  end.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Ranalysis1.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Ranalysis1.mma
new file mode 100644 (file)
index 0000000..9356ac6
--- /dev/null
@@ -0,0 +1,405 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Ranalysis1.v,v 1.21 2003/12/24 10:27:06 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Rlimit.ma".
+
+include "Reals/Rderiv.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(* UNEXPORTED
+Implicit Type f : R -> R.
+*)
+
+(*#***************************************************)
+
+(*#*           Basic operations on functions         *)
+
+(*#***************************************************)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/plus_fct.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/opp_fct.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/mult_fct.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/mult_real_fct.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/minus_fct.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/div_fct.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/div_real_fct.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/comp.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/inv_fct.con" as definition.
+
+(* NOTATION
+Infix "+" := plus_fct : Rfun_scope.
+*)
+
+(* NOTATION
+Notation "- x" := (opp_fct x) : Rfun_scope.
+*)
+
+(* NOTATION
+Infix "*" := mult_fct : Rfun_scope.
+*)
+
+(* NOTATION
+Infix "-" := minus_fct : Rfun_scope.
+*)
+
+(* NOTATION
+Infix "/" := div_fct : Rfun_scope.
+*)
+
+(* NOTATION
+Notation Local "f1 'o' f2" := (comp f1 f2)
+  (at level 20, right associativity) : Rfun_scope.
+*)
+
+(* NOTATION
+Notation "/ x" := (inv_fct x) : Rfun_scope.
+*)
+
+(* UNEXPORTED
+Delimit Scope Rfun_scope with F.
+*)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/fct_cte.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/id.con" as definition.
+
+(*#***************************************************)
+
+(*#*            Variations of functions              *)
+
+(*#***************************************************)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/increasing.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/decreasing.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/strict_increasing.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/strict_decreasing.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/constant.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/no_cond.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/constant_D_eq.con" as definition.
+
+(*#**************************************************)
+
+(*#*      Definition of continuity as a limit       *)
+
+(*#**************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_pt.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity.con" as definition.
+
+(* UNEXPORTED
+Arguments Scope continuity_pt [Rfun_scope R_scope].
+*)
+
+(* UNEXPORTED
+Arguments Scope continuity [Rfun_scope].
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_pt_plus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_pt_opp.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_pt_minus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_pt_mult.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_pt_const.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_pt_scal.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_pt_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/div_eq_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_pt_div.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_pt_comp.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_plus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_opp.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_minus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_mult.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_const.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_scal.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_div.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/continuity_comp.con" as lemma.
+
+(*#****************************************************)
+
+(*#*  Derivative's definition using Landau's kernel   *)
+
+(*#****************************************************)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_lim.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_abs.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive_pt.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive.con" as definition.
+
+(* UNEXPORTED
+Arguments Scope derivable_pt_lim [Rfun_scope R_scope].
+*)
+
+(* UNEXPORTED
+Arguments Scope derivable_pt_abs [Rfun_scope R_scope R_scope].
+*)
+
+(* UNEXPORTED
+Arguments Scope derivable_pt [Rfun_scope R_scope].
+*)
+
+(* UNEXPORTED
+Arguments Scope derivable [Rfun_scope].
+*)
+
+(* UNEXPORTED
+Arguments Scope derive_pt [Rfun_scope R_scope _].
+*)
+
+(* UNEXPORTED
+Arguments Scope derive [Rfun_scope _].
+*)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/antiderivative.con" as definition.
+
+(*#***********************************)
+
+(*#* Class of differential functions *)
+
+(*#***********************************)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/Differential.ind".
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/Differential_D2.ind".
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/uniqueness_step1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/uniqueness_step2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/uniqueness_step3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/uniqueness_limite.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive_pt_eq.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive_pt_eq_0.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive_pt_eq_1.con" as lemma.
+
+(*#*******************************************************************)
+
+(*#* Equivalence of this definition with the one using limit concept *)
+
+(*#*******************************************************************)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive_pt_D_in.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_lim_D_in.con" as lemma.
+
+(*#**********************************)
+
+(*#*   derivability -> continuity   *)
+
+(*#**********************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_derive.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_continuous_pt.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_continuous.con" as theorem.
+
+(*#***************************************************************)
+
+(*#*                      Main rules                             *)
+
+(*#***************************************************************)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_lim_plus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_lim_opp.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_lim_minus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_lim_mult.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_lim_const.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_lim_scal.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_lim_id.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_lim_Rsqr.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_lim_comp.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_plus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_opp.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_minus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_mult.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_const.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_scal.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_id.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_Rsqr.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_comp.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_plus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_opp.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_minus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_mult.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_const.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_scal.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_id.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_Rsqr.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_comp.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive_pt_plus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive_pt_opp.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive_pt_minus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive_pt_mult.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive_pt_const.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive_pt_scal.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive_pt_id.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive_pt_Rsqr.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive_pt_comp.con" as lemma.
+
+(* Pow *)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/pow_fct.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_lim_pow_pos.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_lim_pow.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pt_pow.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derivable_pow.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/derive_pt_pow.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/pr_nu.con" as lemma.
+
+(*#***********************************************************)
+
+(*#*             Local extremum's condition                  *)
+
+(*#***********************************************************)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/deriv_maximum.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/deriv_minimum.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/deriv_constant2.con" as theorem.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis1/nonneg_derivative_0.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Ranalysis2.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Ranalysis2.mma
new file mode 100644 (file)
index 0000000..8c63002
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Ranalysis2.v,v 1.11 2003/12/15 19:48:20 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Ranalysis1.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis2/formule.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis2/Rmin_pos.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis2/maj_term1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis2/maj_term2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis2/maj_term3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis2/maj_term4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis2/D_x_no_cond.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis2/Rabs_4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis2/Rlt_4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis2/Rmin_2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis2/quadruple.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis2/quadruple_var.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis2/continuous_neq_0.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Ranalysis3.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Ranalysis3.mma
new file mode 100644 (file)
index 0000000..9fa57f3
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Ranalysis3.v,v 1.10 2003/11/29 17:28:37 herbelin Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Ranalysis1.ma".
+
+include "Reals/Ranalysis2.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(* Division *)
+
+inline procedural "cic:/Coq/Reals/Ranalysis3/derivable_pt_lim_div.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Ranalysis3/derivable_pt_div.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis3/derivable_div.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis3/derive_pt_div.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Ranalysis4.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Ranalysis4.mma
new file mode 100644 (file)
index 0000000..81d5593
--- /dev/null
@@ -0,0 +1,120 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Ranalysis4.v,v 1.19 2003/11/29 17:28:37 herbelin Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Rtrigo.ma".
+
+include "Reals/Ranalysis1.ma".
+
+include "Reals/Ranalysis3.ma".
+
+include "Reals/Exp_prop.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derivable_pt_inv.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/pr_nu_var.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/pr_nu_var2.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derivable_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derive_pt_inv.con" as lemma.
+
+(* Rabsolu *)
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/Rabs_derive_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/Rabs_derive_2.con" as lemma.
+
+(* Rabsolu is derivable for all x <> 0 *)
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/Rderivable_pt_abs.con" as lemma.
+
+(* Rabsolu is continuous for all x *)
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/Rcontinuity_abs.con" as lemma.
+
+(* Finite sums : Sum a_k x^k *)
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/continuity_finite_sum.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derivable_pt_lim_fs.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derivable_pt_lim_finite_sum.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derivable_pt_finite_sum.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derivable_finite_sum.con" as lemma.
+
+(* Regularity of hyperbolic functions *)
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derivable_pt_lim_cosh.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derivable_pt_lim_sinh.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derivable_pt_exp.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derivable_pt_cosh.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derivable_pt_sinh.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derivable_exp.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derivable_cosh.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derivable_sinh.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derive_pt_exp.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derive_pt_cosh.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Ranalysis4/derive_pt_sinh.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Raxioms.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Raxioms.mma
new file mode 100644 (file)
index 0000000..b89a10f
--- /dev/null
@@ -0,0 +1,254 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Raxioms.v,v 1.20 2004/01/13 15:12:11 herbelin Exp $ i*)
+
+(*#********************************************************)
+
+(*#*    Axiomatisation of the classical reals             *)
+
+(*#********************************************************)
+
+include "ZArith/ZArith_base.ma".
+
+include "Reals/Rdefinitions.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#********************************************************)
+
+(*               Field axioms                            *)
+
+(*#********************************************************)
+
+(*#********************************************************)
+
+(*#*      Addition                                        *)
+
+(*#********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/Rplus_comm.con".
+
+(* UNEXPORTED
+Hint Resolve Rplus_comm: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/Rplus_assoc.con".
+
+(* UNEXPORTED
+Hint Resolve Rplus_assoc: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/Rplus_opp_r.con".
+
+(* UNEXPORTED
+Hint Resolve Rplus_opp_r: real v62.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/Rplus_0_l.con".
+
+(* UNEXPORTED
+Hint Resolve Rplus_0_l: real.
+*)
+
+(*#**********************************************************)
+
+(*#*       Multiplication                                   *)
+
+(*#**********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/Rmult_comm.con".
+
+(* UNEXPORTED
+Hint Resolve Rmult_comm: real v62.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/Rmult_assoc.con".
+
+(* UNEXPORTED
+Hint Resolve Rmult_assoc: real v62.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/Rinv_l.con".
+
+(* UNEXPORTED
+Hint Resolve Rinv_l: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/Rmult_1_l.con".
+
+(* UNEXPORTED
+Hint Resolve Rmult_1_l: real.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/R1_neq_R0.con".
+
+(* UNEXPORTED
+Hint Resolve R1_neq_R0: real.
+*)
+
+(*#********************************************************)
+
+(*#*      Distributivity                                  *)
+
+(*#********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/Rmult_plus_distr_l.con".
+
+(* UNEXPORTED
+Hint Resolve Rmult_plus_distr_l: real v62.
+*)
+
+(*#********************************************************)
+
+(*#*      Order axioms                                    *)
+
+(*#********************************************************)
+
+(*#********************************************************)
+
+(*#*      Total Order                                     *)
+
+(*#********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/total_order_T.con".
+
+(*#********************************************************)
+
+(*#*      Lower                                           *)
+
+(*#********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/Rlt_asym.con".
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/Rlt_trans.con".
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/Rplus_lt_compat_l.con".
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/Rmult_lt_compat_l.con".
+
+(* UNEXPORTED
+Hint Resolve Rlt_asym Rplus_lt_compat_l Rmult_lt_compat_l: real.
+*)
+
+(*#*********************************************************)
+
+(*#*      Injection from N to R                            *)
+
+(*#*********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/INR.con" as definition.
+
+(* UNEXPORTED
+Arguments Scope INR [nat_scope].
+*)
+
+(*#*********************************************************)
+
+(*#*      Injection from [Z] to [R]                        *)
+
+(*#*********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/IZR.con" as definition.
+
+(* UNEXPORTED
+Arguments Scope IZR [Z_scope].
+*)
+
+(*#*********************************************************)
+
+(*#*      [R] Archimedian                                  *)
+
+(*#*********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/archimed.con".
+
+(*#*********************************************************)
+
+(*#*      [R] Complete                                     *)
+
+(*#*********************************************************)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/is_upper_bound.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/bound.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/is_lub.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Raxioms/completeness.con".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rbase.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rbase.mma
new file mode 100644 (file)
index 0000000..1bc669b
--- /dev/null
@@ -0,0 +1,42 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rbase.v,v 1.39 2003/11/29 17:28:37 herbelin Exp $ i*)
+
+include "Reals/Rdefinitions.ma".
+
+include "Reals/Raxioms.ma".
+
+include "Reals/RIneq.ma".
+
+include "Reals/DiscrR.ma".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rbasic_fun.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rbasic_fun.mma
new file mode 100644 (file)
index 0000000..a598c13
--- /dev/null
@@ -0,0 +1,206 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rbasic_fun.v,v 1.22 2003/11/29 17:28:37 herbelin Exp $ i*)
+
+(*#********************************************************)
+
+(*#*          Complements for the real numbers            *)
+
+(*                                                       *)
+
+(*#********************************************************)
+
+include "Reals/Rbase.ma".
+
+include "Reals/R_Ifp.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(* UNEXPORTED
+Implicit Type r : R.
+*)
+
+(*#******************************)
+
+(*#*          Rmin              *)
+
+(*#******************************)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rmin.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rmin_Rgt_l.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rmin_Rgt_r.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rmin_Rgt.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rmin_l.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rmin_r.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rmin_comm.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rmin_stable_in_posreal.con" as lemma.
+
+(*#******************************)
+
+(*#*          Rmax              *)
+
+(*#******************************)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rmax.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rmax_Rle.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/RmaxLess1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/RmaxLess2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/RmaxSym.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/RmaxRmult.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rmax_stable_in_negreal.con" as lemma.
+
+(*#******************************)
+
+(*#*          Rabsolu           *)
+
+(*#******************************)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rcase_abs.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_R0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_R1.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_no_R0.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_left.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_right.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_left1.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_pos.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/RRle_abs.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_pos_eq.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_Rabsolu.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_pos_lt.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_minus_sym.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_mult.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_Rinv.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_Ropp.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_triang.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_triang_inv.con" as lemma.
+
+(* ||a|-|b||<=|a-b| *)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_triang_inv2.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_def1.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_def2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/RmaxAbs.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rbasic_fun/Rabs_Zabs.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rcomplete.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rcomplete.mma
new file mode 100644 (file)
index 0000000..caea513
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rcomplete.v,v 1.10 2003/12/24 10:27:06 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Rseries.ma".
+
+include "Reals/SeqProp.ma".
+
+include "Arith/Max.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#***************************************************)
+
+(*              R is complete :                     *)
+
+(*        Each sequence which satisfies             *)
+
+(*       the Cauchy's criterion converges           *)
+
+(*                                                  *)
+
+(*    Proof with adjacent sequences (Vn and Wn)     *)
+
+(*#***************************************************)
+
+inline procedural "cic:/Coq/Reals/Rcomplete/R_complete.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rdefinitions.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rdefinitions.mma
new file mode 100644 (file)
index 0000000..1c4da8d
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rdefinitions.v,v 1.14 2003/11/29 17:28:37 herbelin Exp $ i*)
+
+(*#********************************************************)
+
+(*#*          Definitions for the axiomatization          *)
+
+(*                                                       *)
+
+(*#********************************************************)
+
+include "ZArith/ZArith_base.ma".
+
+inline procedural "cic:/Coq/Reals/Rdefinitions/R.con".
+
+(* Declare Scope positive_scope with Key R *)
+
+(* UNEXPORTED
+Delimit Scope R_scope with R.
+*)
+
+(* Automatically open scope R_scope for arguments of type R *)
+
+(* UNEXPORTED
+Bind Scope R_scope with R.
+*)
+
+inline procedural "cic:/Coq/Reals/Rdefinitions/R0.con".
+
+inline procedural "cic:/Coq/Reals/Rdefinitions/R1.con".
+
+inline procedural "cic:/Coq/Reals/Rdefinitions/Rplus.con".
+
+inline procedural "cic:/Coq/Reals/Rdefinitions/Rmult.con".
+
+inline procedural "cic:/Coq/Reals/Rdefinitions/Ropp.con".
+
+inline procedural "cic:/Coq/Reals/Rdefinitions/Rinv.con".
+
+inline procedural "cic:/Coq/Reals/Rdefinitions/Rlt.con".
+
+inline procedural "cic:/Coq/Reals/Rdefinitions/up.con".
+
+(* NOTATION
+Infix "+" := Rplus : R_scope.
+*)
+
+(* NOTATION
+Infix "*" := Rmult : R_scope.
+*)
+
+(* NOTATION
+Notation "- x" := (Ropp x) : R_scope.
+*)
+
+(* NOTATION
+Notation "/ x" := (Rinv x) : R_scope.
+*)
+
+(* NOTATION
+Infix "<" := Rlt : R_scope.
+*)
+
+(*i*******************************************************i*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rdefinitions/Rgt.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rdefinitions/Rle.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rdefinitions/Rge.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rdefinitions/Rminus.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rdefinitions/Rdiv.con" as definition.
+
+(* NOTATION
+Infix "-" := Rminus : R_scope.
+*)
+
+(* NOTATION
+Infix "/" := Rdiv : R_scope.
+*)
+
+(* NOTATION
+Infix "<=" := Rle : R_scope.
+*)
+
+(* NOTATION
+Infix ">=" := Rge : R_scope.
+*)
+
+(* NOTATION
+Infix ">" := Rgt : R_scope.
+*)
+
+(* NOTATION
+Notation "x <= y <= z" := ((x <= y)%R /\ (y <= z)%R) : R_scope.
+*)
+
+(* NOTATION
+Notation "x <= y < z" := ((x <= y)%R /\ (y < z)%R) : R_scope.
+*)
+
+(* NOTATION
+Notation "x < y < z" := ((x < y)%R /\ (y < z)%R) : R_scope.
+*)
+
+(* NOTATION
+Notation "x < y <= z" := ((x < y)%R /\ (y <= z)%R) : R_scope.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rderiv.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rderiv.mma
new file mode 100644 (file)
index 0000000..2840d1b
--- /dev/null
@@ -0,0 +1,112 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rderiv.v,v 1.15 2003/11/29 17:28:37 herbelin Exp $ i*)
+
+(*#********************************************************)
+
+(*#*     Definition of the derivative,continuity          *)
+
+(*                                                       *)
+
+(*#********************************************************)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Rlimit.ma".
+
+include "Logic/Classical_Prop.ma".
+
+include "Logic/Classical_Pred_Type.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rderiv/D_x.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rderiv/continue_in.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rderiv/D_in.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rderiv/cont_deriv.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rderiv/Dconst.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rderiv/Dx.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rderiv/Dadd.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rderiv/Dmult.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rderiv/Dmult_const.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rderiv/Dopp.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rderiv/Dminus.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rderiv/Dx_pow_n.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rderiv/Dcomp.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rderiv/D_pow_n.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Reals.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Reals.mma
new file mode 100644 (file)
index 0000000..f102544
--- /dev/null
@@ -0,0 +1,62 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Reals.v,v 1.24 2003/11/29 17:28:37 herbelin Exp $ i*)
+
+(* The library REALS is divided in 6 parts :
+   - Rbase: basic lemmas on R
+            equalities and inequalities
+            Ring and Field are instantiated on R
+   - Rfunctions: some useful functions (Rabsolu, Rmin, Rmax, fact...)
+   - SeqSeries: theory of sequences and series
+   - Rtrigo: theory of trigonometric functions
+   - Ranalysis: some topology and general results of real analysis (mean value theorem, intermediate value theorem,...)
+   - Integration: Newton and Riemann' integrals
+
+  Tactics are:
+  - DiscrR: for goals like ``?1<>0``
+  - Sup: for goals like ``?1<?2``
+  - RCompute: for equalities with constants like ``10*10==100``
+  - Reg: for goals like (continuity_pt ?1 ?2) or (derivable_pt ?1 ?2) *)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Rtrigo.ma".
+
+include "Reals/Ranalysis.ma".
+
+include "Reals/Integration.ma".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rfunctions.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rfunctions.mma
new file mode 100644 (file)
index 0000000..2a8d5e1
--- /dev/null
@@ -0,0 +1,331 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rfunctions.v,v 1.31 2004/03/12 10:15:44 mohring Exp $ i*)
+
+(*i Some properties about pow and sum have been made with John Harrison i*)
+
+(*i Some Lemmas (about pow and powerRZ) have been done by Laurent Thery i*)
+
+(*#*******************************************************)
+
+(*#*          Definition of the sum functions            *)
+
+(*                                                      *)
+
+(*#*******************************************************)
+
+include "Reals/Rbase.ma".
+
+include "Reals/R_Ifp.ma".
+
+include "Reals/Rbasic_fun.ma".
+
+include "Reals/R_sqr.ma".
+
+include "Reals/SplitAbsolu.ma".
+
+include "Reals/SplitRmult.ma".
+
+include "Reals/ArithProp.ma".
+
+include "ZArith/Zpower.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#******************************)
+
+(*#*  Lemmas about factorial    *)
+
+(*#******************************)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/INR_fact_neq_0.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/fact_simpl.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/simpl_fact.con" as lemma.
+
+(*#******************************)
+
+(*          Power              *)
+
+(*#******************************)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow.con" as definition.
+
+(* NOTATION
+Infix "^" := pow : R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_O.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_add.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_nonzero.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve pow_O pow_1 pow_add pow_nonzero: real.
+*)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_RN_plus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_lt.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve pow_lt: real.
+*)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/Rlt_pow_R1.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rlt_pow_R1: real.
+*)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/Rlt_pow.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Rlt_pow: real.
+*)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/tech_pow_Rmult.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/tech_pow_Rplus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/poly.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/Power_monotonic.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/RPow_abs.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/Pow_x_infinity.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_ne_zero.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/Rinv_pow.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_lt_1_zero.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_R1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_Rsqr.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_le.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_1_even.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_1_odd.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_1_abs.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_mult.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_incr.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_R1_Rle.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/Rle_pow.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_Rabs.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/pow_maj_Rabs.con" as lemma.
+
+(*#******************************)
+
+(*#*         PowerRZ            *)
+
+(*#******************************)
+
+(*i Due to L.Thery i*)
+
+(* UNEXPORTED
+Ltac case_eq name :=
+  generalize (refl_equal name); pattern name at -1 in |- *; case name.
+*)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/powerRZ.con" as definition.
+
+(* NOTATION
+Infix Local "^Z" := powerRZ (at level 30, right associativity) : R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/Zpower_NR0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/powerRZ_O.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/powerRZ_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/powerRZ_NOR.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/powerRZ_add.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve powerRZ_O powerRZ_1 powerRZ_NOR powerRZ_add: real.
+*)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/Zpower_nat_powerRZ.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/powerRZ_lt.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve powerRZ_lt: real.
+*)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/powerRZ_le.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve powerRZ_le: real.
+*)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/Zpower_nat_powerRZ_absolu.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/powerRZ_R1.con" as lemma.
+
+(*#******************************)
+
+(* For easy interface          *)
+
+(*#******************************)
+
+(* decimal_exp r z is defined as r 10^z *)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/decimal_exp.con" as definition.
+
+(*#******************************)
+
+(*#* Sum of n first naturals    *)
+
+(*#******************************)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/sum_nat_f_O.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/sum_nat_f.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/sum_nat_O.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/sum_nat.con" as definition.
+
+(*#******************************)
+
+(*#*            Sum             *)
+
+(*#******************************)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/sum_f_R0.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/sum_f.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/GP_finite.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/sum_f_R0_triangle.con" as lemma.
+
+(*#******************************)
+
+(*        Distance  in R       *)
+
+(*#******************************)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/R_dist.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/R_dist_pos.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/R_dist_sym.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/R_dist_refl.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rfunctions/R_dist_eq.con" as lemma.
+
+(*#**********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/R_dist_tri.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/R_dist_plus.con" as lemma.
+
+(*#******************************)
+
+(*#*       Infinit Sum          *)
+
+(*#******************************)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rfunctions/infinit_sum.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rgeom.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rgeom.mma
new file mode 100644 (file)
index 0000000..64a2411
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rgeom.v,v 1.13 2003/11/29 17:28:37 herbelin Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Rtrigo.ma".
+
+include "Reals/R_sqrt.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/Rgeom/dist_euc.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rgeom/distance_refl.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rgeom/distance_symm.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rgeom/law_cosines.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rgeom/triangle.con" as lemma.
+
+(*#*****************************************************************)
+
+(*#*                         Translation                           *)
+
+(*#*****************************************************************)
+
+inline procedural "cic:/Coq/Reals/Rgeom/xt.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rgeom/yt.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rgeom/translation_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rgeom/isometric_translation.con" as lemma.
+
+(*#*****************************************************************)
+
+(*#*                           Rotation                            *)
+
+(*#*****************************************************************)
+
+inline procedural "cic:/Coq/Reals/Rgeom/xr.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rgeom/yr.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rgeom/rotation_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rgeom/rotation_PI2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rgeom/isometric_rotation_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rgeom/isometric_rotation.con" as lemma.
+
+(*#*****************************************************************)
+
+(*#*                         Similarity                            *)
+
+(*#*****************************************************************)
+
+inline procedural "cic:/Coq/Reals/Rgeom/isometric_rot_trans.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rgeom/isometric_trans_rot.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/RiemannInt.mma b/helm/software/matita/contribs/procedural/Coq/Reals/RiemannInt.mma
new file mode 100644 (file)
index 0000000..d470467
--- /dev/null
@@ -0,0 +1,200 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: RiemannInt.v,v 1.18 2003/12/24 10:27:07 barras Exp $ i*)
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Ranalysis.ma".
+
+include "Reals/Rbase.ma".
+
+include "Reals/RiemannInt_SF.ma".
+
+include "Logic/Classical_Prop.ma".
+
+include "Logic/Classical_Pred_Type.ma".
+
+include "Arith/Max.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(*#*******************************************)
+
+(*            Riemann's Integral            *)
+
+(*#*******************************************)
+
+inline procedural "cic:/Coq/Reals/RiemannInt/Riemann_integrable.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/phi_sequence.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/phi_sequence_prop.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_exists.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RinvN_pos.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RinvN.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RinvN_cv.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P5.con" as lemma.
+
+(*#*************************************)
+
+(* C°([a,b]) is included in L1([a,b]) *)
+
+(*#*************************************)
+
+inline procedural "cic:/Coq/Reals/RiemannInt/maxN.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/SubEquiN.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/max_N.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/SubEqui.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/Heine_cor1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/Heine_cor2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/SubEqui_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/SubEqui_P2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/SubEqui_P3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/SubEqui_P4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/SubEqui_P5.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/SubEqui_P6.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/SubEqui_P7.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/SubEqui_P8.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/SubEqui_P9.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P6.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P7.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/continuity_implies_RiemannInt.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P8.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P9.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/Req_EM_T.con" as lemma.
+
+(* L1([a,b]) is a vectorial space *)
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P10.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P11.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P12.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P13.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P14.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P15.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P16.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/Rle_cv_lim.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P17.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P18.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P19.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/FTC_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/primitive.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P20.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P21.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P22.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P23.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P24.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P25.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P26.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P27.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P28.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P29.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P30.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/C1_fun.ind".
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P31.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P32.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/RiemannInt_P33.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt/FTC_Riemann.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/RiemannInt_SF.mma b/helm/software/matita/contribs/procedural/Coq/Reals/RiemannInt_SF.mma
new file mode 100644 (file)
index 0000000..33ea2e3
--- /dev/null
@@ -0,0 +1,194 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: RiemannInt_SF.v,v 1.16 2004/01/09 19:02:57 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Ranalysis.ma".
+
+include "Logic/Classical_Prop.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(*#*************************************************)
+
+(* Each bounded subset of N has a maximal element *)
+
+(*#*************************************************)
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/Nbound.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/IZN_var.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/Nzorn.con" as lemma.
+
+(*#******************************************)
+
+(*             Step functions              *)
+
+(*#******************************************)
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/open_interval.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/co_interval.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/adapted_couple.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/adapted_couple_opt.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/is_subdivision.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/IsStepFun.con" as definition.
+
+(* Class of step functions *)
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun.ind".
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/subdivision.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/subdivision_val.con" as definition.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/Int_SF.con" as definition.
+
+(* Integral of step functions *)
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/RiemannInt_SF.con" as definition.
+
+(*#*******************************)
+
+(* Properties of step functions *)
+
+(*#*******************************)
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P5.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P6.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P7.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P8.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P9.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P10.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P11.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P12.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P13.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P14.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P15.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P16.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P17.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P18.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P19.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P20.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P21.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P22.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P23.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P24.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P25.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P26.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P27.con" as lemma.
+
+(* The set of step functions on [a,b] is a vectorial space *)
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P28.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P29.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P30.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P31.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P32.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P33.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P34.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P35.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P36.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P37.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P38.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P39.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P40.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P41.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P42.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P43.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P44.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P45.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/RiemannInt_SF/StepFun_P46.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rlimit.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rlimit.mma
new file mode 100644 (file)
index 0000000..6077ffa
--- /dev/null
@@ -0,0 +1,190 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rlimit.v,v 1.23 2003/12/15 19:48:21 barras Exp $ i*)
+
+(*#********************************************************)
+
+(*           Definition of the limit                     *)
+
+(*                                                       *)
+
+(*#********************************************************)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Logic/Classical_Prop.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#******************************)
+
+(*      Calculus               *)
+
+(*#******************************)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/eps2_Rgt_R0.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/eps2.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/eps4.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/Rlt_eps2_eps.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/Rlt_eps4_eps.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/prop_eps.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/mul_factor.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/mul_factor_wd.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/mul_factor_gt.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/mul_factor_gt_f.con" as lemma.
+
+(*#******************************)
+
+(*      Metric space           *)
+
+(*#******************************)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/Metric_Space.ind".
+
+(*#******************************)
+
+(*     Limit in Metric space   *)
+
+(*#******************************)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/limit_in.con" as definition.
+
+(*#******************************)
+
+(*    R is a metric space      *)
+
+(*#******************************)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/R_met.con" as definition.
+
+(*#******************************)
+
+(*         Limit 1 arg         *)
+
+(*#******************************)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/Dgf.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/limit1_in.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/tech_limit.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/tech_limit_contr.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/lim_x.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/limit_plus.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/limit_Ropp.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/limit_minus.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/limit_free.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/limit_mul.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/adhDa.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/single_limit.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/limit_comp.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rlimit/limit_inv.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rpower.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rpower.mma
new file mode 100644 (file)
index 0000000..fb5e5c7
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rpower.v,v 1.17 2003/12/24 10:27:07 barras Exp $ i*)
+
+(*i Due to L.Thery i*)
+
+(*#***********************************************************)
+
+(* Definitions of log and Rpower : R->R->R; main properties *)
+
+(*#***********************************************************)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Rtrigo.ma".
+
+include "Reals/Ranalysis1.ma".
+
+include "Reals/Exp_prop.ma".
+
+include "Reals/Rsqrt_def.ma".
+
+include "Reals/R_sqrt.ma".
+
+include "Reals/MVT.ma".
+
+include "Reals/Ranalysis4.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/Rpower/P_Rmin.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rpower/exp_le_3.con" as lemma.
+
+(*#*****************************************************************)
+
+(*                        Properties of  Exp                      *)
+
+(*#*****************************************************************)
+
+inline procedural "cic:/Coq/Reals/Rpower/exp_increasing.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/exp_lt_inv.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/exp_ineq1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rpower/ln_exists1.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rpower/ln_exists.con" as lemma.
+
+(* Definition of log R+* -> R *)
+
+inline procedural "cic:/Coq/Reals/Rpower/Rln.con" as definition.
+
+(* Extension on R *)
+
+inline procedural "cic:/Coq/Reals/Rpower/ln.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rpower/exp_ln.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rpower/exp_inv.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/exp_Ropp.con" as theorem.
+
+(*#*****************************************************************)
+
+(*                        Properties of  Ln                       *)
+
+(*#*****************************************************************)
+
+inline procedural "cic:/Coq/Reals/Rpower/ln_increasing.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/ln_exp.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/ln_1.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/ln_lt_inv.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/ln_inv.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/ln_mult.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/ln_Rinv.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/ln_continue.con" as theorem.
+
+(*#*****************************************************************)
+
+(*                        Definition of  Rpower                   *)
+
+(*#*****************************************************************)
+
+inline procedural "cic:/Coq/Reals/Rpower/Rpower.con" as definition.
+
+(* NOTATION
+Infix Local "^R" := Rpower (at level 30, right associativity) : R_scope.
+*)
+
+(*#*****************************************************************)
+
+(*                        Properties of  Rpower                   *)
+
+(*#*****************************************************************)
+
+inline procedural "cic:/Coq/Reals/Rpower/Rpower_plus.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/Rpower_mult.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/Rpower_O.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/Rpower_1.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/Rpower_pow.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/Rpower_lt.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/Rpower_sqrt.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/Rpower_Ropp.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/Rle_Rpower.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/ln_lt_2.con" as theorem.
+
+(*#*************************************)
+
+(* Differentiability of Ln and Rpower *)
+
+(*#*************************************)
+
+inline procedural "cic:/Coq/Reals/Rpower/limit1_ext.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/limit1_imp.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/Rinv_Rdiv.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/Dln.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/derivable_pt_lim_ln.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rpower/D_in_imp.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/D_in_ext.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/Dpower.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rpower/derivable_pt_lim_power.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rprod.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rprod.mma
new file mode 100644 (file)
index 0000000..b85e455
--- /dev/null
@@ -0,0 +1,84 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rprod.v,v 1.10 2003/11/29 17:28:38 herbelin Exp $ i*)
+
+include "Arith/Compare.ma".
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Rseries.ma".
+
+include "Reals/PartSum.ma".
+
+include "Reals/Binomial.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(* TT Ak; 1<=k<=N *)
+
+inline procedural "cic:/Coq/Reals/Rprod/prod_f_SO.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rprod/prod_SO_split.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rprod/prod_SO_pos.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rprod/prod_SO_Rle.con" as lemma.
+
+(* Application to factorial *)
+
+inline procedural "cic:/Coq/Reals/Rprod/fact_prodSO.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rprod/le_n_2n.con" as lemma.
+
+(* We prove that (N!)²<=(2N-k)!*k! forall k in [|O;2N|] *)
+
+inline procedural "cic:/Coq/Reals/Rprod/RfactN_fact2N_factk.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rprod/INR_fact_lt_0.con" as lemma.
+
+(* We have the following inequality : (C 2N k) <= (C 2N N) forall k in [|O;2N|] *)
+
+inline procedural "cic:/Coq/Reals/Rprod/C_maj.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rseries.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rseries.mma
new file mode 100644 (file)
index 0000000..4603b7c
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rseries.v,v 1.11 2003/12/15 19:48:21 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Logic/Classical.ma".
+
+include "Arith/Compare.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(* UNEXPORTED
+Implicit Type r : R.
+*)
+
+(* classical is needed for [Un_cv_crit] *)
+
+(*#********************************************************)
+
+(*           Definition of sequence and properties       *)
+
+(*                                                       *)
+
+(*#********************************************************)
+
+(* UNEXPORTED
+Section sequence
+*)
+
+(*#********)
+
+(* UNEXPORTED
+cic:/Coq/Reals/Rseries/sequence/Un.var
+*)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rseries/Rmax_N.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rseries/EUn.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rseries/Un_cv.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rseries/Cauchy_crit.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rseries/Un_growing.con" as definition.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rseries/EUn_noempty.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rseries/Un_in_EUn.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rseries/Un_bound_imp.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rseries/growing_prop.con" as lemma.
+
+(* classical is needed: [not_all_not_ex] *)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rseries/Un_cv_crit.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rseries/finite_greater.con" as lemma.
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rseries/cauchy_bound.con" as lemma.
+
+(* UNEXPORTED
+End sequence
+*)
+
+(*#****************************************************************)
+
+(*           Definition of Power Series and properties           *)
+
+(*                                                               *)
+
+(*#****************************************************************)
+
+(* UNEXPORTED
+Section Isequence
+*)
+
+(*#********)
+
+(* UNEXPORTED
+cic:/Coq/Reals/Rseries/Isequence/An.var
+*)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rseries/Pser.con" as definition.
+
+(* UNEXPORTED
+End Isequence
+*)
+
+inline procedural "cic:/Coq/Reals/Rseries/GP_infinite.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rsigma.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rsigma.mma
new file mode 100644 (file)
index 0000000..ef26588
--- /dev/null
@@ -0,0 +1,76 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rsigma.v,v 1.12 2003/11/29 17:28:39 herbelin Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Rseries.ma".
+
+include "Reals/PartSum.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(* UNEXPORTED
+Section Sigma
+*)
+
+(* UNEXPORTED
+cic:/Coq/Reals/Rsigma/Sigma/f.var
+*)
+
+inline procedural "cic:/Coq/Reals/Rsigma/sigma.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rsigma/sigma_split.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rsigma/sigma_diff.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rsigma/sigma_diff_neg.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rsigma/sigma_first.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rsigma/sigma_last.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rsigma/sigma_eq_arg.con" as theorem.
+
+(* UNEXPORTED
+End Sigma
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rsqrt_def.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rsqrt_def.mma
new file mode 100644 (file)
index 0000000..5931302
--- /dev/null
@@ -0,0 +1,118 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rsqrt_def.v,v 1.14 2003/12/24 10:27:07 barras Exp $ i*)
+
+include "Bool/Sumbool.ma".
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Ranalysis1.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/Dichotomy_lb.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/dicho_lb.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/dicho_up.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/dicho_comp.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/dicho_lb_growing.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/dicho_up_decreasing.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/dicho_lb_maj_y.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/dicho_lb_maj.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/dicho_up_min_x.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/dicho_up_min.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/dicho_lb_cv.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/dicho_up_cv.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/dicho_lb_dicho_up.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/pow_2_n.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/pow_2_n_neq_R0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/pow_2_n_growing.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/pow_2_n_infty.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/cv_dicho.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/cond_positivity.con" as definition.
+
+(* Sequential caracterisation of continuity *)
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/continuity_seq.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/dicho_lb_car.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/dicho_up_car.con" as lemma.
+
+(* Intermediate Value Theorem *)
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/IVT.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/IVT_cor.con" as lemma.
+
+(* We can now define the square root function as the reciprocal transformation of the square root function *)
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/Rsqrt_exists.con" as lemma.
+
+(* Definition of the square root: R+->R *)
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/Rsqrt.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/Rsqrt_positivity.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rsqrt_def/Rsqrt_Rsqrt.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rtopology.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rtopology.mma
new file mode 100644 (file)
index 0000000..50cd41a
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rtopology.v,v 1.19 2003/12/24 10:27:07 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Ranalysis1.ma".
+
+include "Reals/RList.ma".
+
+include "Logic/Classical_Prop.ma".
+
+include "Logic/Classical_Pred_Type.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/Rtopology/included.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/disc.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/neighbourhood.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/open_set.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/complementary.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/closed_set.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/intersection_domain.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/union_domain.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/interior.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/interior_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/interior_P2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/point_adherent.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/adherence.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/adherence_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/included_trans.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/interior_P3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/complementary_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/adherence_P2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/adherence_P3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/eq_Dom.con" as definition.
+
+(* NOTATION
+Infix "=_D" := eq_Dom (at level 70, no associativity).
+*)
+
+inline procedural "cic:/Coq/Reals/Rtopology/open_set_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/closed_set_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/neighbourhood_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/open_set_P2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/open_set_P3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/open_set_P4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/open_set_P5.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/disc_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/continuity_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/image_rec.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtopology/continuity_P2.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtopology/continuity_P3.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtopology/Rsepare.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rtopology/family.ind".
+
+inline procedural "cic:/Coq/Reals/Rtopology/family_open_set.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/domain_finite.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/family_finite.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/covering.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/covering_open_set.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/covering_finite.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/restriction_family.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/subfamily.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/compact.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtopology/family_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/bounded.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/open_set_P6.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtopology/compact_P1.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtopology/compact_P2.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtopology/compact_EMP.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/compact_eqDom.con" as lemma.
+
+(* Borel-Lebesgue's lemma *)
+
+inline procedural "cic:/Coq/Reals/Rtopology/compact_P3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/compact_P4.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtopology/compact_P5.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtopology/compact_carac.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/image_dir.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtopology/continuity_compact.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/Rlt_Rminus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/prolongement_C0.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtopology/continuity_ab_maj.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtopology/continuity_ab_min.con" as lemma.
+
+(*#*******************************************************)
+
+(*         Proof of Bolzano-Weierstrass theorem         *)
+
+(*#*******************************************************)
+
+inline procedural "cic:/Coq/Reals/Rtopology/ValAdh.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/intersection_family.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/ValAdh_un_exists.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/ValAdh_un.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/ValAdh_un_prop.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/adherence_P4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/family_closed_set.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/intersection_vide_in.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/intersection_vide_finite_in.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtopology/compact_P6.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/Bolzano_Weierstrass.con" as theorem.
+
+(*#*******************************************************)
+
+(*               Proof of Heine's theorem               *)
+
+(*#*******************************************************)
+
+inline procedural "cic:/Coq/Reals/Rtopology/uniform_continuity.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtopology/is_lub_u.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/domain_P1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtopology/Heine.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo.mma
new file mode 100644 (file)
index 0000000..f44e9cd
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rtrigo.v,v 1.40 2003/12/24 10:27:07 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Rtrigo_fun.ma".
+
+include "Reals/Rtrigo_def.ma".
+
+include "Reals/Rtrigo_alt.ma".
+
+include "Reals/Cos_rel.ma".
+
+include "Reals/Cos_plus.ma".
+
+include "ZArith/ZArith_base.ma".
+
+include "ZArith/Zcomplements.ma".
+
+include "Logic/Classical_Prop.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#* sin_PI2 is the only remaining axiom **)
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_PI2.con".
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo/PI_neq0.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_minus.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin2_cos2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos2.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_PI2.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_PI.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_PI.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo/neg_cos.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_cos.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_plus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_minus.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo/tan.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/tan_plus.con" as lemma.
+
+(*#******************************************************)
+
+(* Some properties of cos, sin and tan                 *)
+
+(*#******************************************************)
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_2a.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_2a.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_2a_cos.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_2a_sin.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/tan_2a.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_neg.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_neg.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/tan_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/tan_neg.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/tan_minus.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_3PI2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_2PI.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_2PI.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/neg_sin.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_PI_x.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_period.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_period.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_shift.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_shift.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_sin.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/PI2_RGT_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/SIN_bound.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/COS_bound.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_sin_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_sin_0_var.con" as lemma.
+
+(*#****************************************************************)
+
+(* Using series definitions of cos and sin                       *)
+
+(*#****************************************************************)
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_lb.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_ub.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_lb.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_ub.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_lb_gt_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/SIN.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/COS.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo/_PI2_RLT_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/PI4_RLT_PI2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/PI2_Rlt_PI.con" as lemma.
+
+(*#*******************************************)
+
+(* Increasing and decreasing of COS and SIN *)
+
+(*#*******************************************)
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_gt_0.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_gt_0.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_ge_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_ge_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_le_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_le_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_lt_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_lt_0_var.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_lt_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/tan_gt_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/tan_lt_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_ge_0_3PI2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/form1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/form2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/form3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/form4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_increasing_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_increasing_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_decreasing_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_decreasing_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_increasing_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_increasing_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_decreasing_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_decreasing_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/tan_diff.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/tan_increasing_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/tan_increasing_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_incr_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_incr_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_decr_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_decr_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_incr_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_incr_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_decr_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_decr_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/tan_incr_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/tan_incr_1.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_eq_0_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_eq_0_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_eq_0_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_eq_0_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_eq_O_2PI_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/sin_eq_O_2PI_1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_eq_0_2PI_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo/cos_eq_0_2PI_1.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo_alt.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo_alt.mma
new file mode 100644 (file)
index 0000000..1bd9a45
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rtrigo_alt.v,v 1.16 2003/12/24 10:27:08 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Rtrigo_def.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#****************************************************************)
+
+(* Using series definitions of cos and sin                       *)
+
+(*#****************************************************************)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_alt/sin_term.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_alt/cos_term.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_alt/sin_approx.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_alt/cos_approx.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_alt/PI_4.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_alt/sin_bound.con" as theorem.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_alt/cos_bound.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo_calc.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo_calc.mma
new file mode 100644 (file)
index 0000000..444e6ff
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rtrigo_calc.v,v 1.15 2003/11/29 17:28:39 herbelin Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Rtrigo.ma".
+
+include "Reals/R_sqrt.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/tan_PI.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/sin_3PI2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/tan_2PI.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/sin_cos_PI4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/sin_PI3_cos_PI6.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/sin_PI6_cos_PI3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/PI6_RGT_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/PI6_RLT_PI2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/sin_PI6.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/sqrt2_neq_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/R1_sqrt2_neq_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/sqrt3_2_neq_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/Rlt_sqrt2_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/Rlt_sqrt3_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/PI4_RGT_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/cos_PI4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/sin_PI4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/tan_PI4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/cos3PI4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/sin3PI4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/cos_PI6.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/tan_PI6.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/sin_PI3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/cos_PI3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/tan_PI3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/sin_2PI3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/cos_2PI3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/tan_2PI3.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/cos_5PI4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/sin_5PI4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/sin_cos5PI4.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/Rgt_3PI2_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/Rgt_2PI_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/Rlt_PI_3PI2.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/Rlt_3PI2_2PI.con" as lemma.
+
+(*#**************************************************************)
+
+(* Radian -> Degree | Degree -> Radian                         *)
+
+(*#**************************************************************)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/plat.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/toRad.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/toDeg.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/rad_deg.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/toRad_inj.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/deg_rad.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/sind.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/cosd.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/tand.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/Rsqr_sin_cos_d_one.con" as lemma.
+
+(*#**************************************************)
+
+(*                Other properties                 *)
+
+(*#**************************************************)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_calc/sin_lb_ge_0.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo_def.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo_def.mma
new file mode 100644 (file)
index 0000000..a04b7da
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rtrigo_def.v,v 1.17 2003/12/15 19:48:21 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Rtrigo_fun.ma".
+
+include "Arith/Max.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#****************************)
+
+(* Definition of exponential *)
+
+(*#****************************)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/exp_in.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/exp_cof_no_R0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/exist_exp.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/exp.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/pow_i.con" as lemma.
+
+(*i Calculus of $e^0$ *)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/exist_exp0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/exp_0.con" as lemma.
+
+(*#*************************************)
+
+(* Definition of hyperbolic functions *)
+
+(*#*************************************)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/cosh.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/sinh.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/tanh.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/cosh_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/sinh_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/cos_n.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/simpl_cos_n.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/archimed_cor1.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/Alembert_cos.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/cosn_no_R0.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/cos_in.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/exist_cos.con" as lemma.
+
+(* Definition of cosinus *)
+
+(*#************************)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/cos.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/sin_n.con" as definition.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/simpl_sin_n.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/Alembert_sin.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/sin_no_R0.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/sin_in.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/exist_sin.con" as lemma.
+
+(*#**********************)
+
+(* Definition of sinus *)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/sin.con" as definition.
+
+(*#********************************************)
+
+(*                 PROPERTIES                *)
+
+(*#********************************************)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/cos_sym.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/sin_antisym.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/sin_0.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/exist_cos0.con" as lemma.
+
+(* Calculus of (cos 0) *)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_def/cos_0.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo_fun.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo_fun.mma
new file mode 100644 (file)
index 0000000..931cf81
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rtrigo_fun.v,v 1.7 2003/11/29 17:28:39 herbelin Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#****************************************************************)
+
+(*           To define transcendental functions                  *)
+
+(*                                                               *)
+
+(*#****************************************************************)
+
+(*#****************************************************************)
+
+(*           For exponential function                            *)
+
+(*                                                               *)
+
+(*#****************************************************************)
+
+(*#********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_fun/Alembert_exp.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo_reg.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Rtrigo_reg.mma
new file mode 100644 (file)
index 0000000..3745a00
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rtrigo_reg.v,v 1.15 2003/12/24 10:27:08 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/SeqSeries.ma".
+
+include "Reals/Rtrigo.ma".
+
+include "Reals/Ranalysis1.ma".
+
+include "Reals/PSeries_reg.ma".
+
+(* UNEXPORTED
+Open Local Scope nat_scope.
+*)
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_reg/CVN_R_cos.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_reg/continuity_cos.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_reg/continuity_sin.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_reg/CVN_R_sin.con" as lemma.
+
+(* (sin h)/h -> 1 when h -> 0 *)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_reg/derivable_pt_lim_sin_0.con" as lemma.
+
+(* ((cos h)-1)/h -> 0 when h -> 0 *)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_reg/derivable_pt_lim_cos_0.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Rtrigo_reg/derivable_pt_lim_sin.con" as theorem.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_reg/derivable_pt_lim_cos.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_reg/derivable_pt_sin.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_reg/derivable_pt_cos.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_reg/derivable_sin.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_reg/derivable_cos.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_reg/derive_pt_sin.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/Rtrigo_reg/derive_pt_cos.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/SeqProp.mma b/helm/software/matita/contribs/procedural/Coq/Reals/SeqProp.mma
new file mode 100644 (file)
index 0000000..2e61e71
--- /dev/null
@@ -0,0 +1,190 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: SeqProp.v,v 1.13 2003/12/24 10:27:08 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Rseries.ma".
+
+include "Logic/Classical.ma".
+
+include "Arith/Max.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+inline procedural "cic:/Coq/Reals/SeqProp/Un_decreasing.con" as definition.
+
+inline procedural "cic:/Coq/Reals/SeqProp/opp_seq.con" as definition.
+
+inline procedural "cic:/Coq/Reals/SeqProp/has_ub.con" as definition.
+
+inline procedural "cic:/Coq/Reals/SeqProp/has_lb.con" as definition.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/growing_cv.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/SeqProp/decreasing_growing.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/SeqProp/decreasing_cv.con" as lemma.
+
+(*#**********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/maj_sup.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/min_inf.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/SeqProp/majorant.con" as definition.
+
+inline procedural "cic:/Coq/Reals/SeqProp/minorant.con" as definition.
+
+inline procedural "cic:/Coq/Reals/SeqProp/maj_ss.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/SeqProp/min_ss.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/SeqProp/sequence_majorant.con" as definition.
+
+inline procedural "cic:/Coq/Reals/SeqProp/sequence_minorant.con" as definition.
+
+inline procedural "cic:/Coq/Reals/SeqProp/Wn_decreasing.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/SeqProp/Vn_growing.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/Vn_Un_Wn_order.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/SeqProp/min_maj.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/SeqProp/maj_min.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/cauchy_maj.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/cauchy_opp.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/cauchy_min.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/maj_cv.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/min_cv.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/SeqProp/cond_eq.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/SeqProp/not_Rlt.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/approx_maj.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/approx_min.con" as lemma.
+
+(* Unicity of limit for convergent sequences *)
+
+inline procedural "cic:/Coq/Reals/SeqProp/UL_sequence.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/CV_plus.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/cv_cvabs.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/CV_Cauchy.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/maj_by_pos.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/CV_mult.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/SeqProp/tech9.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/SeqProp/tech10.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/SeqProp/tech13.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/growing_ineq.con" as lemma.
+
+(* Un->l => (-Un) -> (-l) *)
+
+inline procedural "cic:/Coq/Reals/SeqProp/CV_opp.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/decreasing_ineq.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/CV_minus.con" as lemma.
+
+(* Un -> +oo *)
+
+inline procedural "cic:/Coq/Reals/SeqProp/cv_infty.con" as definition.
+
+(* Un -> +oo => /Un -> O *)
+
+inline procedural "cic:/Coq/Reals/SeqProp/cv_infty_cv_R0.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqProp/decreasing_prop.con" as lemma.
+
+(* |x|^n/n! -> 0 *)
+
+inline procedural "cic:/Coq/Reals/SeqProp/cv_speed_pow_fact.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/SeqSeries.mma b/helm/software/matita/contribs/procedural/Coq/Reals/SeqSeries.mma
new file mode 100644 (file)
index 0000000..bf79a99
--- /dev/null
@@ -0,0 +1,78 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: SeqSeries.v,v 1.14 2003/12/24 10:27:08 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Arith/Max.ma".
+
+include "Reals/Rseries.ma".
+
+include "Reals/SeqProp.ma".
+
+include "Reals/Rcomplete.ma".
+
+include "Reals/PartSum.ma".
+
+include "Reals/AltSeries.ma".
+
+include "Reals/Binomial.ma".
+
+include "Reals/Rsigma.ma".
+
+include "Reals/Rprod.ma".
+
+include "Reals/Cauchy_prod.ma".
+
+include "Reals/Alembert.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/SeqSeries/sum_maj1.con" as lemma.
+
+(* Comparaison of convergence for series *)
+
+inline procedural "cic:/Coq/Reals/SeqSeries/Rseries_CV_comp.con" as lemma.
+
+(* Cesaro's theorem *)
+
+inline procedural "cic:/Coq/Reals/SeqSeries/Cesaro.con" as lemma.
+
+inline procedural "cic:/Coq/Reals/SeqSeries/Cesaro_1.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/SplitAbsolu.mma b/helm/software/matita/contribs/procedural/Coq/Reals/SplitAbsolu.mma
new file mode 100644 (file)
index 0000000..0ed418b
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i      $Id: SplitAbsolu.v,v 1.6 2003/11/29 17:28:40 herbelin Exp $       i*)
+
+include "Reals/Rbasic_fun.ma".
+
+(* UNEXPORTED
+Ltac split_case_Rabs :=
+  match goal with
+  |  |- context [(Rcase_abs ?X1)] =>
+      case (Rcase_abs X1); try split_case_Rabs
+  end.
+*)
+
+(* UNEXPORTED
+Ltac split_Rabs :=
+  match goal with
+  | id:context [(Rabs _)] |- _ => generalize id; clear id; try split_Rabs
+  |  |- context [(Rabs ?X1)] =>
+      unfold Rabs in |- *; try split_case_Rabs; intros
+  end.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/SplitRmult.mma b/helm/software/matita/contribs/procedural/Coq/Reals/SplitRmult.mma
new file mode 100644 (file)
index 0000000..70c14fa
--- /dev/null
@@ -0,0 +1,46 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: SplitRmult.v,v 1.7 2003/11/29 17:28:40 herbelin Exp $ i*)
+
+(*i Lemma mult_non_zero :(r1,r2:R)``r1<>0`` /\ ``r2<>0`` -> ``r1*r2<>0``. i*)
+
+include "Reals/Rbase.ma".
+
+(* UNEXPORTED
+Ltac split_Rmult :=
+  match goal with
+  |  |- ((?X1 * ?X2)%R <> 0%R) =>
+      apply Rmult_integral_contrapositive; split; try split_Rmult
+  end.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Reals/Sqrt_reg.mma b/helm/software/matita/contribs/procedural/Coq/Reals/Sqrt_reg.mma
new file mode 100644 (file)
index 0000000..52be1ea
--- /dev/null
@@ -0,0 +1,78 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Sqrt_reg.v,v 1.9 2003/12/24 10:27:08 barras Exp $ i*)
+
+include "Reals/Rbase.ma".
+
+include "Reals/Rfunctions.ma".
+
+include "Reals/Ranalysis1.ma".
+
+include "Reals/R_sqrt.ma".
+
+(* UNEXPORTED
+Open Local Scope R_scope.
+*)
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Sqrt_reg/sqrt_var_maj.con" as lemma.
+
+(* sqrt is continuous in 1 *)
+
+inline procedural "cic:/Coq/Reals/Sqrt_reg/sqrt_continuity_pt_R1.con" as lemma.
+
+(* sqrt is continuous forall x>0 *)
+
+inline procedural "cic:/Coq/Reals/Sqrt_reg/sqrt_continuity_pt.con" as lemma.
+
+(* sqrt is derivable for all x>0 *)
+
+inline procedural "cic:/Coq/Reals/Sqrt_reg/derivable_pt_lim_sqrt.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Sqrt_reg/derivable_pt_sqrt.con" as lemma.
+
+(*#*********)
+
+inline procedural "cic:/Coq/Reals/Sqrt_reg/derive_pt_sqrt.con" as lemma.
+
+(* We show that sqrt is continuous for all x>=0 *)
+
+(* Remark : by definition of sqrt (as extension of Rsqrt on |R), *)
+
+(*          we could also show that sqrt is continuous for all x *)
+
+inline procedural "cic:/Coq/Reals/Sqrt_reg/continuity_pt_sqrt.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Relations/Newman.mma b/helm/software/matita/contribs/procedural/Coq/Relations/Newman.mma
new file mode 100644 (file)
index 0000000..794718e
--- /dev/null
@@ -0,0 +1,168 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Newman.v,v 1.7 2003/11/29 17:28:41 herbelin Exp $ i*)
+
+include "Relations/Rstar.ma".
+
+(* UNEXPORTED
+Section Newman
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Newman/Newman/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Newman/Newman/R.var
+*)
+
+inline procedural "cic:/Coq/Relations/Newman/Newman/Rstar.con" "Newman__" as definition.
+
+inline procedural "cic:/Coq/Relations/Newman/Newman/Rstar_reflexive.con" "Newman__" as definition.
+
+inline procedural "cic:/Coq/Relations/Newman/Newman/Rstar_transitive.con" "Newman__" as definition.
+
+inline procedural "cic:/Coq/Relations/Newman/Newman/Rstar_Rstar'.con" "Newman__" as definition.
+
+inline procedural "cic:/Coq/Relations/Newman/coherence.con" as definition.
+
+inline procedural "cic:/Coq/Relations/Newman/coherence_intro.con" as theorem.
+
+(*#* A very simple case of coherence : *)
+
+inline procedural "cic:/Coq/Relations/Newman/Rstar_coherence.con" as lemma.
+
+(*#* coherence is symmetric *)
+
+inline procedural "cic:/Coq/Relations/Newman/coherence_sym.con" as lemma.
+
+inline procedural "cic:/Coq/Relations/Newman/confluence.con" as definition.
+
+inline procedural "cic:/Coq/Relations/Newman/local_confluence.con" as definition.
+
+inline procedural "cic:/Coq/Relations/Newman/noetherian.con" as definition.
+
+(* UNEXPORTED
+Section Newman_section
+*)
+
+(*#* The general hypotheses of the theorem *)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Newman/Newman/Newman_section/Hyp1.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Newman/Newman/Newman_section/Hyp2.var
+*)
+
+(*#* The induction hypothesis *)
+
+(* UNEXPORTED
+Section Induct
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Newman/Newman/Newman_section/Induct/x.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Newman/Newman/Newman_section/Induct/hyp_ind.var
+*)
+
+(*#* Confluence in [x] *)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Newman/Newman/Newman_section/Induct/y.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Newman/Newman/Newman_section/Induct/z.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Newman/Newman/Newman_section/Induct/h1.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Newman/Newman/Newman_section/Induct/h2.var
+*)
+
+(*#* particular case [x->u] and [u->*y]   *)
+
+(* UNEXPORTED
+Section Newman_
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Newman/Newman/Newman_section/Induct/Newman_/u.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Newman/Newman/Newman_section/Induct/Newman_/t1.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Newman/Newman/Newman_section/Induct/Newman_/t2.var
+*)
+
+(*#* In the usual diagram, we assume also [x->v] and [v->*z] *)
+
+inline procedural "cic:/Coq/Relations/Newman/Diagram.con" as theorem.
+
+inline procedural "cic:/Coq/Relations/Newman/caseRxy.con" as theorem.
+
+(*i case x->v->*z i*)
+
+(* UNEXPORTED
+End Newman_
+*)
+
+inline procedural "cic:/Coq/Relations/Newman/Ind_proof.con" as theorem.
+
+(*i case x->u->*z i*)
+
+(* UNEXPORTED
+End Induct
+*)
+
+inline procedural "cic:/Coq/Relations/Newman/Newman.con" as theorem.
+
+(* UNEXPORTED
+End Newman_section
+*)
+
+(* UNEXPORTED
+End Newman
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Relations/Operators_Properties.mma b/helm/software/matita/contribs/procedural/Coq/Relations/Operators_Properties.mma
new file mode 100644 (file)
index 0000000..258beb0
--- /dev/null
@@ -0,0 +1,90 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Operators_Properties.v,v 1.7 2003/11/29 17:28:41 herbelin Exp $ i*)
+
+(*#***************************************************************************)
+
+(*                            Bruno Barras                                  *)
+
+(*#***************************************************************************)
+
+include "Relations/Relation_Definitions.ma".
+
+include "Relations/Relation_Operators.ma".
+
+(* UNEXPORTED
+Section Properties
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Operators_Properties/Properties/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Operators_Properties/Properties/R.var
+*)
+
+inline procedural "cic:/Coq/Relations/Operators_Properties/Properties/incl.con" "Properties__" as definition.
+
+(* UNEXPORTED
+Section Clos_Refl_Trans
+*)
+
+inline procedural "cic:/Coq/Relations/Operators_Properties/clos_rt_is_preorder.con" as lemma.
+
+inline procedural "cic:/Coq/Relations/Operators_Properties/clos_rt_idempotent.con" as lemma.
+
+inline procedural "cic:/Coq/Relations/Operators_Properties/clos_refl_trans_ind_left.con" as lemma.
+
+(* UNEXPORTED
+End Clos_Refl_Trans
+*)
+
+(* UNEXPORTED
+Section Clos_Refl_Sym_Trans
+*)
+
+inline procedural "cic:/Coq/Relations/Operators_Properties/clos_rt_clos_rst.con" as lemma.
+
+inline procedural "cic:/Coq/Relations/Operators_Properties/clos_rst_is_equiv.con" as lemma.
+
+inline procedural "cic:/Coq/Relations/Operators_Properties/clos_rst_idempotent.con" as lemma.
+
+(* UNEXPORTED
+End Clos_Refl_Sym_Trans
+*)
+
+(* UNEXPORTED
+End Properties
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Relations/Relation_Definitions.mma b/helm/software/matita/contribs/procedural/Coq/Relations/Relation_Definitions.mma
new file mode 100644 (file)
index 0000000..dffbc76
--- /dev/null
@@ -0,0 +1,116 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Relation_Definitions.v,v 1.6 2003/12/15 19:48:22 barras Exp $ i*)
+
+(* UNEXPORTED
+Section Relation_Definition
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Definitions/Relation_Definition/A.var
+*)
+
+inline procedural "cic:/Coq/Relations/Relation_Definitions/relation.con" as definition.
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Definitions/Relation_Definition/R.var
+*)
+
+(* UNEXPORTED
+Section General_Properties_of_Relations
+*)
+
+inline procedural "cic:/Coq/Relations/Relation_Definitions/reflexive.con" as definition.
+
+inline procedural "cic:/Coq/Relations/Relation_Definitions/transitive.con" as definition.
+
+inline procedural "cic:/Coq/Relations/Relation_Definitions/symmetric.con" as definition.
+
+inline procedural "cic:/Coq/Relations/Relation_Definitions/antisymmetric.con" as definition.
+
+(* for compatibility with Equivalence in  ../PROGRAMS/ALG/  *)
+
+inline procedural "cic:/Coq/Relations/Relation_Definitions/equiv.con" as definition.
+
+(* UNEXPORTED
+End General_Properties_of_Relations
+*)
+
+(* UNEXPORTED
+Section Sets_of_Relations
+*)
+
+inline procedural "cic:/Coq/Relations/Relation_Definitions/preorder.ind".
+
+inline procedural "cic:/Coq/Relations/Relation_Definitions/order.ind".
+
+inline procedural "cic:/Coq/Relations/Relation_Definitions/equivalence.ind".
+
+inline procedural "cic:/Coq/Relations/Relation_Definitions/PER.ind".
+
+(* UNEXPORTED
+End Sets_of_Relations
+*)
+
+(* UNEXPORTED
+Section Relations_of_Relations
+*)
+
+inline procedural "cic:/Coq/Relations/Relation_Definitions/inclusion.con" as definition.
+
+inline procedural "cic:/Coq/Relations/Relation_Definitions/same_relation.con" as definition.
+
+inline procedural "cic:/Coq/Relations/Relation_Definitions/commut.con" as definition.
+
+(* UNEXPORTED
+End Relations_of_Relations
+*)
+
+(* UNEXPORTED
+End Relation_Definition
+*)
+
+(* UNEXPORTED
+Hint Unfold reflexive transitive antisymmetric symmetric: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Build_preorder Build_order Build_equivalence Build_PER
+  preord_refl preord_trans ord_refl ord_trans ord_antisym equiv_refl
+  equiv_trans equiv_sym per_sym per_trans: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Unfold inclusion same_relation commut: sets v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Relations/Relation_Operators.mma b/helm/software/matita/contribs/procedural/Coq/Relations/Relation_Operators.mma
new file mode 100644 (file)
index 0000000..6dde6e0
--- /dev/null
@@ -0,0 +1,286 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Relation_Operators.v,v 1.8 2003/11/29 17:28:41 herbelin Exp $ i*)
+
+(*#***************************************************************************)
+
+(*                      Bruno Barras, Cristina Cornes                       *)
+
+(*                                                                          *)
+
+(*  Some of these definitons were taken from :                              *)
+
+(*     Constructing Recursion Operators in Type Theory                      *)
+
+(*     L. Paulson  JSC (1986) 2, 325-355                                    *)
+
+(*#***************************************************************************)
+
+include "Relations/Relation_Definitions.ma".
+
+include "Lists/List.ma".
+
+(*#* Some operators to build relations *)
+
+(* UNEXPORTED
+Section Transitive_Closure
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Transitive_Closure/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Transitive_Closure/R.var
+*)
+
+inline procedural "cic:/Coq/Relations/Relation_Operators/clos_trans.ind".
+
+(* UNEXPORTED
+End Transitive_Closure
+*)
+
+(* UNEXPORTED
+Section Reflexive_Transitive_Closure
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Reflexive_Transitive_Closure/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Reflexive_Transitive_Closure/R.var
+*)
+
+inline procedural "cic:/Coq/Relations/Relation_Operators/clos_refl_trans.ind".
+
+(* UNEXPORTED
+End Reflexive_Transitive_Closure
+*)
+
+(* UNEXPORTED
+Section Reflexive_Symetric_Transitive_Closure
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Reflexive_Symetric_Transitive_Closure/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Reflexive_Symetric_Transitive_Closure/R.var
+*)
+
+inline procedural "cic:/Coq/Relations/Relation_Operators/clos_refl_sym_trans.ind".
+
+(* UNEXPORTED
+End Reflexive_Symetric_Transitive_Closure
+*)
+
+(* UNEXPORTED
+Section Transposee
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Transposee/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Transposee/R.var
+*)
+
+inline procedural "cic:/Coq/Relations/Relation_Operators/transp.con" as definition.
+
+(* UNEXPORTED
+End Transposee
+*)
+
+(* UNEXPORTED
+Section Union
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Union/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Union/R1.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Union/R2.var
+*)
+
+inline procedural "cic:/Coq/Relations/Relation_Operators/union.con" as definition.
+
+(* UNEXPORTED
+End Union
+*)
+
+(* UNEXPORTED
+Section Disjoint_Union
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Disjoint_Union/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Disjoint_Union/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Disjoint_Union/leA.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Disjoint_Union/leB.var
+*)
+
+inline procedural "cic:/Coq/Relations/Relation_Operators/le_AsB.ind".
+
+(* UNEXPORTED
+End Disjoint_Union
+*)
+
+(* UNEXPORTED
+Section Lexicographic_Product
+*)
+
+(* Lexicographic order on dependent pairs *)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Lexicographic_Product/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Lexicographic_Product/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Lexicographic_Product/leA.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Lexicographic_Product/leB.var
+*)
+
+inline procedural "cic:/Coq/Relations/Relation_Operators/lexprod.ind".
+
+(* UNEXPORTED
+End Lexicographic_Product
+*)
+
+(* UNEXPORTED
+Section Symmetric_Product
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Symmetric_Product/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Symmetric_Product/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Symmetric_Product/leA.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Symmetric_Product/leB.var
+*)
+
+inline procedural "cic:/Coq/Relations/Relation_Operators/symprod.ind".
+
+(* UNEXPORTED
+End Symmetric_Product
+*)
+
+(* UNEXPORTED
+Section Swap
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Swap/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Swap/R.var
+*)
+
+inline procedural "cic:/Coq/Relations/Relation_Operators/swapprod.ind".
+
+(* UNEXPORTED
+End Swap
+*)
+
+(* UNEXPORTED
+Section Lexicographic_Exponentiation
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Lexicographic_Exponentiation/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Relation_Operators/Lexicographic_Exponentiation/leA.var
+*)
+
+inline procedural "cic:/Coq/Relations/Relation_Operators/Lexicographic_Exponentiation/Nil.con" "Lexicographic_Exponentiation__" as definition.
+
+inline procedural "cic:/Coq/Relations/Relation_Operators/Lexicographic_Exponentiation/List.con" "Lexicographic_Exponentiation__" as definition.
+
+inline procedural "cic:/Coq/Relations/Relation_Operators/Ltl.ind".
+
+inline procedural "cic:/Coq/Relations/Relation_Operators/Desc.ind".
+
+inline procedural "cic:/Coq/Relations/Relation_Operators/Pow.con" as definition.
+
+inline procedural "cic:/Coq/Relations/Relation_Operators/lex_exp.con" as definition.
+
+(* UNEXPORTED
+End Lexicographic_Exponentiation
+*)
+
+(* UNEXPORTED
+Hint Unfold transp union: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve t_step rt_step rt_refl rst_step rst_refl: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Immediate rst_sym: sets v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Relations/Relations.mma b/helm/software/matita/contribs/procedural/Coq/Relations/Relations.mma
new file mode 100644 (file)
index 0000000..9f3930a
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Relations.v,v 1.6 2003/11/29 17:28:41 herbelin Exp $ i*)
+
+include "Relations/Relation_Definitions.ma".
+
+include "Relations/Relation_Operators.ma".
+
+include "Relations/Operators_Properties.ma".
+
+inline procedural "cic:/Coq/Relations/Relations/inverse_image_of_equivalence.con" as lemma.
+
+inline procedural "cic:/Coq/Relations/Relations/inverse_image_of_eq.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Relations/Rstar.mma b/helm/software/matita/contribs/procedural/Coq/Relations/Rstar.mma
new file mode 100644 (file)
index 0000000..80656d5
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Rstar.v,v 1.8 2003/12/15 19:48:22 barras Exp $ i*)
+
+(*#* Properties of a binary relation [R] on type [A] *)
+
+(* UNEXPORTED
+Section Rstar
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Rstar/Rstar/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Relations/Rstar/Rstar/R.var
+*)
+
+(*#* Definition of the reflexive-transitive closure [R*] of [R] *)
+
+(*#* Smallest reflexive [P] containing [R o P] *)
+
+inline procedural "cic:/Coq/Relations/Rstar/Rstar.con" as definition.
+
+inline procedural "cic:/Coq/Relations/Rstar/Rstar_reflexive.con" as theorem.
+
+inline procedural "cic:/Coq/Relations/Rstar/Rstar_R.con" as theorem.
+
+(*#* We conclude with transitivity of [Rstar] : *)
+
+inline procedural "cic:/Coq/Relations/Rstar/Rstar_transitive.con" as theorem.
+
+(*#* Another characterization of [R*] *)
+
+(*#* Smallest reflexive [P] containing [R o R*] *)
+
+inline procedural "cic:/Coq/Relations/Rstar/Rstar'.con" as definition.
+
+inline procedural "cic:/Coq/Relations/Rstar/Rstar'_reflexive.con" as theorem.
+
+inline procedural "cic:/Coq/Relations/Rstar/Rstar'_R.con" as theorem.
+
+(*#* Equivalence of the two definitions: *)
+
+inline procedural "cic:/Coq/Relations/Rstar/Rstar'_Rstar.con" as theorem.
+
+inline procedural "cic:/Coq/Relations/Rstar/Rstar_Rstar'.con" as theorem.
+
+(*#* Property of Commutativity of two relations *)
+
+inline procedural "cic:/Coq/Relations/Rstar/commut.con" as definition.
+
+(* UNEXPORTED
+End Rstar
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Setoids/Setoid.mma b/helm/software/matita/contribs/procedural/Coq/Setoids/Setoid.mma
new file mode 100644 (file)
index 0000000..7f5483b
--- /dev/null
@@ -0,0 +1,88 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Setoid.v,v 1.5 2003/11/29 17:28:41 herbelin Exp $: i*)
+
+(* UNEXPORTED
+Section Setoid
+*)
+
+(* UNEXPORTED
+cic:/Coq/Setoids/Setoid/Setoid/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Setoids/Setoid/Setoid/Aeq.var
+*)
+
+inline procedural "cic:/Coq/Setoids/Setoid/Setoid_Theory.ind".
+
+(* UNEXPORTED
+End Setoid
+*)
+
+inline procedural "cic:/Coq/Setoids/Setoid/Prop_S.con" as definition.
+
+(* NOTATION
+Add Setoid Prop iff Prop_S.
+*)
+
+(* UNEXPORTED
+Hint Resolve (Seq_refl Prop iff Prop_S): setoid.
+*)
+
+(* UNEXPORTED
+Hint Resolve (Seq_sym Prop iff Prop_S): setoid.
+*)
+
+(* UNEXPORTED
+Hint Resolve (Seq_trans Prop iff Prop_S): setoid.
+*)
+
+inline procedural "cic:/Coq/Setoids/Setoid/or_ext1.con" as theorem.
+
+inline procedural "cic:/Coq/Setoids/Setoid/or_ext2.con" as theorem.
+
+inline procedural "cic:/Coq/Setoids/Setoid/and_ext1.con" as theorem.
+
+inline procedural "cic:/Coq/Setoids/Setoid/and_ext2.con" as theorem.
+
+inline procedural "cic:/Coq/Setoids/Setoid/not_ext1.con" as theorem.
+
+inline procedural "cic:/Coq/Setoids/Setoid/not_ext2.con" as theorem.
+
+inline procedural "cic:/Coq/Setoids/Setoid/fleche.con" as definition.
+
+inline procedural "cic:/Coq/Setoids/Setoid/fleche_ext1.con" as theorem.
+
+inline procedural "cic:/Coq/Setoids/Setoid/fleche_ext2.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Classical_sets.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Classical_sets.mma
new file mode 100644 (file)
index 0000000..efc438d
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Classical_sets.v,v 1.4 2003/11/29 17:28:41 herbelin Exp $ i*)
+
+include "Sets/Ensembles.ma".
+
+include "Sets/Constructive_sets.ma".
+
+include "Logic/Classical_Type.ma".
+
+(* Hints Unfold  not . *)
+
+(* UNEXPORTED
+Section Ensembles_classical
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Classical_sets/Ensembles_classical/U.var
+*)
+
+inline procedural "cic:/Coq/Sets/Classical_sets/not_included_empty_Inhabited.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve not_included_empty_Inhabited.
+*)
+
+inline procedural "cic:/Coq/Sets/Classical_sets/not_empty_Inhabited.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Classical_sets/Inhabited_Setminus.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Inhabited_Setminus.
+*)
+
+inline procedural "cic:/Coq/Sets/Classical_sets/Strict_super_set_contains_new_element.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Strict_super_set_contains_new_element.
+*)
+
+inline procedural "cic:/Coq/Sets/Classical_sets/Subtract_intro.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Subtract_intro.
+*)
+
+inline procedural "cic:/Coq/Sets/Classical_sets/Subtract_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Classical_sets/Included_Strict_Included.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Classical_sets/Strict_Included_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Classical_sets/not_SIncl_empty.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Classical_sets/Complement_Complement.con" as lemma.
+
+(* UNEXPORTED
+End Ensembles_classical
+*)
+
+(* UNEXPORTED
+Hint Resolve Strict_super_set_contains_new_element Subtract_intro
+  not_SIncl_empty: sets v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Constructive_sets.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Constructive_sets.mma
new file mode 100644 (file)
index 0000000..0f42089
--- /dev/null
@@ -0,0 +1,187 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Constructive_sets.v,v 1.5 2003/11/29 17:28:41 herbelin Exp $ i*)
+
+include "Sets/Ensembles.ma".
+
+(* UNEXPORTED
+Section Ensembles_facts
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Constructive_sets/Ensembles_facts/U.var
+*)
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Extension.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Noone_in_empty.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Noone_in_empty.
+*)
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Included_Empty.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Included_Empty.
+*)
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Add_intro1.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Add_intro1.
+*)
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Add_intro2.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Add_intro2.
+*)
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Inhabited_add.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Inhabited_add.
+*)
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Inhabited_not_empty.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Inhabited_not_empty.
+*)
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Add_not_Empty.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Add_not_Empty.
+*)
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/not_Empty_Add.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve not_Empty_Add.
+*)
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Singleton_inv.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Singleton_inv.
+*)
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Singleton_intro.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Singleton_intro.
+*)
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Union_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Add_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Intersection_inv.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Intersection_inv.
+*)
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Couple_inv.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Couple_inv.
+*)
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Setminus_intro.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Setminus_intro.
+*)
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Strict_Included_intro.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Strict_Included_intro.
+*)
+
+inline procedural "cic:/Coq/Sets/Constructive_sets/Strict_Included_strict.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Strict_Included_strict.
+*)
+
+(* UNEXPORTED
+End Ensembles_facts
+*)
+
+(* UNEXPORTED
+Hint Resolve Singleton_inv Singleton_intro Add_intro1 Add_intro2
+  Intersection_inv Couple_inv Setminus_intro Strict_Included_intro
+  Strict_Included_strict Noone_in_empty Inhabited_not_empty Add_not_Empty
+  not_Empty_Add Inhabited_add Included_Empty: sets v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Cpo.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Cpo.mma
new file mode 100644 (file)
index 0000000..29780b2
--- /dev/null
@@ -0,0 +1,139 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Cpo.v,v 1.5 2003/12/15 19:48:22 barras Exp $ i*)
+
+include "Sets/Ensembles.ma".
+
+include "Sets/Relations_1.ma".
+
+include "Sets/Partial_Order.ma".
+
+(* UNEXPORTED
+Section Bounds
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Cpo/Bounds/U.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Cpo/Bounds/D.var
+*)
+
+inline procedural "cic:/Coq/Sets/Cpo/Bounds/C.con" "Bounds__" as definition.
+
+inline procedural "cic:/Coq/Sets/Cpo/Bounds/R.con" "Bounds__" as definition.
+
+inline procedural "cic:/Coq/Sets/Cpo/Upper_Bound.ind".
+
+inline procedural "cic:/Coq/Sets/Cpo/Lower_Bound.ind".
+
+inline procedural "cic:/Coq/Sets/Cpo/Lub.ind".
+
+inline procedural "cic:/Coq/Sets/Cpo/Glb.ind".
+
+inline procedural "cic:/Coq/Sets/Cpo/Bottom.ind".
+
+inline procedural "cic:/Coq/Sets/Cpo/Totally_ordered.ind".
+
+inline procedural "cic:/Coq/Sets/Cpo/Compatible.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Cpo/Directed.ind".
+
+inline procedural "cic:/Coq/Sets/Cpo/Complete.ind".
+
+inline procedural "cic:/Coq/Sets/Cpo/Conditionally_complete.ind".
+
+(* UNEXPORTED
+End Bounds
+*)
+
+(* UNEXPORTED
+Hint Resolve Totally_ordered_definition Upper_Bound_definition
+  Lower_Bound_definition Lub_definition Glb_definition Bottom_definition
+  Definition_of_Complete Definition_of_Complete
+  Definition_of_Conditionally_complete.
+*)
+
+(* UNEXPORTED
+Section Specific_orders
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Cpo/Specific_orders/U.var
+*)
+
+inline procedural "cic:/Coq/Sets/Cpo/Cpo.ind".
+
+inline procedural "cic:/Coq/Sets/Cpo/Chain.ind".
+
+(* UNEXPORTED
+End Specific_orders
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Ensembles.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Ensembles.mma
new file mode 100644 (file)
index 0000000..689d5dc
--- /dev/null
@@ -0,0 +1,144 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Ensembles.v,v 1.7 2003/11/29 17:28:41 herbelin Exp $ i*)
+
+(* UNEXPORTED
+Section Ensembles
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Ensembles/Ensembles/U.var
+*)
+
+inline procedural "cic:/Coq/Sets/Ensembles/Ensemble.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Ensembles/In.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Ensembles/Included.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Ensembles/Empty_set.ind".
+
+inline procedural "cic:/Coq/Sets/Ensembles/Full_set.ind".
+
+(*#* NB: The following definition builds-in equality of elements in [U] as 
+   Leibniz equality. 
+
+   This may have to be changed if we replace [U] by a Setoid on [U] 
+   with its own equality [eqs], with  
+   [In_singleton: (y: U)(eqs x y) -> (In (Singleton x) y)]. *)
+
+inline procedural "cic:/Coq/Sets/Ensembles/Singleton.ind".
+
+inline procedural "cic:/Coq/Sets/Ensembles/Union.ind".
+
+inline procedural "cic:/Coq/Sets/Ensembles/Add.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Ensembles/Intersection.ind".
+
+inline procedural "cic:/Coq/Sets/Ensembles/Couple.ind".
+
+inline procedural "cic:/Coq/Sets/Ensembles/Triple.ind".
+
+inline procedural "cic:/Coq/Sets/Ensembles/Complement.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Ensembles/Setminus.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Ensembles/Subtract.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Ensembles/Disjoint.ind".
+
+inline procedural "cic:/Coq/Sets/Ensembles/Inhabited.ind".
+
+inline procedural "cic:/Coq/Sets/Ensembles/Strict_Included.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Ensembles/Same_set.con" as definition.
+
+(*#* Extensionality Axiom *)
+
+inline procedural "cic:/Coq/Sets/Ensembles/Extensionality_Ensembles.con".
+
+(* UNEXPORTED
+Hint Resolve Extensionality_Ensembles.
+*)
+
+(* UNEXPORTED
+End Ensembles
+*)
+
+(* UNEXPORTED
+Hint Unfold In Included Same_set Strict_Included Add Setminus Subtract: sets
+  v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Union_introl Union_intror Intersection_intro In_singleton
+  Couple_l Couple_r Triple_l Triple_m Triple_r Disjoint_intro
+  Extensionality_Ensembles: sets v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Finite_sets.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Finite_sets.mma
new file mode 100644 (file)
index 0000000..15ed44c
--- /dev/null
@@ -0,0 +1,114 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Finite_sets.v,v 1.6 2003/12/15 19:48:22 barras Exp $ i*)
+
+include "Sets/Ensembles.ma".
+
+(* UNEXPORTED
+Section Ensembles_finis
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Finite_sets/Ensembles_finis/U.var
+*)
+
+inline procedural "cic:/Coq/Sets/Finite_sets/Finite.ind".
+
+inline procedural "cic:/Coq/Sets/Finite_sets/cardinal.ind".
+
+(* UNEXPORTED
+End Ensembles_finis
+*)
+
+(* UNEXPORTED
+Hint Resolve Empty_is_finite Union_is_finite: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve card_empty card_add: sets v62.
+*)
+
+include "Sets/Constructive_sets.ma".
+
+(* UNEXPORTED
+Section Ensembles_finis_facts
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Finite_sets/Ensembles_finis_facts/U.var
+*)
+
+inline procedural "cic:/Coq/Sets/Finite_sets/cardinal_invert.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Finite_sets/cardinal_elim.con" as lemma.
+
+(* UNEXPORTED
+End Ensembles_finis_facts
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Finite_sets_facts.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Finite_sets_facts.mma
new file mode 100644 (file)
index 0000000..f0960f2
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Finite_sets_facts.v,v 1.7 2003/12/15 19:48:22 barras Exp $ i*)
+
+include "Sets/Finite_sets.ma".
+
+include "Sets/Constructive_sets.ma".
+
+include "Logic/Classical_Type.ma".
+
+include "Sets/Classical_sets.ma".
+
+include "Sets/Powerset.ma".
+
+include "Sets/Powerset_facts.ma".
+
+include "Sets/Powerset_Classical_facts.ma".
+
+include "Arith/Gt.ma".
+
+include "Arith/Lt.ma".
+
+(* UNEXPORTED
+Section Finite_sets_facts
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Finite_sets_facts/Finite_sets_facts/U.var
+*)
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/finite_cardinal.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/cardinal_finite.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/Add_preserves_Finite.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Add_preserves_Finite.
+*)
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/Singleton_is_finite.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Singleton_is_finite.
+*)
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/Union_preserves_Finite.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/Finite_downward_closed.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/Intersection_preserves_finite.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/cardinalO_empty.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve cardinalO_empty.
+*)
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/inh_card_gt_O.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/card_soustr_1.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/cardinal_is_functional.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/cardinal_Empty.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/cardinal_unicity.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/card_Add_gen.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/incl_st_card_lt.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/incl_card_le.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/G_aux.con" as lemma.
+
+(* UNEXPORTED
+Hint Unfold not.
+*)
+
+inline procedural "cic:/Coq/Sets/Finite_sets_facts/Generalized_induction_on_finite_sets.con" as lemma.
+
+(* UNEXPORTED
+End Finite_sets_facts
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Image.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Image.mma
new file mode 100644 (file)
index 0000000..1b46795
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Image.v,v 1.6 2003/12/15 19:48:22 barras Exp $ i*)
+
+include "Sets/Finite_sets.ma".
+
+include "Sets/Constructive_sets.ma".
+
+include "Logic/Classical_Type.ma".
+
+include "Sets/Classical_sets.ma".
+
+include "Sets/Powerset.ma".
+
+include "Sets/Powerset_facts.ma".
+
+include "Sets/Powerset_Classical_facts.ma".
+
+include "Arith/Gt.ma".
+
+include "Arith/Lt.ma".
+
+include "Arith/Le.ma".
+
+include "Sets/Finite_sets_facts.ma".
+
+(* UNEXPORTED
+Section Image
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Image/Image/U.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Image/Image/V.var
+*)
+
+inline procedural "cic:/Coq/Sets/Image/Im.ind".
+
+inline procedural "cic:/Coq/Sets/Image/Im_def.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Im_def.
+*)
+
+inline procedural "cic:/Coq/Sets/Image/Im_add.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Image/image_empty.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve image_empty.
+*)
+
+inline procedural "cic:/Coq/Sets/Image/finite_image.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve finite_image.
+*)
+
+inline procedural "cic:/Coq/Sets/Image/Im_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Image/injective.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Image/not_injective_elim.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Image/cardinal_Im_intro.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Image/In_Image_elim.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Image/injective_preserves_cardinal.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Image/cardinal_decreases.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Image/Pigeonhole.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Image/Pigeonhole_principle.con" as lemma.
+
+(* UNEXPORTED
+End Image
+*)
+
+(* UNEXPORTED
+Hint Resolve Im_def image_empty finite_image: sets v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Infinite_sets.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Infinite_sets.mma
new file mode 100644 (file)
index 0000000..8635aff
--- /dev/null
@@ -0,0 +1,144 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Infinite_sets.v,v 1.5 2003/12/15 19:48:22 barras Exp $ i*)
+
+include "Sets/Finite_sets.ma".
+
+include "Sets/Constructive_sets.ma".
+
+include "Logic/Classical_Type.ma".
+
+include "Sets/Classical_sets.ma".
+
+include "Sets/Powerset.ma".
+
+include "Sets/Powerset_facts.ma".
+
+include "Sets/Powerset_Classical_facts.ma".
+
+include "Arith/Gt.ma".
+
+include "Arith/Lt.ma".
+
+include "Arith/Le.ma".
+
+include "Sets/Finite_sets_facts.ma".
+
+include "Sets/Image.ma".
+
+(* UNEXPORTED
+Section Approx
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Infinite_sets/Approx/U.var
+*)
+
+inline procedural "cic:/Coq/Sets/Infinite_sets/Approximant.ind".
+
+(* UNEXPORTED
+End Approx
+*)
+
+(* UNEXPORTED
+Hint Resolve Defn_of_Approximant.
+*)
+
+(* UNEXPORTED
+Section Infinite_sets
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Infinite_sets/Infinite_sets/U.var
+*)
+
+inline procedural "cic:/Coq/Sets/Infinite_sets/make_new_approximant.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Infinite_sets/approximants_grow.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Infinite_sets/approximants_grow'.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Infinite_sets/approximant_can_be_any_size.con" as lemma.
+
+(* UNEXPORTED
+cic:/Coq/Sets/Infinite_sets/Infinite_sets/V.var
+*)
+
+inline procedural "cic:/Coq/Sets/Infinite_sets/Image_set_continuous.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Infinite_sets/Image_set_continuous'.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Infinite_sets/Pigeonhole_bis.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Infinite_sets/Pigeonhole_ter.con" as theorem.
+
+(* UNEXPORTED
+End Infinite_sets
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Integers.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Integers.mma
new file mode 100644 (file)
index 0000000..62f2200
--- /dev/null
@@ -0,0 +1,158 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Integers.v,v 1.6 2003/12/15 19:48:22 barras Exp $ i*)
+
+include "Sets/Finite_sets.ma".
+
+include "Sets/Constructive_sets.ma".
+
+include "Logic/Classical_Type.ma".
+
+include "Sets/Classical_sets.ma".
+
+include "Sets/Powerset.ma".
+
+include "Sets/Powerset_facts.ma".
+
+include "Sets/Powerset_Classical_facts.ma".
+
+include "Arith/Gt.ma".
+
+include "Arith/Lt.ma".
+
+include "Arith/Le.ma".
+
+include "Sets/Finite_sets_facts.ma".
+
+include "Sets/Image.ma".
+
+include "Sets/Infinite_sets.ma".
+
+include "Arith/Compare_dec.ma".
+
+include "Sets/Relations_1.ma".
+
+include "Sets/Partial_Order.ma".
+
+include "Sets/Cpo.ma".
+
+(* UNEXPORTED
+Section Integers_sect
+*)
+
+inline procedural "cic:/Coq/Sets/Integers/Integers.ind".
+
+(* UNEXPORTED
+Hint Resolve Integers_defn.
+*)
+
+inline procedural "cic:/Coq/Sets/Integers/le_reflexive.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Integers/le_antisym.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Integers/le_trans.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve le_reflexive le_antisym le_trans.
+*)
+
+inline procedural "cic:/Coq/Sets/Integers/le_Order.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve le_Order.
+*)
+
+inline procedural "cic:/Coq/Sets/Integers/triv_nat.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve triv_nat.
+*)
+
+inline procedural "cic:/Coq/Sets/Integers/nat_po.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold nat_po.
+*)
+
+inline procedural "cic:/Coq/Sets/Integers/le_total_order.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve le_total_order.
+*)
+
+inline procedural "cic:/Coq/Sets/Integers/Finite_subset_has_lub.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Integers/Integers_has_no_ub.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Integers/Integers_infinite.con" as lemma.
+
+(* UNEXPORTED
+End Integers_sect
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Multiset.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Multiset.mma
new file mode 100644 (file)
index 0000000..2831b09
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Multiset.v,v 1.9 2003/11/29 17:28:42 herbelin Exp $ i*)
+
+(* G. Huet 1-9-95 *)
+
+include "Sets/Permut.ma".
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(* UNEXPORTED
+Section multiset_defs
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Multiset/multiset_defs/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Multiset/multiset_defs/eqA.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Multiset/multiset_defs/Aeq_dec.var
+*)
+
+inline procedural "cic:/Coq/Sets/Multiset/multiset.ind".
+
+inline procedural "cic:/Coq/Sets/Multiset/EmptyBag.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Multiset/SingletonBag.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Multiset/multiplicity.con" as definition.
+
+(*#* multiset equality *)
+
+inline procedural "cic:/Coq/Sets/Multiset/meq.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold meq multiplicity.
+*)
+
+inline procedural "cic:/Coq/Sets/Multiset/meq_refl.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve meq_refl.
+*)
+
+inline procedural "cic:/Coq/Sets/Multiset/meq_trans.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Multiset/meq_sym.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate meq_sym.
+*)
+
+(*#* multiset union *)
+
+inline procedural "cic:/Coq/Sets/Multiset/munion.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Multiset/munion_empty_left.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve munion_empty_left.
+*)
+
+inline procedural "cic:/Coq/Sets/Multiset/munion_empty_right.con" as lemma.
+
+include "Arith/Plus.ma".
+
+(* comm. and ass. of plus *)
+
+inline procedural "cic:/Coq/Sets/Multiset/munion_comm.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve munion_comm.
+*)
+
+inline procedural "cic:/Coq/Sets/Multiset/munion_ass.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve munion_ass.
+*)
+
+inline procedural "cic:/Coq/Sets/Multiset/meq_left.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve meq_left.
+*)
+
+inline procedural "cic:/Coq/Sets/Multiset/meq_right.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve meq_right.
+*)
+
+(*#* Here we should make multiset an abstract datatype, by hiding [Bag],
+    [munion], [multiplicity]; all further properties are proved abstractly *)
+
+inline procedural "cic:/Coq/Sets/Multiset/munion_rotate.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Multiset/meq_congr.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Multiset/munion_perm_left.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Multiset/multiset_twist1.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Multiset/multiset_twist2.con" as lemma.
+
+(*#* specific for treesort *)
+
+inline procedural "cic:/Coq/Sets/Multiset/treesort_twist1.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Multiset/treesort_twist2.con" as lemma.
+
+(*i theory of minter to do similarly 
+Require Min.
+(* multiset intersection *)
+Definition minter := [m1,m2:multiset]
+    (Bag [a:A](min (multiplicity m1 a)(multiplicity m2 a))).
+i*)
+
+(* UNEXPORTED
+End multiset_defs
+*)
+
+(* UNEXPORTED
+Unset Implicit Arguments.
+*)
+
+(* UNEXPORTED
+Hint Unfold meq multiplicity: v62 datatypes.
+*)
+
+(* UNEXPORTED
+Hint Resolve munion_empty_right munion_comm munion_ass meq_left meq_right
+  munion_empty_left: v62 datatypes.
+*)
+
+(* UNEXPORTED
+Hint Immediate meq_sym: v62 datatypes.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Partial_Order.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Partial_Order.mma
new file mode 100644 (file)
index 0000000..51f12ef
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Partial_Order.v,v 1.6 2003/12/15 19:48:22 barras Exp $ i*)
+
+include "Sets/Ensembles.ma".
+
+include "Sets/Relations_1.ma".
+
+(* UNEXPORTED
+Section Partial_orders
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Partial_Order/Partial_orders/U.var
+*)
+
+inline procedural "cic:/Coq/Sets/Partial_Order/Carrier.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Partial_Order/Rel.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Partial_Order/PO.ind".
+
+(* UNEXPORTED
+cic:/Coq/Sets/Partial_Order/Partial_orders/p.var
+*)
+
+inline procedural "cic:/Coq/Sets/Partial_Order/Strict_Rel_of.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Partial_Order/covers.ind".
+
+(* UNEXPORTED
+End Partial_orders
+*)
+
+(* UNEXPORTED
+Hint Unfold Carrier_of Rel_of Strict_Rel_of: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Definition_of_covers: sets v62.
+*)
+
+(* UNEXPORTED
+Section Partial_order_facts
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Partial_Order/Partial_order_facts/U.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Partial_Order/Partial_order_facts/D.var
+*)
+
+inline procedural "cic:/Coq/Sets/Partial_Order/Strict_Rel_Transitive_with_Rel.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Partial_Order/Strict_Rel_Transitive_with_Rel_left.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Partial_Order/Strict_Rel_Transitive.con" as lemma.
+
+(* UNEXPORTED
+End Partial_order_facts
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Permut.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Permut.mma
new file mode 100644 (file)
index 0000000..0321be8
--- /dev/null
@@ -0,0 +1,101 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Permut.v,v 1.6 2003/11/29 17:28:42 herbelin Exp $ i*)
+
+(* G. Huet 1-9-95 *)
+
+(*#* We consider a Set [U], given with a commutative-associative operator [op],
+    and a congruence [cong]; we show permutation lemmas *)
+
+(* UNEXPORTED
+Section Axiomatisation
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Permut/Axiomatisation/U.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Permut/Axiomatisation/op.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Permut/Axiomatisation/cong.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Permut/Axiomatisation/op_comm.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Permut/Axiomatisation/op_ass.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Permut/Axiomatisation/cong_left.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Permut/Axiomatisation/cong_right.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Permut/Axiomatisation/cong_trans.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Permut/Axiomatisation/cong_sym.var
+*)
+
+(*#* Remark. we do not need: [Hypothesis cong_refl : (x:U)(cong x x)]. *)
+
+inline procedural "cic:/Coq/Sets/Permut/cong_congr.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Permut/comm_right.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Permut/comm_left.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Permut/perm_right.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Permut/perm_left.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Permut/op_rotate.con" as lemma.
+
+(* Needed for treesort ... *)
+
+inline procedural "cic:/Coq/Sets/Permut/twist.con" as lemma.
+
+(* UNEXPORTED
+End Axiomatisation
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Powerset.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Powerset.mma
new file mode 100644 (file)
index 0000000..8e158e3
--- /dev/null
@@ -0,0 +1,215 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Powerset.v,v 1.5 2003/11/29 17:28:43 herbelin Exp $ i*)
+
+include "Sets/Ensembles.ma".
+
+include "Sets/Relations_1.ma".
+
+include "Sets/Relations_1_facts.ma".
+
+include "Sets/Partial_Order.ma".
+
+include "Sets/Cpo.ma".
+
+(* UNEXPORTED
+Section The_power_set_partial_order
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Powerset/The_power_set_partial_order/U.var
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset/Power_set.ind".
+
+(* UNEXPORTED
+Hint Resolve Definition_of_Power_set.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset/Empty_set_minimal.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Empty_set_minimal.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset/Power_set_Inhabited.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Power_set_Inhabited.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset/Inclusion_is_an_order.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Inclusion_is_an_order.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset/Inclusion_is_transitive.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Inclusion_is_transitive.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset/Power_set_PO.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold Power_set_PO.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset/Strict_Rel_is_Strict_Included.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Strict_Rel_Transitive Strict_Rel_is_Strict_Included.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset/Strict_inclusion_is_transitive_with_inclusion.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Powerset/Strict_inclusion_is_transitive_with_inclusion_left.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Powerset/Strict_inclusion_is_transitive.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Powerset/Empty_set_is_Bottom.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Empty_set_is_Bottom.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset/Union_minimal.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Union_minimal.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset/Intersection_maximal.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset/Union_increases_l.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset/Union_increases_r.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset/Intersection_decreases_l.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset/Intersection_decreases_r.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Union_increases_l Union_increases_r Intersection_decreases_l
+  Intersection_decreases_r.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset/Union_is_Lub.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset/Intersection_is_Glb.con" as theorem.
+
+(* UNEXPORTED
+End The_power_set_partial_order
+*)
+
+(* UNEXPORTED
+Hint Resolve Empty_set_minimal: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Power_set_Inhabited: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Inclusion_is_an_order: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Inclusion_is_transitive: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Union_minimal: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Union_increases_l: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Union_increases_r: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Intersection_decreases_l: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Intersection_decreases_r: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Empty_set_is_Bottom: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Strict_inclusion_is_transitive: sets v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Powerset_Classical_facts.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Powerset_Classical_facts.mma
new file mode 100644 (file)
index 0000000..5799c2f
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Powerset_Classical_facts.v,v 1.5 2003/12/15 19:48:23 barras Exp $ i*)
+
+include "Sets/Ensembles.ma".
+
+include "Sets/Constructive_sets.ma".
+
+include "Sets/Relations_1.ma".
+
+include "Sets/Relations_1_facts.ma".
+
+include "Sets/Partial_Order.ma".
+
+include "Sets/Cpo.ma".
+
+include "Sets/Powerset.ma".
+
+include "Sets/Powerset_facts.ma".
+
+include "Logic/Classical_Type.ma".
+
+include "Sets/Classical_sets.ma".
+
+(* UNEXPORTED
+Section Sets_as_an_algebra
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Powerset_Classical_facts/Sets_as_an_algebra/U.var
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/sincl_add_x.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/incl_soustr_in.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve incl_soustr_in: sets v62.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/incl_soustr.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve incl_soustr: sets v62.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/incl_soustr_add_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve incl_soustr_add_l: sets v62.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/incl_soustr_add_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve incl_soustr_add_r: sets v62.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/add_soustr_2.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/add_soustr_1.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve add_soustr_1 add_soustr_2: sets v62.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/add_soustr_xy.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve add_soustr_xy: sets v62.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/incl_st_add_soustr.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/Sub_Add_new.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/Simplify_add.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/Included_Add.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/setcover_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/Add_covers.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/covers_Add.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/covers_is_Add.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/Singleton_atomic.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset_Classical_facts/less_than_singleton.con" as lemma.
+
+(* UNEXPORTED
+End Sets_as_an_algebra
+*)
+
+(* UNEXPORTED
+Hint Resolve incl_soustr_in: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve incl_soustr: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve incl_soustr_add_l: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve incl_soustr_add_r: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve add_soustr_1 add_soustr_2: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve add_soustr_xy: sets v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Powerset_facts.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Powerset_facts.mma
new file mode 100644 (file)
index 0000000..74c992b
--- /dev/null
@@ -0,0 +1,185 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Powerset_facts.v,v 1.8 2003/12/15 19:48:23 barras Exp $ i*)
+
+include "Sets/Ensembles.ma".
+
+include "Sets/Constructive_sets.ma".
+
+include "Sets/Relations_1.ma".
+
+include "Sets/Relations_1_facts.ma".
+
+include "Sets/Partial_Order.ma".
+
+include "Sets/Cpo.ma".
+
+include "Sets/Powerset.ma".
+
+(* UNEXPORTED
+Section Sets_as_an_algebra
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Powerset_facts/Sets_as_an_algebra/U.var
+*)
+
+(* UNEXPORTED
+Hint Unfold not.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Empty_set_zero.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Empty_set_zero.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Empty_set_zero'.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Empty_set_zero'.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/less_than_empty.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve less_than_empty.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Union_commutative.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Union_associative.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Union_associative.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Union_idempotent.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Union_absorbs.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Couple_as_union.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Triple_as_union.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Triple_as_Couple.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Triple_as_Couple_Singleton.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Intersection_commutative.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Distributivity.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Distributivity'.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Union_add.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Union_add.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Non_disjoint_union.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Non_disjoint_union'.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/singlx.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve singlx.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/incl_add.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve incl_add.
+*)
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/incl_add_x.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Add_commutative.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Add_commutative'.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/Add_distributes.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Powerset_facts/setcover_intro.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve setcover_intro.
+*)
+
+(* UNEXPORTED
+End Sets_as_an_algebra
+*)
+
+(* UNEXPORTED
+Hint Resolve Empty_set_zero Empty_set_zero' Union_associative Union_add
+  singlx incl_add: sets v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Relations_1.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Relations_1.mma
new file mode 100644 (file)
index 0000000..c88787e
--- /dev/null
@@ -0,0 +1,118 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Relations_1.v,v 1.4 2003/11/29 17:28:43 herbelin Exp $ i*)
+
+(* UNEXPORTED
+Section Relations_1
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Relations_1/Relations_1/U.var
+*)
+
+inline procedural "cic:/Coq/Sets/Relations_1/Relation.con" as definition.
+
+(* UNEXPORTED
+cic:/Coq/Sets/Relations_1/Relations_1/R.var
+*)
+
+inline procedural "cic:/Coq/Sets/Relations_1/Reflexive.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Relations_1/Transitive.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Relations_1/Symmetric.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Relations_1/Antisymmetric.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Relations_1/contains.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Relations_1/same_relation.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Relations_1/Preorder.ind".
+
+inline procedural "cic:/Coq/Sets/Relations_1/Order.ind".
+
+inline procedural "cic:/Coq/Sets/Relations_1/Equivalence.ind".
+
+inline procedural "cic:/Coq/Sets/Relations_1/PER.ind".
+
+(* UNEXPORTED
+End Relations_1
+*)
+
+(* UNEXPORTED
+Hint Unfold Reflexive Transitive Antisymmetric Symmetric contains
+  same_relation: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Definition_of_preorder Definition_of_order
+  Definition_of_equivalence Definition_of_PER: sets v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Relations_1_facts.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Relations_1_facts.mma
new file mode 100644 (file)
index 0000000..852f2bc
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Relations_1_facts.v,v 1.7 2003/11/29 17:28:43 herbelin Exp $ i*)
+
+include "Sets/Relations_1.ma".
+
+inline procedural "cic:/Coq/Sets/Relations_1_facts/Complement.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Relations_1_facts/Rsym_imp_notRsym.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_1_facts/Equiv_from_preorder.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Equiv_from_preorder.
+*)
+
+inline procedural "cic:/Coq/Sets/Relations_1_facts/Equiv_from_order.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Equiv_from_order.
+*)
+
+inline procedural "cic:/Coq/Sets/Relations_1_facts/contains_is_preorder.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve contains_is_preorder.
+*)
+
+inline procedural "cic:/Coq/Sets/Relations_1_facts/same_relation_is_equivalence.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve same_relation_is_equivalence.
+*)
+
+inline procedural "cic:/Coq/Sets/Relations_1_facts/cong_reflexive_same_relation.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_1_facts/cong_symmetric_same_relation.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_1_facts/cong_antisymmetric_same_relation.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_1_facts/cong_transitive_same_relation.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Relations_2.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Relations_2.mma
new file mode 100644 (file)
index 0000000..8b4cef8
--- /dev/null
@@ -0,0 +1,112 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Relations_2.v,v 1.4 2003/11/29 17:28:43 herbelin Exp $ i*)
+
+include "Sets/Relations_1.ma".
+
+(* UNEXPORTED
+Section Relations_2
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Relations_2/Relations_2/U.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Relations_2/Relations_2/R.var
+*)
+
+inline procedural "cic:/Coq/Sets/Relations_2/Rstar.ind".
+
+inline procedural "cic:/Coq/Sets/Relations_2/Rstar1.ind".
+
+inline procedural "cic:/Coq/Sets/Relations_2/Rplus.ind".
+
+inline procedural "cic:/Coq/Sets/Relations_2/Strongly_confluent.con" as definition.
+
+(* UNEXPORTED
+End Relations_2
+*)
+
+(* UNEXPORTED
+Hint Resolve Rstar_0: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Rstar1_0: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Rstar1_1: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve Rplus_0: sets v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Relations_2_facts.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Relations_2_facts.mma
new file mode 100644 (file)
index 0000000..385d6bc
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Relations_2_facts.v,v 1.6 2003/12/15 19:48:23 barras Exp $ i*)
+
+include "Sets/Relations_1.ma".
+
+include "Sets/Relations_1_facts.ma".
+
+include "Sets/Relations_2.ma".
+
+inline procedural "cic:/Coq/Sets/Relations_2_facts/Rstar_reflexive.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_2_facts/Rplus_contains_R.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_2_facts/Rstar_contains_R.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_2_facts/Rstar_contains_Rplus.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_2_facts/Rstar_transitive.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_2_facts/Rstar_cases.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_2_facts/Rstar_equiv_Rstar1.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_2_facts/Rsym_imp_Rstarsym.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_2_facts/Sstar_contains_Rstar.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_2_facts/star_monotone.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_2_facts/RstarRplus_RRstar.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_2_facts/Lemma1.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Relations_3.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Relations_3.mma
new file mode 100644 (file)
index 0000000..6300517
--- /dev/null
@@ -0,0 +1,128 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Relations_3.v,v 1.7 2003/12/15 19:48:23 barras Exp $ i*)
+
+include "Sets/Relations_1.ma".
+
+include "Sets/Relations_2.ma".
+
+(* UNEXPORTED
+Section Relations_3
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Relations_3/Relations_3/U.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Relations_3/Relations_3/R.var
+*)
+
+inline procedural "cic:/Coq/Sets/Relations_3/coherent.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Relations_3/locally_confluent.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Relations_3/Locally_confluent.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Relations_3/confluent.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Relations_3/Confluent.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Relations_3/noetherian.ind".
+
+inline procedural "cic:/Coq/Sets/Relations_3/Noetherian.con" as definition.
+
+(* UNEXPORTED
+End Relations_3
+*)
+
+(* UNEXPORTED
+Hint Unfold coherent: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Unfold locally_confluent: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Unfold confluent: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Unfold Confluent: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Resolve definition_of_noetherian: sets v62.
+*)
+
+(* UNEXPORTED
+Hint Unfold Noetherian: sets v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Relations_3_facts.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Relations_3_facts.mma
new file mode 100644 (file)
index 0000000..501f4c7
--- /dev/null
@@ -0,0 +1,96 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*#***************************************************************************)
+
+(*                                                                          *)
+
+(*                         Naive Set Theory in Coq                          *)
+
+(*                                                                          *)
+
+(*                     INRIA                        INRIA                   *)
+
+(*              Rocquencourt                        Sophia-Antipolis        *)
+
+(*                                                                          *)
+
+(*                                 Coq V6.1                                 *)
+
+(*                                                                         *)
+
+(*                              Gilles Kahn                                *)
+
+(*                              Gerard Huet                                *)
+
+(*                                                                         *)
+
+(*                                                                         *)
+
+(*                                                                          *)
+
+(* Acknowledgments: This work was started in July 1993 by F. Prost. Thanks  *)
+
+(* to the Newton Institute for providing an exceptional work environment    *)
+
+(* in Summer 1995. Several developments by E. Ledinot were an inspiration.  *)
+
+(*#***************************************************************************)
+
+(*i $Id: Relations_3_facts.v,v 1.6 2003/11/29 17:28:43 herbelin Exp $ i*)
+
+include "Sets/Relations_1.ma".
+
+include "Sets/Relations_1_facts.ma".
+
+include "Sets/Relations_2.ma".
+
+include "Sets/Relations_2_facts.ma".
+
+include "Sets/Relations_3.ma".
+
+inline procedural "cic:/Coq/Sets/Relations_3_facts/Rstar_imp_coherent.con" as theorem.
+
+(* UNEXPORTED
+Hint Resolve Rstar_imp_coherent.
+*)
+
+inline procedural "cic:/Coq/Sets/Relations_3_facts/coherent_symmetric.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_3_facts/Strong_confluence.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_3_facts/Strong_confluence_direct.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_3_facts/Noetherian_contains_Noetherian.con" as theorem.
+
+inline procedural "cic:/Coq/Sets/Relations_3_facts/Newman.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sets/Uniset.mma b/helm/software/matita/contribs/procedural/Coq/Sets/Uniset.mma
new file mode 100644 (file)
index 0000000..ad57c8c
--- /dev/null
@@ -0,0 +1,192 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Uniset.v,v 1.9 2003/11/29 17:28:43 herbelin Exp $ i*)
+
+(*#* Sets as characteristic functions *)
+
+(* G. Huet 1-9-95 *)
+
+(* Updated Papageno 12/98 *)
+
+include "Bool/Bool.ma".
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(* UNEXPORTED
+Section defs
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Uniset/defs/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Uniset/defs/eqA.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sets/Uniset/defs/eqA_dec.var
+*)
+
+inline procedural "cic:/Coq/Sets/Uniset/uniset.ind".
+
+inline procedural "cic:/Coq/Sets/Uniset/charac.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Uniset/Emptyset.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Uniset/Fullset.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Uniset/Singleton.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Uniset/In.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold In.
+*)
+
+(*#* uniset inclusion *)
+
+inline procedural "cic:/Coq/Sets/Uniset/incl.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold incl.
+*)
+
+(*#* uniset equality *)
+
+inline procedural "cic:/Coq/Sets/Uniset/seq.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold seq.
+*)
+
+inline procedural "cic:/Coq/Sets/Uniset/leb_refl.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve leb_refl.
+*)
+
+inline procedural "cic:/Coq/Sets/Uniset/incl_left.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Uniset/incl_right.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Uniset/seq_refl.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve seq_refl.
+*)
+
+inline procedural "cic:/Coq/Sets/Uniset/seq_trans.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Uniset/seq_sym.con" as lemma.
+
+(*#* uniset union *)
+
+inline procedural "cic:/Coq/Sets/Uniset/union.con" as definition.
+
+inline procedural "cic:/Coq/Sets/Uniset/union_empty_left.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve union_empty_left.
+*)
+
+inline procedural "cic:/Coq/Sets/Uniset/union_empty_right.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve union_empty_right.
+*)
+
+inline procedural "cic:/Coq/Sets/Uniset/union_comm.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve union_comm.
+*)
+
+inline procedural "cic:/Coq/Sets/Uniset/union_ass.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve union_ass.
+*)
+
+inline procedural "cic:/Coq/Sets/Uniset/seq_left.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve seq_left.
+*)
+
+inline procedural "cic:/Coq/Sets/Uniset/seq_right.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve seq_right.
+*)
+
+(*#* All the proofs that follow duplicate [Multiset_of_A] *)
+
+(*#* Here we should make uniset an abstract datatype, by hiding [Charac],
+    [union], [charac]; all further properties are proved abstractly *)
+
+include "Sets/Permut.ma".
+
+inline procedural "cic:/Coq/Sets/Uniset/union_rotate.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Uniset/seq_congr.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Uniset/union_perm_left.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Uniset/uniset_twist1.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Uniset/uniset_twist2.con" as lemma.
+
+(*#* specific for treesort *)
+
+inline procedural "cic:/Coq/Sets/Uniset/treesort_twist1.con" as lemma.
+
+inline procedural "cic:/Coq/Sets/Uniset/treesort_twist2.con" as lemma.
+
+(*i theory of minter to do similarly 
+Require Min.
+(* uniset intersection *)
+Definition minter := [m1,m2:uniset]
+    (Charac [a:A](andb (charac m1 a)(charac m2 a))).
+i*)
+
+(* UNEXPORTED
+End defs
+*)
+
+(* UNEXPORTED
+Unset Implicit Arguments.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sorting/Heap.mma b/helm/software/matita/contribs/procedural/Coq/Sorting/Heap.mma
new file mode 100644 (file)
index 0000000..6b0e221
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Heap.v,v 1.3 2003/11/29 17:28:44 herbelin Exp $ i*)
+
+(*#* A development of Treesort on Heap trees *)
+
+(* G. Huet 1-9-95 uses Multiset *)
+
+include "Lists/List.ma".
+
+include "Sets/Multiset.ma".
+
+include "Sorting/Permutation.ma".
+
+include "Relations/Relations.ma".
+
+include "Sorting/Sorting.ma".
+
+(* UNEXPORTED
+Section defs
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Heap/defs/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Heap/defs/leA.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Heap/defs/eqA.var
+*)
+
+inline procedural "cic:/Coq/Sorting/Heap/defs/gtA.con" "defs__" as definition.
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Heap/defs/leA_dec.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Heap/defs/eqA_dec.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Heap/defs/leA_refl.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Heap/defs/leA_trans.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Heap/defs/leA_antisym.var
+*)
+
+(* UNEXPORTED
+Hint Resolve leA_refl.
+*)
+
+(* UNEXPORTED
+Hint Immediate eqA_dec leA_dec leA_antisym.
+*)
+
+inline procedural "cic:/Coq/Sorting/Heap/defs/emptyBag.con" "defs__" as definition.
+
+inline procedural "cic:/Coq/Sorting/Heap/defs/singletonBag.con" "defs__" as definition.
+
+inline procedural "cic:/Coq/Sorting/Heap/Tree.ind".
+
+(*#* [a] is lower than a Tree [T] if [T] is a Leaf
+    or [T] is a Node holding [b>a] *)
+
+inline procedural "cic:/Coq/Sorting/Heap/leA_Tree.con" as definition.
+
+inline procedural "cic:/Coq/Sorting/Heap/leA_Tree_Leaf.con" as lemma.
+
+inline procedural "cic:/Coq/Sorting/Heap/leA_Tree_Node.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve leA_Tree_Leaf leA_Tree_Node.
+*)
+
+(*#* The heap property *)
+
+inline procedural "cic:/Coq/Sorting/Heap/is_heap.ind".
+
+(* UNEXPORTED
+Hint Constructors is_heap.
+*)
+
+inline procedural "cic:/Coq/Sorting/Heap/invert_heap.con" as lemma.
+
+(* This lemma ought to be generated automatically by the Inversion tools *)
+
+inline procedural "cic:/Coq/Sorting/Heap/is_heap_rec.con" as lemma.
+
+inline procedural "cic:/Coq/Sorting/Heap/low_trans.con" as lemma.
+
+(*#* contents of a tree as a multiset *)
+
+(*#* Nota Bene : In what follows the definition of SingletonBag
+    in not used. Actually, we could just take as postulate:
+    [Parameter SingletonBag : A->multiset].  *)
+
+inline procedural "cic:/Coq/Sorting/Heap/contents.con" as definition.
+
+(*#* equivalence of two trees is equality of corresponding multisets *)
+
+inline procedural "cic:/Coq/Sorting/Heap/equiv_Tree.con" as definition.
+
+(*#* specification of heap insertion *)
+
+inline procedural "cic:/Coq/Sorting/Heap/insert_spec.ind".
+
+inline procedural "cic:/Coq/Sorting/Heap/insert.con" as lemma.
+
+(*#* building a heap from a list *)
+
+inline procedural "cic:/Coq/Sorting/Heap/build_heap.ind".
+
+inline procedural "cic:/Coq/Sorting/Heap/list_to_heap.con" as lemma.
+
+(*#* building the sorted list *)
+
+inline procedural "cic:/Coq/Sorting/Heap/flat_spec.ind".
+
+inline procedural "cic:/Coq/Sorting/Heap/heap_to_list.con" as lemma.
+
+(*#* specification of treesort *)
+
+inline procedural "cic:/Coq/Sorting/Heap/treesort.con" as theorem.
+
+(* UNEXPORTED
+End defs
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sorting/Permutation.mma b/helm/software/matita/contribs/procedural/Coq/Sorting/Permutation.mma
new file mode 100644 (file)
index 0000000..2104d1c
--- /dev/null
@@ -0,0 +1,146 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Permutation.v,v 1.4 2003/11/29 17:28:44 herbelin Exp $ i*)
+
+include "Relations/Relations.ma".
+
+include "Lists/List.ma".
+
+include "Sets/Multiset.ma".
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(* UNEXPORTED
+Section defs
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Permutation/defs/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Permutation/defs/leA.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Permutation/defs/eqA.var
+*)
+
+inline procedural "cic:/Coq/Sorting/Permutation/defs/gtA.con" "defs__" as definition.
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Permutation/defs/leA_dec.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Permutation/defs/eqA_dec.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Permutation/defs/leA_refl.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Permutation/defs/leA_trans.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Permutation/defs/leA_antisym.var
+*)
+
+(* UNEXPORTED
+Hint Resolve leA_refl: default.
+*)
+
+(* UNEXPORTED
+Hint Immediate eqA_dec leA_dec leA_antisym: default.
+*)
+
+inline procedural "cic:/Coq/Sorting/Permutation/defs/emptyBag.con" "defs__" as definition.
+
+inline procedural "cic:/Coq/Sorting/Permutation/defs/singletonBag.con" "defs__" as definition.
+
+(*#* contents of a list *)
+
+inline procedural "cic:/Coq/Sorting/Permutation/list_contents.con" as definition.
+
+inline procedural "cic:/Coq/Sorting/Permutation/list_contents_app.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve list_contents_app.
+*)
+
+inline procedural "cic:/Coq/Sorting/Permutation/permutation.con" as definition.
+
+inline procedural "cic:/Coq/Sorting/Permutation/permut_refl.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve permut_refl.
+*)
+
+inline procedural "cic:/Coq/Sorting/Permutation/permut_tran.con" as lemma.
+
+inline procedural "cic:/Coq/Sorting/Permutation/permut_right.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve permut_right.
+*)
+
+inline procedural "cic:/Coq/Sorting/Permutation/permut_app.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve permut_app.
+*)
+
+inline procedural "cic:/Coq/Sorting/Permutation/permut_cons.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve permut_cons.
+*)
+
+inline procedural "cic:/Coq/Sorting/Permutation/permut_middle.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve permut_middle.
+*)
+
+(* UNEXPORTED
+End defs
+*)
+
+(* UNEXPORTED
+Unset Implicit Arguments.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Sorting/Sorting.mma b/helm/software/matita/contribs/procedural/Coq/Sorting/Sorting.mma
new file mode 100644 (file)
index 0000000..e42ed60
--- /dev/null
@@ -0,0 +1,140 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Sorting.v,v 1.4 2003/11/29 17:28:44 herbelin Exp $ i*)
+
+include "Lists/List.ma".
+
+include "Sets/Multiset.ma".
+
+include "Sorting/Permutation.ma".
+
+include "Relations/Relations.ma".
+
+(* UNEXPORTED
+Set Implicit Arguments.
+*)
+
+(* UNEXPORTED
+Section defs
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Sorting/defs/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Sorting/defs/leA.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Sorting/defs/eqA.var
+*)
+
+inline procedural "cic:/Coq/Sorting/Sorting/defs/gtA.con" "defs__" as definition.
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Sorting/defs/leA_dec.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Sorting/defs/eqA_dec.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Sorting/defs/leA_refl.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Sorting/defs/leA_trans.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Sorting/Sorting/defs/leA_antisym.var
+*)
+
+(* UNEXPORTED
+Hint Resolve leA_refl.
+*)
+
+(* UNEXPORTED
+Hint Immediate eqA_dec leA_dec leA_antisym.
+*)
+
+inline procedural "cic:/Coq/Sorting/Sorting/defs/emptyBag.con" "defs__" as definition.
+
+inline procedural "cic:/Coq/Sorting/Sorting/defs/singletonBag.con" "defs__" as definition.
+
+(*#* [lelistA] *)
+
+inline procedural "cic:/Coq/Sorting/Sorting/lelistA.ind".
+
+(* UNEXPORTED
+Hint Constructors lelistA.
+*)
+
+inline procedural "cic:/Coq/Sorting/Sorting/lelistA_inv.con" as lemma.
+
+(*#* definition for a list to be sorted *)
+
+inline procedural "cic:/Coq/Sorting/Sorting/sort.ind".
+
+(* UNEXPORTED
+Hint Constructors sort.
+*)
+
+inline procedural "cic:/Coq/Sorting/Sorting/sort_inv.con" as lemma.
+
+inline procedural "cic:/Coq/Sorting/Sorting/sort_rec.con" as lemma.
+
+(*#* merging two sorted lists *)
+
+inline procedural "cic:/Coq/Sorting/Sorting/merge_lem.ind".
+
+inline procedural "cic:/Coq/Sorting/Sorting/merge.con" as lemma.
+
+(* UNEXPORTED
+End defs
+*)
+
+(* UNEXPORTED
+Unset Implicit Arguments.
+*)
+
+(* UNEXPORTED
+Hint Constructors sort: datatypes v62.
+*)
+
+(* UNEXPORTED
+Hint Constructors lelistA: datatypes v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Wellfounded/Disjoint_Union.mma b/helm/software/matita/contribs/procedural/Coq/Wellfounded/Disjoint_Union.mma
new file mode 100644 (file)
index 0000000..dc6e8db
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Disjoint_Union.v,v 1.9 2003/11/29 17:28:44 herbelin Exp $ i*)
+
+(*#* Author: Cristina Cornes
+    From : Constructing Recursion Operators in Type Theory                 
+           L. Paulson  JSC (1986) 2, 325-355 *)
+
+include "Relations/Relation_Operators.ma".
+
+(* UNEXPORTED
+Section Wf_Disjoint_Union
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Disjoint_Union/Wf_Disjoint_Union/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Disjoint_Union/Wf_Disjoint_Union/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Disjoint_Union/Wf_Disjoint_Union/leA.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Disjoint_Union/Wf_Disjoint_Union/leB.var
+*)
+
+(* NOTATION
+Notation Le_AsB := (le_AsB A B leA leB).
+*)
+
+inline procedural "cic:/Coq/Wellfounded/Disjoint_Union/acc_A_sum.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Disjoint_Union/acc_B_sum.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Disjoint_Union/wf_disjoint_sum.con" as lemma.
+
+(* UNEXPORTED
+End Wf_Disjoint_Union
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Wellfounded/Inclusion.mma b/helm/software/matita/contribs/procedural/Coq/Wellfounded/Inclusion.mma
new file mode 100644 (file)
index 0000000..4e6b54a
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Inclusion.v,v 1.7 2003/11/29 17:28:44 herbelin Exp $ i*)
+
+(*#* Author: Bruno Barras *)
+
+include "Relations/Relation_Definitions.ma".
+
+(* UNEXPORTED
+Section WfInclusion
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Inclusion/WfInclusion/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Inclusion/WfInclusion/R1.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Inclusion/WfInclusion/R2.var
+*)
+
+inline procedural "cic:/Coq/Wellfounded/Inclusion/Acc_incl.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Acc_incl.
+*)
+
+inline procedural "cic:/Coq/Wellfounded/Inclusion/wf_incl.con" as theorem.
+
+(* UNEXPORTED
+End WfInclusion
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Wellfounded/Inverse_Image.mma b/helm/software/matita/contribs/procedural/Coq/Wellfounded/Inverse_Image.mma
new file mode 100644 (file)
index 0000000..465bdd4
--- /dev/null
@@ -0,0 +1,78 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Inverse_Image.v,v 1.10 2003/12/15 19:48:23 barras Exp $ i*)
+
+(*#* Author: Bruno Barras *)
+
+(* UNEXPORTED
+Section Inverse_Image
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Inverse_Image/Inverse_Image/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Inverse_Image/Inverse_Image/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Inverse_Image/Inverse_Image/R.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Inverse_Image/Inverse_Image/f.var
+*)
+
+inline procedural "cic:/Coq/Wellfounded/Inverse_Image/Inverse_Image/Rof.con" "Inverse_Image__" as definition.
+
+inline procedural "cic:/Coq/Wellfounded/Inverse_Image/Acc_lemma.con" as remark.
+
+inline procedural "cic:/Coq/Wellfounded/Inverse_Image/Acc_inverse_image.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Inverse_Image/wf_inverse_image.con" as theorem.
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Inverse_Image/Inverse_Image/F.var
+*)
+
+inline procedural "cic:/Coq/Wellfounded/Inverse_Image/Inverse_Image/RoF.con" "Inverse_Image__" as definition.
+
+inline procedural "cic:/Coq/Wellfounded/Inverse_Image/Acc_inverse_rel.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Inverse_Image/wf_inverse_rel.con" as theorem.
+
+(* UNEXPORTED
+End Inverse_Image
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Wellfounded/Lexicographic_Exponentiation.mma b/helm/software/matita/contribs/procedural/Coq/Wellfounded/Lexicographic_Exponentiation.mma
new file mode 100644 (file)
index 0000000..55249dd
--- /dev/null
@@ -0,0 +1,121 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Lexicographic_Exponentiation.v,v 1.10 2003/12/15 19:48:23 barras Exp $ i*)
+
+(*#* Author: Cristina Cornes
+
+    From : Constructing Recursion Operators in Type Theory                
+           L. Paulson  JSC (1986) 2, 325-355  *)
+
+include "Logic/Eqdep.ma".
+
+include "Lists/List.ma".
+
+include "Relations/Relation_Operators.ma".
+
+include "Wellfounded/Transitive_Closure.ma".
+
+(* UNEXPORTED
+Section Wf_Lexicographic_Exponentiation
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Lexicographic_Exponentiation/Wf_Lexicographic_Exponentiation/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Lexicographic_Exponentiation/Wf_Lexicographic_Exponentiation/leA.var
+*)
+
+(* NOTATION
+Notation Power := (Pow A leA).
+*)
+
+(* NOTATION
+Notation Lex_Exp := (lex_exp A leA).
+*)
+
+(* NOTATION
+Notation ltl := (Ltl A leA).
+*)
+
+(* NOTATION
+Notation Descl := (Desc A leA).
+*)
+
+(* NOTATION
+Notation List := (list A).
+*)
+
+(* NOTATION
+Notation Nil := (nil (A:=A)).
+*)
+
+(* useless but symmetric *)
+
+(* NOTATION
+Notation Cons := (cons (A:=A)).
+*)
+
+(* NOTATION
+Notation "<< x , y >>" := (exist Descl x y) (at level 0, x, y at level 100).
+*)
+
+(* UNEXPORTED
+Hint Resolve d_one d_nil t_step.
+*)
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Exponentiation/left_prefix.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Exponentiation/right_prefix.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Exponentiation/desc_prefix.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Exponentiation/desc_tail.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Exponentiation/dist_aux.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Exponentiation/dist_Desc_concat.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Exponentiation/desc_end.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Exponentiation/ltl_unit.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Exponentiation/acc_app.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Exponentiation/wf_lex_exp.con" as theorem.
+
+(* UNEXPORTED
+End Wf_Lexicographic_Exponentiation
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Wellfounded/Lexicographic_Product.mma b/helm/software/matita/contribs/procedural/Coq/Wellfounded/Lexicographic_Product.mma
new file mode 100644 (file)
index 0000000..d0627cf
--- /dev/null
@@ -0,0 +1,158 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Lexicographic_Product.v,v 1.12 2003/11/29 17:28:44 herbelin Exp $ i*)
+
+(*#* Authors: Bruno Barras, Cristina Cornes *)
+
+include "Logic/Eqdep.ma".
+
+include "Relations/Relation_Operators.ma".
+
+include "Wellfounded/Transitive_Closure.ma".
+
+(*#*  From : Constructing Recursion Operators in Type Theory            
+     L. Paulson  JSC (1986) 2, 325-355 *)
+
+(* UNEXPORTED
+Section WfLexicographic_Product
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Lexicographic_Product/WfLexicographic_Product/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Lexicographic_Product/WfLexicographic_Product/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Lexicographic_Product/WfLexicographic_Product/leA.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Lexicographic_Product/WfLexicographic_Product/leB.var
+*)
+
+(* NOTATION
+Notation LexProd := (lexprod A B leA leB).
+*)
+
+(* UNEXPORTED
+Hint Resolve t_step Acc_clos_trans wf_clos_trans.
+*)
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Product/acc_A_B_lexprod.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Product/wf_lexprod.con" as theorem.
+
+(* UNEXPORTED
+End WfLexicographic_Product
+*)
+
+(* UNEXPORTED
+Section Wf_Symmetric_Product
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Lexicographic_Product/Wf_Symmetric_Product/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Lexicographic_Product/Wf_Symmetric_Product/B.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Lexicographic_Product/Wf_Symmetric_Product/leA.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Lexicographic_Product/Wf_Symmetric_Product/leB.var
+*)
+
+(* NOTATION
+Notation Symprod := (symprod A B leA leB).
+*)
+
+(*i
+  Local sig_prod:=
+         [x:A*B]<{_:A&B}>Case x of [a:A][b:B](existS A [_:A]B a b) end.
+
+Lemma incl_sym_lexprod: (included (A*B) Symprod  
+            (R_o_f (A*B) {_:A&B} sig_prod (lexprod A [_:A]B leA [_:A]leB))).
+Proof.
+ Red.
+ Induction x.
+ (Induction y1;Intros).
+ Red.
+ Unfold sig_prod .
+ Inversion_clear H.
+ (Apply left_lex;Auto with sets).
+
+ (Apply right_lex;Auto with sets).
+Qed.
+i*)
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Product/Acc_symprod.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Product/wf_symprod.con" as lemma.
+
+(* UNEXPORTED
+End Wf_Symmetric_Product
+*)
+
+(* UNEXPORTED
+Section Swap
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Lexicographic_Product/Swap/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Lexicographic_Product/Swap/R.var
+*)
+
+(* NOTATION
+Notation SwapProd := (swapprod A R).
+*)
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Product/swap_Acc.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Product/Acc_swapprod.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Lexicographic_Product/wf_swapprod.con" as lemma.
+
+(* UNEXPORTED
+End Swap
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Wellfounded/Transitive_Closure.mma b/helm/software/matita/contribs/procedural/Coq/Wellfounded/Transitive_Closure.mma
new file mode 100644 (file)
index 0000000..40ef72c
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Transitive_Closure.v,v 1.7 2003/11/29 17:28:44 herbelin Exp $ i*)
+
+(*#* Author: Bruno Barras *)
+
+include "Relations/Relation_Definitions.ma".
+
+include "Relations/Relation_Operators.ma".
+
+(* UNEXPORTED
+Section Wf_Transitive_Closure
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Transitive_Closure/Wf_Transitive_Closure/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Transitive_Closure/Wf_Transitive_Closure/R.var
+*)
+
+(* NOTATION
+Notation trans_clos := (clos_trans A R).
+*)
+
+inline procedural "cic:/Coq/Wellfounded/Transitive_Closure/incl_clos_trans.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Transitive_Closure/Acc_clos_trans.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Acc_clos_trans.
+*)
+
+inline procedural "cic:/Coq/Wellfounded/Transitive_Closure/Acc_inv_trans.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Transitive_Closure/wf_clos_trans.con" as theorem.
+
+(* UNEXPORTED
+End Wf_Transitive_Closure
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Wellfounded/Union.mma b/helm/software/matita/contribs/procedural/Coq/Wellfounded/Union.mma
new file mode 100644 (file)
index 0000000..aa27b9c
--- /dev/null
@@ -0,0 +1,76 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Union.v,v 1.9 2003/12/15 19:48:23 barras Exp $ i*)
+
+(*#* Author: Bruno Barras *)
+
+include "Relations/Relation_Operators.ma".
+
+include "Relations/Relation_Definitions.ma".
+
+include "Wellfounded/Transitive_Closure.ma".
+
+(* UNEXPORTED
+Section WfUnion
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Union/WfUnion/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Union/WfUnion/R1.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Union/WfUnion/R2.var
+*)
+
+(* NOTATION
+Notation Union := (union A R1 R2).
+*)
+
+(* UNEXPORTED
+Hint Resolve Acc_clos_trans wf_clos_trans.
+*)
+
+inline procedural "cic:/Coq/Wellfounded/Union/strip_commut.con" as remark.
+
+inline procedural "cic:/Coq/Wellfounded/Union/Acc_union.con" as lemma.
+
+inline procedural "cic:/Coq/Wellfounded/Union/wf_union.con" as theorem.
+
+(* UNEXPORTED
+End WfUnion
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Wellfounded/Well_Ordering.mma b/helm/software/matita/contribs/procedural/Coq/Wellfounded/Well_Ordering.mma
new file mode 100644 (file)
index 0000000..5e1b5ef
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Well_Ordering.v,v 1.7 2003/11/29 17:28:44 herbelin Exp $ i*)
+
+(*#* Author: Cristina Cornes.
+    From: Constructing Recursion Operators in Type Theory
+    L. Paulson  JSC (1986) 2, 325-355 *)
+
+include "Logic/Eqdep.ma".
+
+(* UNEXPORTED
+Section WellOrdering
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Well_Ordering/WellOrdering/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Well_Ordering/WellOrdering/B.var
+*)
+
+inline procedural "cic:/Coq/Wellfounded/Well_Ordering/WO.ind".
+
+inline procedural "cic:/Coq/Wellfounded/Well_Ordering/le_WO.ind".
+
+inline procedural "cic:/Coq/Wellfounded/Well_Ordering/wf_WO.con" as theorem.
+
+(* UNEXPORTED
+End WellOrdering
+*)
+
+(* UNEXPORTED
+Section Characterisation_wf_relations
+*)
+
+(*#* Wellfounded relations are the inverse image of wellordering types *)
+
+(*  in course of development                                          *)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Well_Ordering/Characterisation_wf_relations/A.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/Wellfounded/Well_Ordering/Characterisation_wf_relations/leA.var
+*)
+
+inline procedural "cic:/Coq/Wellfounded/Well_Ordering/B.con" as definition.
+
+inline procedural "cic:/Coq/Wellfounded/Well_Ordering/wof.con" as definition.
+
+(* UNEXPORTED
+End Characterisation_wf_relations
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/Wellfounded/Wellfounded.mma b/helm/software/matita/contribs/procedural/Coq/Wellfounded/Wellfounded.mma
new file mode 100644 (file)
index 0000000..0c6df74
--- /dev/null
@@ -0,0 +1,50 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Wellfounded.v,v 1.4 2003/11/29 17:28:44 herbelin Exp $ i*)
+
+include "Wellfounded/Disjoint_Union.ma".
+
+include "Wellfounded/Inclusion.ma".
+
+include "Wellfounded/Inverse_Image.ma".
+
+include "Wellfounded/Lexicographic_Exponentiation.ma".
+
+include "Wellfounded/Lexicographic_Product.ma".
+
+include "Wellfounded/Transitive_Closure.ma".
+
+include "Wellfounded/Union.ma".
+
+include "Wellfounded/Well_Ordering.ma".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/BinInt.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/BinInt.mma
new file mode 100644 (file)
index 0000000..34bd260
--- /dev/null
@@ -0,0 +1,497 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: BinInt.v,v 1.5 2003/11/29 17:28:45 herbelin Exp $ i*)
+
+(*#**********************************************************)
+
+(*#* Binary Integers (Pierre Crégut, CNET, Lannion, France) *)
+
+(*#**********************************************************)
+
+include "NArith/BinPos.ma".
+
+include "NArith/Pnat.ma".
+
+include "NArith/BinNat.ma".
+
+include "Arith/Plus.ma".
+
+include "Arith/Mult.ma".
+
+(*#*********************************************************************)
+
+(*#* Binary integer numbers *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Z.ind".
+
+(*#* Declare Scope Z_scope with Key Z *)
+
+(* UNEXPORTED
+Delimit Scope Z_scope with Z.
+*)
+
+(*#* Automatically open scope positive_scope for the constructors of Z *)
+
+(* UNEXPORTED
+Bind Scope Z_scope with Z.
+*)
+
+(* UNEXPORTED
+Arguments Scope Zpos [positive_scope].
+*)
+
+(* UNEXPORTED
+Arguments Scope Zneg [positive_scope].
+*)
+
+(*#* Subtraction of positive into Z *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zdouble_plus_one.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zdouble_minus_one.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zdouble.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/BinInt/ZPminus.con" as definition.
+
+(*#* Addition on integers *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus.con" as definition.
+
+(* NOTATION
+Infix "+" := Zplus : Z_scope.
+*)
+
+(*#* Opposite *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zopp.con" as definition.
+
+(* NOTATION
+Notation "- x" := (Zopp x) : Z_scope.
+*)
+
+(*#* Successor on integers *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zsucc.con" as definition.
+
+(*#* Predecessor on integers *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zpred.con" as definition.
+
+(*#* Subtraction on integers *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zminus.con" as definition.
+
+(* NOTATION
+Infix "-" := Zminus : Z_scope.
+*)
+
+(*#* Multiplication on integers *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult.con" as definition.
+
+(* NOTATION
+Infix "*" := Zmult : Z_scope.
+*)
+
+(*#* Comparison of integers *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zcompare.con" as definition.
+
+(* NOTATION
+Infix "?=" := Zcompare (at level 70, no associativity) : Z_scope.
+*)
+
+(* UNEXPORTED
+Ltac elim_compare com1 com2 :=
+  case (Dcompare (com1 ?= com2)%Z);
+   [ idtac | let x := fresh "H" in
+             (intro x; case x; clear x) ].
+*)
+
+(*#* Sign function *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zsgn.con" as definition.
+
+(*#* Direct, easier to handle variants of successor and addition *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zsucc'.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zpred'.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus'.con" as definition.
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(*#*********************************************************************)
+
+(*#* Inductive specification of Z *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zind.con" as theorem.
+
+(*#*********************************************************************)
+
+(*#* Properties of opposite on binary integer numbers *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zopp_neg.con" as theorem.
+
+(*#* [opp] is involutive *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zopp_involutive.con" as theorem.
+
+(*#* Injectivity of the opposite *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zopp_inj.con" as theorem.
+
+(*#*********************************************************************)
+
+(* Properties of the direct definition of successor and predecessor *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zpred'_succ'.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zsucc'_discr.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* Other properties of binary integer numbers *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/ZL0.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* Properties of the addition on integers *)
+
+(*#* zero is left neutral for addition *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_0_l.con" as theorem.
+
+(*#* zero is right neutral for addition *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_0_r.con" as theorem.
+
+(*#* addition is commutative *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_comm.con" as theorem.
+
+(*#* opposite distributes over addition *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zopp_plus_distr.con" as theorem.
+
+(*#* opposite is inverse for addition *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_opp_r.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_opp_l.con" as theorem.
+
+(* UNEXPORTED
+Hint Local Resolve Zplus_0_l Zplus_0_r.
+*)
+
+(*#* addition is associative *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/weak_assoc.con" as lemma.
+
+(* UNEXPORTED
+Hint Local Resolve weak_assoc.
+*)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_assoc.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_assoc_reverse.con" as lemma.
+
+(*#* Associativity mixed with commutativity *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_permute.con" as theorem.
+
+(*#* addition simplifies *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_reg_l.con" as theorem.
+
+(*#* addition and successor permutes *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_succ_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_succ_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_succ_comm.con" as lemma.
+
+(*#* Misc properties, usually redundant or non natural *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_0_r_reverse.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_0_simpl_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_0_simpl_l_reverse.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_eq_compat.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_opp_expand.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* Properties of successor and predecessor on binary integer numbers *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zsucc_discr.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zpos_succ_morphism.con" as theorem.
+
+(*#* successor and predecessor are inverse functions *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zsucc_pred.con" as theorem.
+
+(* UNEXPORTED
+Hint Immediate Zsucc_pred: zarith.
+*)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zpred_succ.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zsucc_inj.con" as theorem.
+
+(*#* Misc properties, usually redundant or non natural *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zsucc_eq_compat.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zsucc_inj_contrapositive.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* Properties of subtraction on binary integer numbers *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zminus_0_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zminus_0_l_reverse.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zminus_diag.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zminus_diag_reverse.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_minus_eq.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zminus_plus.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_minus.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zminus_succ_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zminus_plus_simpl_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zminus_plus_simpl_l_reverse.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zminus_plus_simpl_r.con" as lemma.
+
+(*#* Misc redundant properties *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zeq_minus.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zminus_eq.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* Properties of multiplication on binary integer numbers *)
+
+(*#* One is neutral for multiplication *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_1_l.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_1_r.con" as theorem.
+
+(*#* Zero property of multiplication *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_0_l.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_0_r.con" as theorem.
+
+(* UNEXPORTED
+Hint Local Resolve Zmult_0_l Zmult_0_r.
+*)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_0_r_reverse.con" as lemma.
+
+(*#* Commutativity of multiplication *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_comm.con" as theorem.
+
+(*#* Associativity of multiplication *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_assoc.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_assoc_reverse.con" as lemma.
+
+(*#* Associativity mixed with commutativity *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_permute.con" as theorem.
+
+(*#* Z is integral *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_integral_l.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_integral.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_1_inversion_l.con" as lemma.
+
+(*#* Multiplication and Opposite *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zopp_mult_distr_l.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zopp_mult_distr_r.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zopp_mult_distr_l_reverse.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_opp_comm.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_opp_opp.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zopp_eq_mult_neg_1.con" as theorem.
+
+(*#* Distributivity of multiplication over addition *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/weak_Zmult_plus_distr_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_plus_distr_r.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_plus_distr_l.con" as theorem.
+
+(*#* Distributivity of multiplication over subtraction *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_minus_distr_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_minus_distr_l.con" as lemma.
+
+(*#* Simplification of multiplication for non-zero integers *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_reg_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_reg_r.con" as lemma.
+
+(*#* Addition and multiplication by 2 *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zplus_diag_eq_mult_2.con" as lemma.
+
+(*#* Multiplication and successor *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_succ_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_succ_r_reverse.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_succ_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zmult_succ_l_reverse.con" as lemma.
+
+(*#* Misc redundant properties *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Z_eq_mult.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* Relating binary positive numbers and binary integers *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zpos_xI.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zpos_xO.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zneg_xI.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zneg_xO.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zpos_plus_distr.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zneg_plus_distr.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* Order relations *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zlt.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zgt.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zle.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zge.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zne.con" as definition.
+
+(* NOTATION
+Infix "<=" := Zle : Z_scope.
+*)
+
+(* NOTATION
+Infix "<" := Zlt : Z_scope.
+*)
+
+(* NOTATION
+Infix ">=" := Zge : Z_scope.
+*)
+
+(* NOTATION
+Infix ">" := Zgt : Z_scope.
+*)
+
+(* NOTATION
+Notation "x <= y <= z" := (x <= y /\ y <= z) : Z_scope.
+*)
+
+(* NOTATION
+Notation "x <= y < z" := (x <= y /\ y < z) : Z_scope.
+*)
+
+(* NOTATION
+Notation "x < y < z" := (x < y /\ y < z) : Z_scope.
+*)
+
+(* NOTATION
+Notation "x < y <= z" := (x < y /\ y <= z) : Z_scope.
+*)
+
+(*#*********************************************************************)
+
+(*#* Absolute value on integers *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zabs_nat.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zabs.con" as definition.
+
+(*#*********************************************************************)
+
+(*#* From [nat] to [Z] *)
+
+inline procedural "cic:/Coq/ZArith/BinInt/Z_of_nat.con" as definition.
+
+include "NArith/BinNat.ma".
+
+inline procedural "cic:/Coq/ZArith/BinInt/Zabs_N.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/BinInt/Z_of_N.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Wf_Z.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Wf_Z.mma
new file mode 100644 (file)
index 0000000..7e85e4a
--- /dev/null
@@ -0,0 +1,109 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Wf_Z.v,v 1.20 2003/12/24 10:27:08 barras Exp $ i*)
+
+include "ZArith/BinInt.ma".
+
+include "ZArith/Zcompare.ma".
+
+include "ZArith/Zorder.ma".
+
+include "ZArith/Znat.ma".
+
+include "ZArith/Zmisc.ma".
+
+include "Arith/Wf_nat.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(*#* Our purpose is to write an induction shema for {0,1,2,...}
+  similar to the [nat] schema (Theorem [Natlike_rec]). For that the
+  following implications will be used :
+<<
+ (n:nat)(Q n)==(n:nat)(P (inject_nat n)) ===> (x:Z)`x > 0) -> (P x)
+
+                    /\
+             ||
+             ||
+
+  (Q O) (n:nat)(Q n)->(Q (S n)) <=== (P 0) (x:Z) (P x) -> (P (Zs x))
+
+                               <=== (inject_nat (S n))=(Zs (inject_nat n))
+
+                               <=== inject_nat_complete
+>>
+  Then the  diagram will be closed and the theorem proved. *)
+
+inline procedural "cic:/Coq/ZArith/Wf_Z/Z_of_nat_complete.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Wf_Z/ZL4_inf.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Wf_Z/Z_of_nat_complete_inf.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Wf_Z/Z_of_nat_prop.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Wf_Z/Z_of_nat_set.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Wf_Z/natlike_ind.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Wf_Z/natlike_rec.con" as lemma.
+
+(* UNEXPORTED
+Section Efficient_Rec
+*)
+
+(*#* [natlike_rec2] is the same as [natlike_rec], but with a different proof, designed 
+     to give a better extracted term. *)
+
+inline procedural "cic:/Coq/ZArith/Wf_Z/Efficient_Rec/R.con" "Efficient_Rec__" as definition.
+
+inline procedural "cic:/Coq/ZArith/Wf_Z/Efficient_Rec/R_wf.con" "Efficient_Rec__" as definition.
+
+inline procedural "cic:/Coq/ZArith/Wf_Z/natlike_rec2.con" as lemma.
+
+(*#* A variant of the previous using [Zpred] instead of [Zs]. *)
+
+inline procedural "cic:/Coq/ZArith/Wf_Z/natlike_rec3.con" as lemma.
+
+(*#* A more general induction principal using [Zlt]. *)
+
+inline procedural "cic:/Coq/ZArith/Wf_Z/Z_lt_rec.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Wf_Z/Z_lt_induction.con" as lemma.
+
+(* UNEXPORTED
+End Efficient_Rec
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/ZArith.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/ZArith.mma
new file mode 100644 (file)
index 0000000..4f90aa4
--- /dev/null
@@ -0,0 +1,52 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: ZArith.v,v 1.5 2003/11/29 17:28:45 herbelin Exp $ i*)
+
+(*#* Library for manipulating integers based on binary encoding *)
+
+include "ZArith/ZArith_base.ma".
+
+(*#* Extra modules using [Omega] or [Ring]. *)
+
+include "ZArith/Zcomplements.ma".
+
+include "ZArith/Zsqrt.ma".
+
+include "ZArith/Zpower.ma".
+
+include "ZArith/Zdiv.ma".
+
+include "ZArith/Zlogarithm.ma".
+
+include "ZArith/Zbool.ma".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/ZArith_base.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/ZArith_base.mma
new file mode 100644 (file)
index 0000000..538cf59
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(* $Id: ZArith_base.v,v 1.5 2003/11/29 17:28:45 herbelin Exp $ *)
+
+(*#* Library for manipulating integers based on binary encoding.
+    These are the basic modules, required by [Omega] and [Ring] for instance. 
+    The full library is [ZArith]. *)
+
+include "NArith/BinPos.ma".
+
+include "NArith/BinNat.ma".
+
+include "ZArith/BinInt.ma".
+
+include "ZArith/Zcompare.ma".
+
+include "ZArith/Zorder.ma".
+
+include "ZArith/Zeven.ma".
+
+include "ZArith/Zmin.ma".
+
+include "ZArith/Zabs.ma".
+
+include "ZArith/Znat.ma".
+
+include "ZArith/auxiliary.ma".
+
+include "ZArith/ZArith_dec.ma".
+
+include "ZArith/Zbool.ma".
+
+include "ZArith/Zmisc.ma".
+
+include "ZArith/Wf_Z.ma".
+
+(* UNEXPORTED
+Hint Resolve Zle_refl Zplus_comm Zplus_assoc Zmult_comm Zmult_assoc Zplus_0_l
+  Zplus_0_r Zmult_1_l Zplus_opp_l Zplus_opp_r Zmult_plus_distr_l
+  Zmult_plus_distr_r: zarith.
+*)
+
+include "ZArith/Zhints.ma".
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/ZArith_dec.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/ZArith_dec.mma
new file mode 100644 (file)
index 0000000..adf2a89
--- /dev/null
@@ -0,0 +1,112 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: ZArith_dec.v,v 1.11 2003/11/29 17:28:45 herbelin Exp $ i*)
+
+include "Bool/Sumbool.ma".
+
+include "ZArith/BinInt.ma".
+
+include "ZArith/Zorder.ma".
+
+include "ZArith/Zcompare.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Dcompare_inf.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Zcompare_rec.con" as lemma.
+
+(* UNEXPORTED
+Section decidability
+*)
+
+(* UNEXPORTED
+cic:/Coq/ZArith/ZArith_dec/decidability/x.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/ZArith/ZArith_dec/decidability/y.var
+*)
+
+(*#* Decidability of equality on binary integers *)
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_eq_dec.con" as definition.
+
+(*#* Decidability of order on binary integers *)
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_lt_dec.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_le_dec.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_gt_dec.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_ge_dec.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_lt_ge_dec.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_lt_le_dec.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_le_gt_dec.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_gt_le_dec.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_ge_lt_dec.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_le_lt_eq_dec.con" as definition.
+
+(* UNEXPORTED
+End decidability
+*)
+
+(*#* Cotransitivity of order on binary integers *)
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Zlt_cotrans.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Zlt_cotrans_pos.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Zlt_cotrans_neg.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/not_Zeq_inf.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_dec.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_dec'.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_zerop.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_notzerop.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/ZArith_dec/Z_noteq_dec.con" as definition.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Zabs.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Zabs.mma
new file mode 100644 (file)
index 0000000..32f5220
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Zabs.v,v 1.4 2003/11/29 17:28:45 herbelin Exp $ i*)
+
+(*#* Binary Integers (Pierre Crégut (CNET, Lannion, France) *)
+
+include "Arith/Arith.ma".
+
+include "NArith/BinPos.ma".
+
+include "ZArith/BinInt.ma".
+
+include "ZArith/Zorder.ma".
+
+include "ZArith/ZArith_dec.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(*#*********************************************************************)
+
+(*#* Properties of absolute value *)
+
+inline procedural "cic:/Coq/ZArith/Zabs/Zabs_eq.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zabs/Zabs_non_eq.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zabs/Zabs_Zopp.con" as theorem.
+
+(*#* Proving a property of the absolute value by cases *)
+
+inline procedural "cic:/Coq/ZArith/Zabs/Zabs_ind.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zabs/Zabs_intro.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zabs/Zabs_dec.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zabs/Zabs_pos.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zabs/Zabs_eq_case.con" as theorem.
+
+(*#* Triangular inequality *)
+
+(* UNEXPORTED
+Hint Local Resolve Zle_neg_pos: zarith.
+*)
+
+inline procedural "cic:/Coq/ZArith/Zabs/Zabs_triangle.con" as theorem.
+
+(*#* Absolute value and multiplication *)
+
+inline procedural "cic:/Coq/ZArith/Zabs/Zsgn_Zabs.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zabs/Zabs_Zsgn.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zabs/Zabs_Zmult.con" as theorem.
+
+(*#* absolute value in nat is compatible with order *)
+
+inline procedural "cic:/Coq/ZArith/Zabs/Zabs_nat_lt.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Zbinary.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Zbinary.mma
new file mode 100644 (file)
index 0000000..a1c27a4
--- /dev/null
@@ -0,0 +1,234 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Zbinary.v,v 1.6 2004/02/10 15:38:01 marche Exp $ i*)
+
+(*#* Bit vectors interpreted as integers. 
+    Contribution by Jean Duprat (ENS Lyon). *)
+
+include "Bool/Bvector.ma".
+
+include "ZArith/ZArith.ma".
+
+include "ZArith/Zpower.ma".
+
+(*
+L'évaluation des vecteurs de booléens se font Ã  la fois en binaire et
+en complément Ã  deux. Le nombre appartient Ã  Z. 
+On utilise donc Omega pour faire les calculs dans Z.
+De plus, on utilise les fonctions 2^n où n est un naturel, ici la longueur.
+       two_power_nat = [n:nat](POS (shift_nat n xH))
+               : nat->Z
+       two_power_nat_S
+            : (n:nat)`(two_power_nat (S n)) = 2*(two_power_nat n)`
+       Z_lt_ge_dec
+            : (x,y:Z){`x < y`}+{`x >= y`}
+*)
+
+(* UNEXPORTED
+Section VALUE_OF_BOOLEAN_VECTORS
+*)
+
+(*
+Les calculs sont effectués dans la convention positive usuelle.
+Les valeurs correspondent soit Ã  l'écriture binaire (nat), 
+soit au complément Ã  deux (int).
+On effectue le calcul suivant le schéma de Horner.
+Le complément Ã  deux n'a de sens que sur les vecteurs de taille 
+supérieure ou Ã©gale Ã  un, le bit de signe Ã©tant Ã©valué négativement.
+*)
+
+inline procedural "cic:/Coq/ZArith/Zbinary/bit_value.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/binary_value.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/two_compl_value.con" as lemma.
+
+(*
+Coq < Eval Compute in (binary_value (3) (Bcons true (2) (Bcons false (1) (Bcons true (0) Bnil)))).
+     = `5`
+     : Z
+*)
+
+(*
+Coq < Eval Compute in (two_compl_value (3) (Bcons true (3) (Bcons false (2) (Bcons true (1) (Bcons true (0) Bnil))))).
+     = `-3`
+     : Z
+*)
+
+(* UNEXPORTED
+End VALUE_OF_BOOLEAN_VECTORS
+*)
+
+(* UNEXPORTED
+Section ENCODING_VALUE
+*)
+
+(*
+On calcule la valeur binaire selon un schema de Horner.
+Le calcul s'arrete Ã  la longueur du vecteur sans vérification.
+On definit une fonction Zmod2 calquee sur Zdiv2 mais donnant le quotient
+de la division z=2q+r avec 0<=r<=1.
+La valeur en complément Ã  deux est calculée selon un schema de Horner
+avec Zmod2, le paramètre est la taille moins un.
+*)
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Zmod2.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Zmod2_twice.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Z_to_binary.con" as lemma.
+
+(*
+Eval Compute in (Z_to_binary (5) `5`).
+     = (Vcons bool true (4)
+          (Vcons bool false (3)
+            (Vcons bool true (2)
+              (Vcons bool false (1) (Vcons bool false (0) (Vnil bool))))))
+     :  (Bvector (5))
+*)
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Z_to_two_compl.con" as lemma.
+
+(*
+Eval Compute in (Z_to_two_compl (3) `0`).
+     =  (Vcons bool false (3)
+          (Vcons bool false (2)
+            (Vcons bool false (1) (Vcons bool false (0) (Vnil bool)))))
+     :  (vector bool (4))
+
+Eval Compute in (Z_to_two_compl (3) `5`).
+     = (Vcons bool true (3)
+          (Vcons bool false (2)
+            (Vcons bool true (1) (Vcons bool false (0) (Vnil bool)))))
+     :  (vector bool (4))
+
+Eval Compute in (Z_to_two_compl (3) `-5`).
+     =  (Vcons bool true (3)
+          (Vcons bool true (2)
+            (Vcons bool false (1) (Vcons bool true (0) (Vnil bool)))))
+     :  (vector bool (4))
+*)
+
+(* UNEXPORTED
+End ENCODING_VALUE
+*)
+
+(* UNEXPORTED
+Section Z_BRIC_A_BRAC
+*)
+
+(*
+Bibliotheque de lemmes utiles dans la section suivante.
+Utilise largement ZArith.
+Meriterait d'etre reecrite.
+*)
+
+inline procedural "cic:/Coq/ZArith/Zbinary/binary_value_Sn.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Z_to_binary_Sn.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/binary_value_pos.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/two_compl_value_Sn.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Z_to_two_compl_Sn.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Z_to_binary_Sn_z.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Z_div2_value.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Pdiv2.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Zdiv2_two_power_nat.con" as lemma.
+
+(*
+
+Lemma Z_minus_one_or_zero : (z:Z)
+       `z >= -1` ->
+       `z < 1` ->
+       {`z=-1`} + {`z=0`}.
+Proof.
+       NewDestruct z; Auto.
+       NewDestruct p; Auto.
+       Tauto.
+
+       Tauto.
+
+       Intros.
+       Right; Omega.
+
+       NewDestruct p.
+       Tauto.
+
+       Tauto.
+
+       Intros; Left; Omega.
+Save.
+*)
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Z_to_two_compl_Sn_z.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Zeven_bit_value.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Zodd_bit_value.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Zge_minus_two_power_nat_S.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Zlt_two_power_nat_S.con" as lemma.
+
+(* UNEXPORTED
+End Z_BRIC_A_BRAC
+*)
+
+(* UNEXPORTED
+Section COHERENT_VALUE
+*)
+
+(*
+On vérifie que dans l'intervalle de définition les fonctions sont 
+réciproques l'une de l'autre.
+Elles utilisent les lemmes du bric-a-brac.
+*)
+
+inline procedural "cic:/Coq/ZArith/Zbinary/binary_to_Z_to_binary.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/two_compl_to_Z_to_two_compl.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Z_to_binary_to_Z.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbinary/Z_to_two_compl_to_Z.con" as lemma.
+
+(* UNEXPORTED
+End COHERENT_VALUE
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Zbool.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Zbool.mma
new file mode 100644 (file)
index 0000000..70be57d
--- /dev/null
@@ -0,0 +1,115 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(* $Id: Zbool.v,v 1.4 2003/11/29 17:28:45 herbelin Exp $ *)
+
+include "ZArith/BinInt.ma".
+
+include "ZArith/Zeven.ma".
+
+include "ZArith/Zorder.ma".
+
+include "ZArith/Zcompare.ma".
+
+include "ZArith/ZArith_dec.ma".
+
+include "Bool/Sumbool.ma".
+
+(*#* The decidability of equality and order relations over
+    type [Z] give some boolean functions with the adequate specification. *)
+
+inline procedural "cic:/Coq/ZArith/Zbool/Z_lt_ge_bool.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Z_ge_lt_bool.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Z_le_gt_bool.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Z_gt_le_bool.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Z_eq_bool.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Z_noteq_bool.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zeven_odd_bool.con" as definition.
+
+(*#*********************************************************************)
+
+(*#* Boolean comparisons of binary integers *)
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zle_bool.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zge_bool.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zlt_bool.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zgt_bool.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zeq_bool.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zneq_bool.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zle_cases.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zlt_cases.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zge_cases.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zgt_cases.con" as lemma.
+
+(*#* Lemmas on [Zle_bool] used in contrib/graphs *)
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zle_bool_imp_le.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zle_imp_le_bool.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zle_bool_refl.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zle_bool_antisym.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zle_bool_trans.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zle_bool_total.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zle_bool_plus_mono.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zone_pos.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zone_min_pos.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zle_is_le_bool.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zge_is_le_bool.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zlt_is_le_bool.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zbool/Zgt_is_le_bool.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Zcompare.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Zcompare.mma
new file mode 100644 (file)
index 0000000..539d29a
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $$ i*)
+
+include "NArith/BinPos.ma".
+
+include "ZArith/BinInt.ma".
+
+include "Arith/Lt.ma".
+
+include "Arith/Gt.ma".
+
+include "Arith/Plus.ma".
+
+include "Arith/Mult.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(*#*********************************************************************)
+
+(*#* Binary Integers (Pierre Crégut, CNET, Lannion, France)            *)
+
+(*#*********************************************************************)
+
+(*#*********************************************************************)
+
+(*#* Comparison on integers *)
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_refl.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_Eq_eq.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_Eq_iff_eq.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_antisym.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_Gt_Lt_antisym.con" as lemma.
+
+(*#* Transitivity of comparison *)
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_Gt_trans.con" as lemma.
+
+(*#* Comparison and opposite *)
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_opp.con" as lemma.
+
+(* UNEXPORTED
+Hint Local Resolve Pcompare_refl.
+*)
+
+(*#* Comparison first-order specification *)
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_Gt_spec.con" as lemma.
+
+(*#* Comparison and addition *)
+
+inline procedural "cic:/Coq/ZArith/Zcompare/weaken_Zcompare_Zplus_compatible.con" as lemma.
+
+(* UNEXPORTED
+Hint Local Resolve ZC4.
+*)
+
+inline procedural "cic:/Coq/ZArith/Zcompare/weak_Zcompare_Zplus_compatible.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_plus_compat.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zplus_compare_compat.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_succ_Gt.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_Gt_not_Lt.con" as lemma.
+
+(*#* Successor and comparison *)
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_succ_compat.con" as lemma.
+
+(*#* Multiplication and comparison *)
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_mult_compat.con" as lemma.
+
+(*#* Reverting [x ?= y] to trichotomy *)
+
+inline procedural "cic:/Coq/ZArith/Zcompare/rename.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_elim.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_eq_case.con" as lemma.
+
+(*#* Decompose an egality between two [?=] relations into 3 implications *)
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zcompare_egal_dec.con" as lemma.
+
+(*#* Relating [x ?= y] to [Zle], [Zlt], [Zge] or [Zgt] *)
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zle_compare.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zlt_compare.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zge_compare.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zgt_compare.con" as lemma.
+
+(*#*********************************************************************)
+
+(* Other properties *)
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zmult_compare_compat_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcompare/Zmult_compare_compat_r.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Zcomplements.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Zcomplements.mma
new file mode 100644 (file)
index 0000000..c144bd6
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Zcomplements.v,v 1.26 2003/11/29 17:28:45 herbelin Exp $ i*)
+
+include "ZArith/ZArith_base.ma".
+
+include "Arith/Wf_nat.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(*#*********************************************************************)
+
+(*#* About parity *)
+
+inline procedural "cic:/Coq/ZArith/Zcomplements/two_or_two_plus_one.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* The biggest power of 2 that is stricly less than [a]
+
+    Easy to compute: replace all "1" of the binary representation by
+    "0", except the first "1" (or the first one :-) *)
+
+inline procedural "cic:/Coq/ZArith/Zcomplements/floor_pos.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zcomplements/floor.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zcomplements/floor_gt0.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcomplements/floor_ok.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* Two more induction principles over [Z]. *)
+
+inline procedural "cic:/Coq/ZArith/Zcomplements/Z_lt_abs_rec.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zcomplements/Z_lt_abs_induction.con" as theorem.
+
+(*#* To do case analysis over the sign of [z] *)
+
+inline procedural "cic:/Coq/ZArith/Zcomplements/Zcase_sign.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcomplements/sqr_pos.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* A list length in Z, tail recursive.  *)
+
+include "Lists/List.ma".
+
+inline procedural "cic:/Coq/ZArith/Zcomplements/Zlength_aux.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zcomplements/Zlength.con" as definition.
+
+(* UNEXPORTED
+Implicit Arguments Zlength [A].
+*)
+
+(* UNEXPORTED
+Section Zlength_properties
+*)
+
+(* UNEXPORTED
+cic:/Coq/ZArith/Zcomplements/Zlength_properties/A.var
+*)
+
+(* UNEXPORTED
+Implicit Type l : list A.
+*)
+
+inline procedural "cic:/Coq/ZArith/Zcomplements/Zlength_correct.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcomplements/Zlength_nil.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcomplements/Zlength_cons.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zcomplements/Zlength_nil_inv.con" as lemma.
+
+(* UNEXPORTED
+End Zlength_properties
+*)
+
+(* UNEXPORTED
+Implicit Arguments Zlength_correct [A].
+*)
+
+(* UNEXPORTED
+Implicit Arguments Zlength_cons [A].
+*)
+
+(* UNEXPORTED
+Implicit Arguments Zlength_nil_inv [A].
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Zdiv.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Zdiv.mma
new file mode 100644 (file)
index 0000000..570b035
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Zdiv.v,v 1.21 2003/11/29 17:28:45 herbelin Exp $ i*)
+
+(* Contribution by Claude Marché and Xavier Urbain *)
+
+(*#*
+
+Euclidean Division
+
+Defines first of function that allows Coq to normalize. 
+Then only after proves the main required property.
+
+*)
+
+include "ZArith/ZArith_base.ma".
+
+include "ZArith/Zbool.ma".
+
+include "ZArith/Zcomplements.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(*#*
+
+  Euclidean division of a positive by a integer 
+  (that is supposed to be positive).
+
+  total function than returns an arbitrary value when
+  divisor is not positive
+  
+*)
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Zdiv_eucl_POS.con" as definition.
+
+(*#*
+
+  Euclidean division of integers.
+  Total function than returns (0,0) when dividing by 0. 
+
+*)
+
+(* 
+
+  The pseudo-code is:
+  
+  if b = 0 : (0,0)
+  if b <> 0 and a = 0 : (0,0)
+
+  if b > 0 and a < 0 : let (q,r) = div_eucl_pos (-a) b in 
+                       if r = 0 then (-q,0) else (-(q+1),b-r)
+
+  if b < 0 and a < 0 : let (q,r) = div_eucl (-a) (-b) in (q,-r)
+
+  if b < 0 and a > 0 : let (q,r) = div_eucl a (-b) in 
+                       if r = 0 then (-q,0) else (-(q+1),b+r)
+
+  In other word, when b is non-zero, q is chosen to be the greatest integer 
+  smaller or equal to a/b. And sgn(r)=sgn(b) and |r| < |b|.
+
+*)
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Zdiv_eucl.con" as definition.
+
+(*#* Division and modulo are projections of [Zdiv_eucl] *)
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Zdiv.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Zmod.con" as definition.
+
+(* Tests:
+
+Eval Compute in `(Zdiv_eucl 7 3)`. 
+
+Eval Compute in `(Zdiv_eucl (-7) 3)`.
+
+Eval Compute in `(Zdiv_eucl 7 (-3))`.
+
+Eval Compute in `(Zdiv_eucl (-7) (-3))`.
+
+*)
+
+(*#*
+
+  Main division theorem. 
+
+  First a lemma for positive
+
+*)
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_div_mod_POS.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_div_mod.con" as theorem.
+
+(*#* Existence theorems *)
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Zdiv_eucl_exist.con" as theorem.
+
+(* UNEXPORTED
+Implicit Arguments Zdiv_eucl_exist.
+*)
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Zdiv_eucl_extended.con" as theorem.
+
+(* UNEXPORTED
+Implicit Arguments Zdiv_eucl_extended.
+*)
+
+(*#* Auxiliary lemmas about [Zdiv] and [Zmod] *)
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_div_mod_eq.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_mod_lt.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_div_POS_ge0.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_div_ge0.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_div_lt.con" as lemma.
+
+(*#* Syntax *)
+
+(* NOTATION
+Infix "/" := Zdiv : Z_scope.
+*)
+
+(* NOTATION
+Infix "mod" := Zmod (at level 40, no associativity) : Z_scope.
+*)
+
+(*#* Other lemmas (now using the syntax for [Zdiv] and [Zmod]). *)
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_div_ge.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_mod_plus.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_div_plus.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_div_mult.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_mult_div_ge.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_mod_same.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_div_same.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_div_exact_1.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_div_exact_2.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zdiv/Z_mod_zero_opp.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Zeven.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Zeven.mma
new file mode 100644 (file)
index 0000000..f002937
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Zeven.v,v 1.3 2003/11/29 17:28:45 herbelin Exp $ i*)
+
+include "ZArith/BinInt.ma".
+
+(*#*********************************************************************)
+
+(*#* About parity: even and odd predicates on Z, division by 2 on Z *)
+
+(*#*********************************************************************)
+
+(*#* [Zeven], [Zodd], [Zdiv2] and their related properties *)
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zeven.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zodd.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zeven_bool.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zodd_bool.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zeven_odd_dec.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zeven_dec.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zodd_dec.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zeven_not_Zodd.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zodd_not_Zeven.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zeven_Sn.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zodd_Sn.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zeven_pred.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zodd_pred.con" as lemma.
+
+(* UNEXPORTED
+Hint Unfold Zeven Zodd: zarith.
+*)
+
+(*#*********************************************************************)
+
+(*#* [Zdiv2] is defined on all [Z], but notice that for odd negative
+    integers it is not the euclidean quotient: in that case we have [n =
+    2*(n/2)-1] *)
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zdiv2.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zeven_div2.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zodd_div2.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zodd_div2_neg.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Z_modulo_2.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zeven/Zsplit2.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Zhints.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Zhints.mma
new file mode 100644 (file)
index 0000000..51b038f
--- /dev/null
@@ -0,0 +1,440 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Zhints.v,v 1.8 2003/11/29 17:28:45 herbelin Exp $ i*)
+
+(*#* This file centralizes the lemmas about [Z], classifying them
+    according to the way they can be used in automatic search  *)
+
+(*i*)
+
+(* Lemmas which clearly leads to simplification during proof search are *)
+
+(* declared as Hints. A definite status (Hint or not) for the other lemmas *)
+
+(* remains to be given *)
+
+(* Structure of the file *)
+
+(* - simplification lemmas (only those are declared as Hints) *)
+
+(* - reversible lemmas relating operators *)
+
+(* - useful Bottom-up lemmas              *)
+
+(* - irreversible lemmas with meta-variables *)
+
+(* - unclear or too specific lemmas       *)
+
+(* - lemmas to be used as rewrite rules   *)
+
+(* Lemmas involving positive and compare are not taken into account *)
+
+include "ZArith/BinInt.ma".
+
+include "ZArith/Zorder.ma".
+
+include "ZArith/Zmin.ma".
+
+include "ZArith/Zabs.ma".
+
+include "ZArith/Zcompare.ma".
+
+include "ZArith/Znat.ma".
+
+include "ZArith/auxiliary.ma".
+
+include "ZArith/Zmisc.ma".
+
+include "ZArith/Wf_Z.ma".
+
+(*#*********************************************************************)
+
+(*                  Simplification lemmas                             *)
+
+(* No subgoal or smaller subgoals                                     *)
+
+(* UNEXPORTED
+Hint Resolve 
+  (* A) Reversible simplification lemmas (no loss of information)      *)
+  (* Should clearly declared as hints                                  *)
+  
+  (* Lemmas ending by eq *)
+  Zsucc_eq_compat (* :(n,m:Z)`n = m`->`(Zs n) = (Zs m)` *)
+  
+  (* Lemmas ending by Zgt *)
+  Zsucc_gt_compat (* :(n,m:Z)`m > n`->`(Zs m) > (Zs n)` *)
+  Zgt_succ (* :(n:Z)`(Zs n) > n` *)
+  Zorder.Zgt_pos_0 (* :(p:positive)`(POS p) > 0` *)
+  Zplus_gt_compat_l (* :(n,m,p:Z)`n > m`->`p+n > p+m` *)
+  Zplus_gt_compat_r (* :(n,m,p:Z)`n > m`->`n+p > m+p` *)
+  
+  (* Lemmas ending by Zlt *)
+  Zlt_succ (* :(n:Z)`n < (Zs n)` *)
+  Zsucc_lt_compat (* :(n,m:Z)`n < m`->`(Zs n) < (Zs m)` *)
+  Zlt_pred (* :(n:Z)`(Zpred n) < n` *)
+  Zplus_lt_compat_l (* :(n,m,p:Z)`n < m`->`p+n < p+m` *)
+  Zplus_lt_compat_r (* :(n,m,p:Z)`n < m`->`n+p < m+p` *)
+  
+  (* Lemmas ending by Zle *)
+  Zle_0_nat (* :(n:nat)`0 <= (inject_nat n)` *)
+  Zorder.Zle_0_pos (* :(p:positive)`0 <= (POS p)` *)
+  Zle_refl (* :(n:Z)`n <= n` *)
+  Zle_succ (* :(n:Z)`n <= (Zs n)` *)
+  Zsucc_le_compat (* :(n,m:Z)`m <= n`->`(Zs m) <= (Zs n)` *)
+  Zle_pred (* :(n:Z)`(Zpred n) <= n` *)
+  Zle_min_l (* :(n,m:Z)`(Zmin n m) <= n` *)
+  Zle_min_r (* :(n,m:Z)`(Zmin n m) <= m` *)
+  Zplus_le_compat_l (* :(n,m,p:Z)`n <= m`->`p+n <= p+m` *)
+  Zplus_le_compat_r (* :(a,b,c:Z)`a <= b`->`a+c <= b+c` *)
+  Zabs_pos (* :(x:Z)`0 <= |x|` *)
+  
+  (* B) Irreversible simplification lemmas : Probably to be declared as *)
+  (* hints, when no other simplification is possible *)
+  
+  (* Lemmas ending by eq *)
+  BinInt.Z_eq_mult (* :(x,y:Z)`y = 0`->`y*x = 0` *)
+  Zplus_eq_compat (* :(n,m,p,q:Z)`n = m`->`p = q`->`n+p = m+q` *)
+  
+  (* Lemmas ending by Zge *)
+  Zorder.Zmult_ge_compat_r (* :(a,b,c:Z)`a >= b`->`c >= 0`->`a*c >= b*c` *)
+  Zorder.Zmult_ge_compat_l (* :(a,b,c:Z)`a >= b`->`c >= 0`->`c*a >= c*b` *)
+  Zorder.Zmult_ge_compat (* :
+      (a,b,c,d:Z)`a >= c`->`b >= d`->`c >= 0`->`d >= 0`->`a*b >= c*d` *)
+  
+  (* Lemmas ending by Zlt *)
+  Zorder.Zmult_gt_0_compat (* :(a,b:Z)`a > 0`->`b > 0`->`a*b > 0` *)
+  Zlt_lt_succ (* :(n,m:Z)`n < m`->`n < (Zs m)` *)
+  
+  (* Lemmas ending by Zle *)
+  Zorder.Zmult_le_0_compat (* :(x,y:Z)`0 <= x`->`0 <= y`->`0 <= x*y` *)
+  Zorder.Zmult_le_compat_r (* :(a,b,c:Z)`a <= b`->`0 <= c`->`a*c <= b*c` *)
+  Zorder.Zmult_le_compat_l (* :(a,b,c:Z)`a <= b`->`0 <= c`->`c*a <= c*b` *)
+  Zplus_le_0_compat (* :(x,y:Z)`0 <= x`->`0 <= y`->`0 <= x+y` *)
+  Zle_le_succ (* :(x,y:Z)`x <= y`->`x <= (Zs y)` *)
+  Zplus_le_compat (* :(n,m,p,q:Z)`n <= m`->`p <= q`->`n+p <= m+q` *)
+  
+  : zarith.
+*)
+
+(*#*********************************************************************)
+
+(*         Reversible lemmas relating operators                       *)
+
+(* Probably to be declared as hints but need to define precedences    *)
+
+(* A) Conversion between comparisons/predicates and arithmetic operators
+
+(* Lemmas ending by eq *)
+Zegal_left: (x,y:Z)`x = y`->`x+(-y) = 0`
+Zabs_eq: (x:Z)`0 <= x`->`|x| = x`
+Zeven_div2: (x:Z)(Zeven x)->`x = 2*(Zdiv2 x)`
+Zodd_div2: (x:Z)`x >= 0`->(Zodd x)->`x = 2*(Zdiv2 x)+1`
+
+(* Lemmas ending by Zgt *)
+Zgt_left_rev: (x,y:Z)`x+(-y) > 0`->`x > y`
+Zgt_left_gt: (x,y:Z)`x > y`->`x+(-y) > 0`
+
+(* Lemmas ending by Zlt *)
+Zlt_left_rev: (x,y:Z)`0 < y+(-x)`->`x < y`
+Zlt_left_lt: (x,y:Z)`x < y`->`0 < y+(-x)`
+Zlt_O_minus_lt: (n,m:Z)`0 < n-m`->`m < n`
+
+(* Lemmas ending by Zle *)
+Zle_left: (x,y:Z)`x <= y`->`0 <= y+(-x)`
+Zle_left_rev: (x,y:Z)`0 <= y+(-x)`->`x <= y`
+Zlt_left: (x,y:Z)`x < y`->`0 <= y+(-1)+(-x)`
+Zge_left: (x,y:Z)`x >= y`->`0 <= x+(-y)`
+Zgt_left: (x,y:Z)`x > y`->`0 <= x+(-1)+(-y)`
+
+(* B) Conversion between nat comparisons and Z comparisons *)
+
+(* Lemmas ending by eq *)
+inj_eq: (x,y:nat)x=y->`(inject_nat x) = (inject_nat y)`
+
+(* Lemmas ending by Zge *)
+inj_ge: (x,y:nat)(ge x y)->`(inject_nat x) >= (inject_nat y)`
+
+(* Lemmas ending by Zgt *)
+inj_gt: (x,y:nat)(gt x y)->`(inject_nat x) > (inject_nat y)`
+
+(* Lemmas ending by Zlt *)
+inj_lt: (x,y:nat)(lt x y)->`(inject_nat x) < (inject_nat y)`
+
+(* Lemmas ending by Zle *)
+inj_le: (x,y:nat)(le x y)->`(inject_nat x) <= (inject_nat y)`
+
+(* C) Conversion between comparisons *)
+
+(* Lemmas ending by Zge *)
+not_Zlt: (x,y:Z)~`x < y`->`x >= y`
+Zle_ge: (m,n:Z)`m <= n`->`n >= m`
+
+(* Lemmas ending by Zgt *)
+Zle_gt_S: (n,p:Z)`n <= p`->`(Zs p) > n`
+not_Zle: (x,y:Z)~`x <= y`->`x > y`
+Zlt_gt: (m,n:Z)`m < n`->`n > m`
+Zle_S_gt: (n,m:Z)`(Zs n) <= m`->`m > n`
+
+(* Lemmas ending by Zlt *)
+not_Zge: (x,y:Z)~`x >= y`->`x < y`
+Zgt_lt: (m,n:Z)`m > n`->`n < m`
+Zle_lt_n_Sm: (n,m:Z)`n <= m`->`n < (Zs m)`
+
+(* Lemmas ending by Zle *)
+Zlt_ZERO_pred_le_ZERO: (x:Z)`0 < x`->`0 <= (Zpred x)`
+not_Zgt: (x,y:Z)~`x > y`->`x <= y`
+Zgt_le_S: (n,p:Z)`p > n`->`(Zs n) <= p`
+Zgt_S_le: (n,p:Z)`(Zs p) > n`->`n <= p`
+Zge_le: (m,n:Z)`m >= n`->`n <= m`
+Zlt_le_S: (n,p:Z)`n < p`->`(Zs n) <= p`
+Zlt_n_Sm_le: (n,m:Z)`n < (Zs m)`->`n <= m`
+Zlt_le_weak: (n,m:Z)`n < m`->`n <= m`
+Zle_refl: (n,m:Z)`n = m`->`n <= m`
+
+(* D) Irreversible simplification involving several comparaisons, *)
+(*    useful with clear precedences *)
+
+(* Lemmas ending by Zlt *)
+Zlt_le_reg :(a,b,c,d:Z)`a < b`->`c <= d`->`a+c < b+d`
+Zle_lt_reg : (a,b,c,d:Z)`a <= b`->`c < d`->`a+c < b+d`
+
+(* D) What is decreasing here ? *)
+
+(* Lemmas ending by eq *)
+Zplus_minus: (n,m,p:Z)`n = m+p`->`p = n-m`
+
+(* Lemmas ending by Zgt *)
+Zgt_pred: (n,p:Z)`p > (Zs n)`->`(Zpred p) > n`
+
+(* Lemmas ending by Zlt *)
+Zlt_pred: (n,p:Z)`(Zs n) < p`->`n < (Zpred p)`
+
+*)
+
+(*#*********************************************************************)
+
+(*                 Useful Bottom-up lemmas                            *)
+
+(* A) Bottom-up simplification: should be used 
+
+(* Lemmas ending by eq *)
+Zeq_add_S: (n,m:Z)`(Zs n) = (Zs m)`->`n = m`
+Zsimpl_plus_l: (n,m,p:Z)`n+m = n+p`->`m = p`
+Zplus_unit_left: (n,m:Z)`n+0 = m`->`n = m`
+Zplus_unit_right: (n,m:Z)`n = m+0`->`n = m`
+
+(* Lemmas ending by Zgt *)
+Zsimpl_gt_plus_l: (n,m,p:Z)`p+n > p+m`->`n > m`
+Zsimpl_gt_plus_r: (n,m,p:Z)`n+p > m+p`->`n > m`
+Zgt_S_n: (n,p:Z)`(Zs p) > (Zs n)`->`p > n`
+
+(* Lemmas ending by Zlt *)
+Zsimpl_lt_plus_l: (n,m,p:Z)`p+n < p+m`->`n < m`
+Zsimpl_lt_plus_r: (n,m,p:Z)`n+p < m+p`->`n < m`
+Zlt_S_n: (n,m:Z)`(Zs n) < (Zs m)`->`n < m`
+
+(* Lemmas ending by Zle *)
+Zsimpl_le_plus_l: (p,n,m:Z)`p+n <= p+m`->`n <= m`
+Zsimpl_le_plus_r: (p,n,m:Z)`n+p <= m+p`->`n <= m`
+Zle_S_n: (n,m:Z)`(Zs m) <= (Zs n)`->`m <= n`
+
+(* B) Bottom-up irreversible (syntactic) simplification *)
+
+(* Lemmas ending by Zle *)
+Zle_trans_S: (n,m:Z)`(Zs n) <= m`->`n <= m`
+
+(* C) Other unclearly simplifying lemmas *)
+
+(* Lemmas ending by Zeq *)
+Zmult_eq: (x,y:Z)`x <> 0`->`y*x = 0`->`y = 0`
+
+(* Lemmas ending by Zgt *)
+Zmult_gt: (x,y:Z)`x > 0`->`x*y > 0`->`y > 0`
+
+(* Lemmas ending by Zlt *)
+pZmult_lt: (x,y:Z)`x > 0`->`0 < y*x`->`0 < y`
+
+(* Lemmas ending by Zle *)
+Zmult_le: (x,y:Z)`x > 0`->`0 <= y*x`->`0 <= y`
+OMEGA1: (x,y:Z)`x = y`->`0 <= x`->`0 <= y`
+*)
+
+(*#*********************************************************************)
+
+(*           Irreversible lemmas with meta-variables                  *)
+
+(* To be used by EAuto                                                
+
+Hints Immediate
+(* Lemmas ending by eq *)
+Zle_antisym: (n,m:Z)`n <= m`->`m <= n`->`n = m`
+
+(* Lemmas ending by Zge *)
+Zge_trans: (n,m,p:Z)`n >= m`->`m >= p`->`n >= p`
+
+(* Lemmas ending by Zgt *)
+Zgt_trans: (n,m,p:Z)`n > m`->`m > p`->`n > p`
+Zgt_trans_S: (n,m,p:Z)`(Zs n) > m`->`m > p`->`n > p`
+Zle_gt_trans: (n,m,p:Z)`m <= n`->`m > p`->`n > p`
+Zgt_le_trans: (n,m,p:Z)`n > m`->`p <= m`->`n > p`
+
+(* Lemmas ending by Zlt *)
+Zlt_trans: (n,m,p:Z)`n < m`->`m < p`->`n < p`
+Zlt_le_trans: (n,m,p:Z)`n < m`->`m <= p`->`n < p`
+Zle_lt_trans: (n,m,p:Z)`n <= m`->`m < p`->`n < p`
+
+(* Lemmas ending by Zle *)
+Zle_trans: (n,m,p:Z)`n <= m`->`m <= p`->`n <= p`
+*)
+
+(*#*********************************************************************)
+
+(*               Unclear or too specific lemmas                       *)
+
+(* Not to be used ??                                                  *)
+
+(* A) Irreversible and too specific (not enough regular) 
+
+(* Lemmas ending by Zle *)
+Zle_mult: (x,y:Z)`x > 0`->`0 <= y`->`0 <= y*x`
+Zle_mult_approx: (x,y,z:Z)`x > 0`->`z > 0`->`0 <= y`->`0 <= y*x+z`
+OMEGA6: (x,y,z:Z)`0 <= x`->`y = 0`->`0 <= x+y*z`
+OMEGA7: (x,y,z,t:Z)`z > 0`->`t > 0`->`0 <= x`->`0 <= y`->`0 <= x*z+y*t`
+
+
+(* B) Expansion and too specific ? *)
+
+(* Lemmas ending by Zge *)
+Zge_mult_simpl: (a,b,c:Z)`c > 0`->`a*c >= b*c`->`a >= b`
+
+(* Lemmas ending by Zgt *)
+Zgt_mult_simpl: (a,b,c:Z)`c > 0`->`a*c > b*c`->`a > b`
+Zgt_square_simpl: (x,y:Z)`x >= 0`->`y >= 0`->`x*x > y*y`->`x > y`
+
+(* Lemmas ending by Zle *)
+Zle_mult_simpl: (a,b,c:Z)`c > 0`->`a*c <= b*c`->`a <= b`
+Zmult_le_approx: (x,y,z:Z)`x > 0`->`x > z`->`0 <= y*x+z`->`0 <= y`
+
+(* C) Reversible but too specific ? *)
+
+(* Lemmas ending by Zlt *)
+Zlt_minus: (n,m:Z)`0 < m`->`n-m < n`
+*)
+
+(*#*********************************************************************)
+
+(*               Lemmas to be used as rewrite rules                   *)
+
+(* but can also be used as hints                                      
+
+(* Left-to-right simplification lemmas (a symbol disappears) *)
+
+Zcompare_n_S: (n,m:Z)(Zcompare (Zs n) (Zs m))=(Zcompare n m)
+Zmin_n_n: (n:Z)`(Zmin n n) = n`
+Zmult_1_n: (n:Z)`1*n = n`
+Zmult_n_1: (n:Z)`n*1 = n`
+Zminus_plus: (n,m:Z)`n+m-n = m`
+Zle_plus_minus: (n,m:Z)`n+(m-n) = m`
+Zopp_Zopp: (x:Z)`(-(-x)) = x`
+Zero_left: (x:Z)`0+x = x`
+Zero_right: (x:Z)`x+0 = x`
+Zplus_inverse_r: (x:Z)`x+(-x) = 0`
+Zplus_inverse_l: (x:Z)`(-x)+x = 0`
+Zopp_intro: (x,y:Z)`(-x) = (-y)`->`x = y`
+Zmult_one: (x:Z)`1*x = x`
+Zero_mult_left: (x:Z)`0*x = 0`
+Zero_mult_right: (x:Z)`x*0 = 0`
+Zmult_Zopp_Zopp: (x,y:Z)`(-x)*(-y) = x*y`
+
+(* Right-to-left simplification lemmas (a symbol disappears) *)
+
+Zpred_Sn: (m:Z)`m = (Zpred (Zs m))`
+Zs_pred: (n:Z)`n = (Zs (Zpred n))`
+Zplus_n_O: (n:Z)`n = n+0`
+Zmult_n_O: (n:Z)`0 = n*0`
+Zminus_n_O: (n:Z)`n = n-0`
+Zminus_n_n: (n:Z)`0 = n-n`
+Zred_factor6: (x:Z)`x = x+0`
+Zred_factor0: (x:Z)`x = x*1`
+
+(* Unclear orientation (no symbol disappears) *)
+
+Zplus_n_Sm: (n,m:Z)`(Zs (n+m)) = n+(Zs m)`
+Zmult_n_Sm: (n,m:Z)`n*m+n = n*(Zs m)`
+Zmin_SS: (n,m:Z)`(Zs (Zmin n m)) = (Zmin (Zs n) (Zs m))`
+Zplus_assoc_l: (n,m,p:Z)`n+(m+p) = n+m+p`
+Zplus_assoc_r: (n,m,p:Z)`n+m+p = n+(m+p)`
+Zplus_permute: (n,m,p:Z)`n+(m+p) = m+(n+p)`
+Zplus_Snm_nSm: (n,m:Z)`(Zs n)+m = n+(Zs m)`
+Zminus_plus_simpl: (n,m,p:Z)`n-m = p+n-(p+m)`
+Zminus_Sn_m: (n,m:Z)`(Zs (n-m)) = (Zs n)-m`
+Zmult_plus_distr_l: (n,m,p:Z)`(n+m)*p = n*p+m*p`
+Zmult_minus_distr: (n,m,p:Z)`(n-m)*p = n*p-m*p`
+Zmult_assoc_r: (n,m,p:Z)`n*m*p = n*(m*p)`
+Zmult_assoc_l: (n,m,p:Z)`n*(m*p) = n*m*p`
+Zmult_permute: (n,m,p:Z)`n*(m*p) = m*(n*p)`
+Zmult_Sm_n: (n,m:Z)`n*m+m = (Zs n)*m`
+Zmult_Zplus_distr: (x,y,z:Z)`x*(y+z) = x*y+x*z`
+Zmult_plus_distr: (n,m,p:Z)`(n+m)*p = n*p+m*p`
+Zopp_Zplus: (x,y:Z)`(-(x+y)) = (-x)+(-y)`
+Zplus_sym: (x,y:Z)`x+y = y+x`
+Zplus_assoc: (x,y,z:Z)`x+(y+z) = x+y+z`
+Zmult_sym: (x,y:Z)`x*y = y*x`
+Zmult_assoc: (x,y,z:Z)`x*(y*z) = x*y*z`
+Zopp_Zmult: (x,y:Z)`(-x)*y = (-(x*y))`
+Zplus_S_n: (x,y:Z)`(Zs x)+y = (Zs (x+y))`
+Zopp_one: (x:Z)`(-x) = x*(-1)`
+Zopp_Zmult_r: (x,y:Z)`(-(x*y)) = x*(-y)`
+Zmult_Zopp_left: (x,y:Z)`(-x)*y = x*(-y)`
+Zopp_Zmult_l: (x,y:Z)`(-(x*y)) = (-x)*y`
+Zred_factor1: (x:Z)`x+x = x*2`
+Zred_factor2: (x,y:Z)`x+x*y = x*(1+y)`
+Zred_factor3: (x,y:Z)`x*y+x = x*(1+y)`
+Zred_factor4: (x,y,z:Z)`x*y+x*z = x*(y+z)`
+Zminus_Zplus_compatible: (x,y,n:Z)`x+n-(y+n) = x-y`
+Zmin_plus: (x,y,n:Z)`(Zmin (x+n) (y+n)) = (Zmin x y)+n`
+
+(* nat <-> Z *)
+inj_S: (y:nat)`(inject_nat (S y)) = (Zs (inject_nat y))`
+inj_plus: (x,y:nat)`(inject_nat (plus x y)) = (inject_nat x)+(inject_nat y)`
+inj_mult: (x,y:nat)`(inject_nat (mult x y)) = (inject_nat x)*(inject_nat y)`
+inj_minus1:
+ (x,y:nat)(le y x)->`(inject_nat (minus x y)) = (inject_nat x)-(inject_nat y)`
+inj_minus2: (x,y:nat)(gt y x)->`(inject_nat (minus x y)) = 0`
+
+(* Too specific ? *)
+Zred_factor5: (x,y:Z)`x*0+y = y`
+*)
+
+(*i*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Zlogarithm.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Zlogarithm.mma
new file mode 100644 (file)
index 0000000..6666870
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Zlogarithm.v,v 1.14 2003/12/15 19:48:23 barras Exp $ i*)
+
+(*#*********************************************************************)
+
+(*#* The integer logarithms with base 2. 
+
+    There are three logarithms,
+    depending on the rounding of the real 2-based logarithm:
+    - [Log_inf]: [y = (Log_inf x) iff 2^y <= x < 2^(y+1)]
+      i.e. [Log_inf x] is the biggest integer that is smaller than [Log x]
+    - [Log_sup]: [y = (Log_sup x) iff 2^(y-1) < x <= 2^y]
+      i.e. [Log_inf x] is the smallest integer that is bigger than [Log x]
+    - [Log_nearest]: [y= (Log_nearest x) iff 2^(y-1/2) < x <= 2^(y+1/2)]
+      i.e. [Log_nearest x] is the integer nearest from [Log x] *)
+
+include "ZArith/ZArith_base.ma".
+
+include "ZArith/Zcomplements.ma".
+
+include "ZArith/Zpower.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(* UNEXPORTED
+Section Log_pos
+*)
+
+(* Log of positive integers *)
+
+(*#* First we build [log_inf] and [log_sup] *)
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/log_inf.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/log_sup.con" as definition.
+
+(* UNEXPORTED
+Hint Unfold log_inf log_sup.
+*)
+
+(*#* Then we give the specifications of [log_inf] and [log_sup] 
+    and prove their validity *)
+
+(*i Hints Resolve ZERO_le_S : zarith. i*)
+
+(* UNEXPORTED
+Hint Resolve Zle_trans: zarith.
+*)
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/log_inf_correct.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/log_inf_correct1.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/log_inf_correct2.con" as definition.
+
+(* UNEXPORTED
+Opaque log_inf_correct1 log_inf_correct2.
+*)
+
+(* UNEXPORTED
+Hint Resolve log_inf_correct1 log_inf_correct2: zarith.
+*)
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/log_sup_correct1.con" as lemma.
+
+(*#* For every [p], either [p] is a power of two and [(log_inf p)=(log_sup p)]
+    either [(log_sup p)=(log_inf p)+1] *)
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/log_sup_log_inf.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/log_sup_correct2.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/log_inf_le_log_sup.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/log_sup_le_Slog_inf.con" as lemma.
+
+(*#* Now it's possible to specify and build the [Log] rounded to the nearest *)
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/log_near.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/log_near_correct1.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/log_near_correct2.con" as theorem.
+
+(*i******************
+Theorem log_near_correct: (p:positive)
+  `| (two_p (log_near p)) - (POS p) | <= (POS p)-(two_p (log_inf p))`
+  /\`| (two_p (log_near p)) - (POS p) | <= (two_p (log_sup p))-(POS p)`.
+Intro.
+Induction p.
+Intros p0 [(Einf1,Einf2)|(Esup1,Esup2)].
+Unfold log_near log_inf log_sup. Fold log_near log_inf log_sup.
+Rewrite Einf1.
+Repeat Rewrite two_p_S.
+Case p0; [Left | Left | Right].
+
+Split.
+Simpl.
+Rewrite E1; Case p0; Try Reflexivity.
+Compute.
+Unfold log_near; Fold log_near.
+Unfold log_inf; Fold log_inf.
+Repeat Rewrite E1.
+Split.
+**********************************i*)
+
+(* UNEXPORTED
+End Log_pos
+*)
+
+(* UNEXPORTED
+Section divers
+*)
+
+(*#* Number of significative digits. *)
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/N_digits.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/ZERO_le_N_digits.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/log_inf_shift_nat.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/log_sup_shift_nat.con" as lemma.
+
+(*#* [Is_power p] means that p is a power of two *)
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/Is_power.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/Is_power_correct.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zlogarithm/Is_power_or.con" as lemma.
+
+(* UNEXPORTED
+End divers
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Zmin.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Zmin.mma
new file mode 100644 (file)
index 0000000..ab193ad
--- /dev/null
@@ -0,0 +1,87 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Zmin.v,v 1.3 2003/11/29 17:28:45 herbelin Exp $ i*)
+
+(*#* Binary Integers (Pierre Crégut (CNET, Lannion, France) *)
+
+include "Arith/Arith.ma".
+
+include "ZArith/BinInt.ma".
+
+include "ZArith/Zcompare.ma".
+
+include "ZArith/Zorder.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(*#*********************************************************************)
+
+(*#* Minimum on binary integer numbers *)
+
+inline procedural "cic:/Coq/ZArith/Zmin/Zmin.con" as definition.
+
+(*#* Properties of minimum on binary integer numbers *)
+
+inline procedural "cic:/Coq/ZArith/Zmin/Zmin_SS.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zmin/Zle_min_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zmin/Zle_min_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zmin/Zmin_case.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zmin/Zmin_or.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zmin/Zmin_n_n.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zmin/Zmin_plus.con" as lemma.
+
+(*#*********************************************************************)
+
+(*#* Maximum of two binary integer numbers *)
+
+inline procedural "cic:/Coq/ZArith/Zmin/Zmax.con" as definition.
+
+(*#* Properties of maximum on binary integer numbers *)
+
+(* UNEXPORTED
+Ltac CaseEq name :=
+  generalize (refl_equal name); pattern name at -1 in |- *; case name.
+*)
+
+inline procedural "cic:/Coq/ZArith/Zmin/Zmax1.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zmin/Zmax2.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Zmisc.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Zmisc.mma
new file mode 100644 (file)
index 0000000..e698927
--- /dev/null
@@ -0,0 +1,71 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Zmisc.v,v 1.20 2003/11/29 17:28:45 herbelin Exp $ i*)
+
+include "ZArith/BinInt.ma".
+
+include "ZArith/Zcompare.ma".
+
+include "ZArith/Zorder.ma".
+
+include "Bool/Bool.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(*#*********************************************************************)
+
+(*#* Iterators *)
+
+(*#* [n]th iteration of the function [f] *)
+
+inline procedural "cic:/Coq/ZArith/Zmisc/iter_nat.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zmisc/iter_pos.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zmisc/iter.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zmisc/iter_nat_plus.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zmisc/iter_nat_of_P.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zmisc/iter_pos_plus.con" as theorem.
+
+(*#* Preservation of invariants : if [f : A->A] preserves the invariant [Inv], 
+    then the iterates of [f] also preserve it. *)
+
+inline procedural "cic:/Coq/ZArith/Zmisc/iter_nat_invariant.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zmisc/iter_pos_invariant.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Znat.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Znat.mma
new file mode 100644 (file)
index 0000000..92a6310
--- /dev/null
@@ -0,0 +1,88 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Znat.v,v 1.3 2003/12/15 19:48:23 barras Exp $ i*)
+
+(*#* Binary Integers (Pierre Crégut, CNET, Lannion, France) *)
+
+include "Arith/Arith.ma".
+
+include "NArith/BinPos.ma".
+
+include "ZArith/BinInt.ma".
+
+include "ZArith/Zcompare.ma".
+
+include "ZArith/Zorder.ma".
+
+include "Logic/Decidable.ma".
+
+include "Arith/Peano_dec.ma".
+
+include "Arith/Compare_dec.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+inline procedural "cic:/Coq/ZArith/Znat/neq.con" as definition.
+
+(*#*********************************************************************)
+
+(*#* Properties of the injection from nat into Z *)
+
+inline procedural "cic:/Coq/ZArith/Znat/inj_S.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Znat/inj_plus.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Znat/inj_mult.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Znat/inj_neq.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Znat/inj_le.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Znat/inj_lt.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Znat/inj_gt.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Znat/inj_ge.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Znat/inj_eq.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Znat/intro_Z.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Znat/inj_minus1.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Znat/inj_minus2.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Znat/Zpos_eq_Z_of_nat_o_nat_of_P.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Znumtheory.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Znumtheory.mma
new file mode 100644 (file)
index 0000000..eb98f4e
--- /dev/null
@@ -0,0 +1,279 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Znumtheory.v,v 1.5 2003/12/16 15:03:50 herbelin Exp $ i*)
+
+include "ZArith/ZArith_base.ma".
+
+include "ZArith/Zcomplements.ma".
+
+include "ZArith/Zdiv.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(*#* This file contains some notions of number theory upon Z numbers: 
+     - a divisibility predicate [Zdivide]
+     - a gcd predicate [gcd]
+     - Euclid algorithm [euclid]
+     - an efficient [Zgcd] function 
+     - a relatively prime predicate [rel_prime]
+     - a prime predicate [prime]
+*)
+
+(*#* * Divisibility *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide.ind".
+
+(*#* Syntax for divisibility *)
+
+(* NOTATION
+Notation "( a | b )" := (Zdivide a b) (at level 0) : Z_scope.
+*)
+
+(*#* Results concerning divisibility*)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_refl.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zone_divide.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_0.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Zdivide_refl Zone_divide Zdivide_0: zarith.
+*)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zmult_divide_compat_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zmult_divide_compat_r.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Zmult_divide_compat_l Zmult_divide_compat_r: zarith.
+*)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_plus_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_opp_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_opp_r_rev.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_opp_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_opp_l_rev.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_minus_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_mult_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_mult_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_factor_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_factor_l.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Zdivide_plus_r Zdivide_opp_r Zdivide_opp_r_rev Zdivide_opp_l
+  Zdivide_opp_l_rev Zdivide_minus_l Zdivide_mult_l Zdivide_mult_r
+  Zdivide_factor_r Zdivide_factor_l: zarith.
+*)
+
+(*#* Auxiliary result. *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zmult_one.con" as lemma.
+
+(*#* Only [1] and [-1] divide [1]. *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_1.con" as lemma.
+
+(*#* If [a] divides [b] and [b] divides [a] then [a] is [b] or [-b]. *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_antisym.con" as lemma.
+
+(*#* If [a] divides [b] and [b<>0] then [|a| <= |b|]. *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_bounds.con" as lemma.
+
+(*#* * Greatest common divisor (gcd). *)
+
+(*#* There is no unicity of the gcd; hence we define the predicate [gcd a b d] 
+     expressing that [d] is a gcd of [a] and [b]. 
+     (We show later that the [gcd] is actually unique if we discard its sign.) *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zis_gcd.ind".
+
+(*#* Trivial properties of [gcd] *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zis_gcd_sym.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zis_gcd_0.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zis_gcd_minus.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zis_gcd_opp.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Zis_gcd_sym Zis_gcd_0 Zis_gcd_minus Zis_gcd_opp: zarith.
+*)
+
+(*#* * Extended Euclid algorithm. *)
+
+(*#* Euclid's algorithm to compute the [gcd] mainly relies on
+    the following property. *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zis_gcd_for_euclid.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zis_gcd_for_euclid2.con" as lemma.
+
+(*#* We implement the extended version of Euclid's algorithm,
+    i.e. the one computing Bezout's coefficients as it computes
+    the [gcd]. We follow the algorithm given in Knuth's
+    "Art of Computer Programming", vol 2, page 325. *)
+
+(* UNEXPORTED
+Section extended_euclid_algorithm
+*)
+
+(* UNEXPORTED
+cic:/Coq/ZArith/Znumtheory/extended_euclid_algorithm/a.var
+*)
+
+(* UNEXPORTED
+cic:/Coq/ZArith/Znumtheory/extended_euclid_algorithm/b.var
+*)
+
+(*#* The specification of Euclid's algorithm is the existence of
+    [u], [v] and [d] such that [ua+vb=d] and [(gcd a b d)]. *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Euclid.ind".
+
+(*#* The recursive part of Euclid's algorithm uses well-founded
+    recursion of non-negative integers. It maintains 6 integers
+    [u1,u2,u3,v1,v2,v3] such that the following invariant holds:
+    [u1*a+u2*b=u3] and [v1*a+v2*b=v3] and [gcd(u2,v3)=gcd(a,b)]. 
+    *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/euclid_rec.con" as lemma.
+
+(*#* We get Euclid's algorithm by applying [euclid_rec] on
+    [1,0,a,0,1,b] when [b>=0] and [1,0,a,0,-1,-b] when [b<0]. *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/euclid.con" as lemma.
+
+(* UNEXPORTED
+End extended_euclid_algorithm
+*)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zis_gcd_uniqueness_apart_sign.con" as theorem.
+
+(*#* * Bezout's coefficients *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Bezout.ind".
+
+(*#* Existence of Bezout's coefficients for the [gcd] of [a] and [b] *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zis_gcd_bezout.con" as lemma.
+
+(*#* gcd of [ca] and [cb] is [c gcd(a,b)]. *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zis_gcd_mult.con" as lemma.
+
+(*#* We could obtain a [Zgcd] function via [euclid]. But we propose 
+  here a more direct version of a [Zgcd], with better extraction 
+  (no bezout coeffs). *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zgcd_pos.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zgcd_spec.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zgcd.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zgcd_is_pos.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zgcd_is_gcd.con" as lemma.
+
+(*#* * Relative primality *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/rel_prime.con" as definition.
+
+(*#* Bezout's theorem: [a] and [b] are relatively prime if and
+    only if there exist [u] and [v] such that [ua+vb = 1]. *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/rel_prime_bezout.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/bezout_rel_prime.con" as lemma.
+
+(*#* Gauss's theorem: if [a] divides [bc] and if [a] and [b] are
+    relatively prime, then [a] divides [c]. *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Gauss.con" as theorem.
+
+(*#* If [a] is relatively prime to [b] and [c], then it is to [bc] *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/rel_prime_mult.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/rel_prime_cross_prod.con" as lemma.
+
+(*#* After factorization by a gcd, the original numbers are relatively prime. *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zis_gcd_rel_prime.con" as lemma.
+
+(*#* * Primality *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/prime.ind".
+
+(*#* The sole divisors of a prime number [p] are [-1], [1], [p] and [-p]. *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/prime_divisors.con" as lemma.
+
+(*#* A prime number is relatively prime with any number it does not divide *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/prime_rel_prime.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve prime_rel_prime: zarith.
+*)
+
+(*#* [Zdivide] can be expressed using [Zmod]. *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zmod_divide.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_mod.con" as lemma.
+
+(*#* [Zdivide] is hence decidable *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/Zdivide_dec.con" as lemma.
+
+(*#* If a prime [p] divides [ab] then it divides either [a] or [b] *)
+
+inline procedural "cic:/Coq/ZArith/Znumtheory/prime_mult.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Zorder.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Zorder.mma
new file mode 100644 (file)
index 0000000..1d27464
--- /dev/null
@@ -0,0 +1,406 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Zorder.v,v 1.6 2003/11/29 17:28:45 herbelin Exp $ i*)
+
+(*#* Binary Integers (Pierre Crégut (CNET, Lannion, France) *)
+
+include "NArith/BinPos.ma".
+
+include "ZArith/BinInt.ma".
+
+include "Arith/Arith.ma".
+
+include "Logic/Decidable.ma".
+
+include "ZArith/Zcompare.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(* UNEXPORTED
+Implicit Types x y z : Z.
+*)
+
+(*#*********************************************************************)
+
+(*#* Properties of the order relations on binary integers *)
+
+(*#* Trichotomy *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Ztrichotomy_inf.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Ztrichotomy.con" as theorem.
+
+(*#*********************************************************************)
+
+(*#* Decidability of equality and order on Z *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/dec_eq.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zorder/dec_Zne.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zorder/dec_Zle.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zorder/dec_Zgt.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zorder/dec_Zge.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zorder/dec_Zlt.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zorder/not_Zeq.con" as theorem.
+
+(*#* Relating strict and large orders *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zgt_lt.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_gt.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zge_le.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_ge.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_not_gt.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zgt_not_le.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_not_lt.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_not_le.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Znot_ge_lt.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Znot_lt_ge.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Znot_gt_le.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Znot_le_gt.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zge_iff_le.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zgt_iff_lt.con" as lemma.
+
+(*#* Reflexivity *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_refl.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zeq_le.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Zle_refl: zarith.
+*)
+
+(*#* Antisymmetry *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_antisym.con" as lemma.
+
+(*#* Asymmetry *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zgt_asym.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_asym.con" as lemma.
+
+(*#* Irreflexivity *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zgt_irrefl.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_irrefl.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_not_eq.con" as lemma.
+
+(*#* Large = strict or equal *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_le_weak.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_lt_or_eq.con" as lemma.
+
+(*#* Dichotomy *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_or_lt.con" as lemma.
+
+(*#* Transitivity of strict orders *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zgt_trans.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_trans.con" as lemma.
+
+(*#* Mixed transitivity *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_gt_trans.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zgt_le_trans.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_le_trans.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_lt_trans.con" as lemma.
+
+(*#* Transitivity of large orders *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_trans.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zge_trans.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Zle_trans: zarith.
+*)
+
+(*#* Compatibility of successor wrt to order *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zsucc_le_compat.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zsucc_gt_compat.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zsucc_lt_compat.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Zsucc_le_compat: zarith.
+*)
+
+(*#* Simplification of successor wrt to order *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zsucc_gt_reg.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zsucc_le_reg.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zsucc_lt_reg.con" as lemma.
+
+(*#* Compatibility of addition wrt to order *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_gt_compat_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_gt_compat_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_le_compat_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_le_compat_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_lt_compat_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_lt_compat_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_lt_le_compat.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_le_lt_compat.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_le_compat.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_lt_compat.con" as lemma.
+
+(*#* Compatibility of addition wrt to being positive *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_le_0_compat.con" as lemma.
+
+(*#* Simplification of addition wrt to order *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_gt_reg_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_gt_reg_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_le_reg_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_le_reg_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_lt_reg_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zplus_lt_reg_r.con" as lemma.
+
+(*#* Special base instances of order *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zgt_succ.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Znot_le_succ.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_succ.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_pred.con" as lemma.
+
+(*#* Relating strict and large order using successor or predecessor *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zgt_le_succ.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_gt_succ.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_lt_succ.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_le_succ.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zgt_succ_le.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_succ_le.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_succ_gt.con" as lemma.
+
+(*#* Weakening order *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_succ.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Zle_succ: zarith.
+*)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_pred.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_lt_succ.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_le_succ.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_succ_le.con" as lemma.
+
+(* UNEXPORTED
+Hint Resolve Zle_le_succ: zarith.
+*)
+
+(*#* Relating order wrt successor and order wrt predecessor *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zgt_succ_pred.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_succ_pred.con" as lemma.
+
+(*#* Relating strict order and large order on positive *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_0_le_0_pred.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zgt_0_le_0_pred.con" as lemma.
+
+(*#* Special cases of ordered integers *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_0_1.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_0_1.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_neg_pos.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zgt_pos_0.con" as lemma.
+
+(* weaker but useful (in [Zpower] for instance) *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_0_pos.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_neg_0.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_0_nat.con" as lemma.
+
+(* UNEXPORTED
+Hint Immediate Zeq_le: zarith.
+*)
+
+(*#* Transitivity using successor *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zge_trans_succ.con" as lemma.
+
+(*#* Derived lemma *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zgt_succ_gt_or_eq.con" as lemma.
+
+(*#* Compatibility of multiplication by a positive wrt to order *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_le_compat_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_le_compat_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_lt_compat_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_gt_compat_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_gt_0_lt_compat_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_gt_0_le_compat_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_lt_0_le_compat_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_gt_0_lt_compat_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_lt_compat_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_gt_compat_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_ge_compat_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_ge_compat_l.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_ge_compat.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_le_compat.con" as lemma.
+
+(*#* Simplification of multiplication by a positive wrt to being positive *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_gt_0_lt_reg_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_lt_reg_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_le_reg_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_lt_0_le_reg_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_ge_reg_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_gt_reg_r.con" as lemma.
+
+(*#* Compatibility of multiplication by a positive wrt to being positive *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_le_0_compat.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_gt_0_compat.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_lt_O_compat.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_gt_0_le_0_compat.con" as lemma.
+
+(*#* Simplification of multiplication by a positive wrt to being positive *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_le_0_reg_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_gt_0_lt_0_reg_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_lt_0_reg_r.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zmult_gt_0_reg_l.con" as lemma.
+
+(*#* Simplification of square wrt order *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zgt_square_simpl.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_square_simpl.con" as lemma.
+
+(*#* Equivalence between inequalities *)
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zle_plus_swap.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_plus_swap.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zeq_plus_swap.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_minus_simpl_swap.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zorder/Zlt_O_minus_lt.con" as lemma.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Zpower.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Zpower.mma
new file mode 100644 (file)
index 0000000..31fbb17
--- /dev/null
@@ -0,0 +1,223 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: Zpower.v,v 1.11 2003/11/29 17:28:46 herbelin Exp $ i*)
+
+include "ZArith/ZArith_base.ma".
+
+include "ZArith/Zcomplements.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(* UNEXPORTED
+Section section1
+*)
+
+(*#* [Zpower_nat z n] is the n-th power of [z] when [n] is an unary
+    integer (type [nat]) and [z] a signed integer (type [Z]) *)
+
+inline procedural "cic:/Coq/ZArith/Zpower/Zpower_nat.con" as definition.
+
+(*#* [Zpower_nat_is_exp] says [Zpower_nat] is a morphism for
+    [plus : nat->nat] and [Zmult : Z->Z] *)
+
+inline procedural "cic:/Coq/ZArith/Zpower/Zpower_nat_is_exp.con" as lemma.
+
+(*#* [Zpower_pos z n] is the n-th power of [z] when [n] is an binary
+    integer (type [positive]) and [z] a signed integer (type [Z]) *)
+
+inline procedural "cic:/Coq/ZArith/Zpower/Zpower_pos.con" as definition.
+
+(*#* This theorem shows that powers of unary and binary integers
+   are the same thing, modulo the function convert : [positive -> nat] *)
+
+inline procedural "cic:/Coq/ZArith/Zpower/Zpower_pos_nat.con" as theorem.
+
+(*#* Using the theorem [Zpower_pos_nat] and the lemma [Zpower_nat_is_exp] we
+   deduce that the function [[n:positive](Zpower_pos z n)] is a morphism
+   for [add : positive->positive] and [Zmult : Z->Z] *)
+
+inline procedural "cic:/Coq/ZArith/Zpower/Zpower_pos_is_exp.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zpower/Zpower.con" as definition.
+
+(* NOTATION
+Infix "^" := Zpower : Z_scope.
+*)
+
+(* UNEXPORTED
+Hint Immediate Zpower_nat_is_exp: zarith.
+*)
+
+(* UNEXPORTED
+Hint Immediate Zpower_pos_is_exp: zarith.
+*)
+
+(* UNEXPORTED
+Hint Unfold Zpower_pos: zarith.
+*)
+
+(* UNEXPORTED
+Hint Unfold Zpower_nat: zarith.
+*)
+
+inline procedural "cic:/Coq/ZArith/Zpower/Zpower_exp.con" as lemma.
+
+(* UNEXPORTED
+End section1
+*)
+
+(* Exporting notation "^" *)
+
+(* NOTATION
+Infix "^" := Zpower : Z_scope.
+*)
+
+(* UNEXPORTED
+Hint Immediate Zpower_nat_is_exp: zarith.
+*)
+
+(* UNEXPORTED
+Hint Immediate Zpower_pos_is_exp: zarith.
+*)
+
+(* UNEXPORTED
+Hint Unfold Zpower_pos: zarith.
+*)
+
+(* UNEXPORTED
+Hint Unfold Zpower_nat: zarith.
+*)
+
+(* UNEXPORTED
+Section Powers_of_2
+*)
+
+(*#* For the powers of two, that will be widely used, a more direct
+   calculus is possible. We will also prove some properties such
+   as [(x:positive) x < 2^x] that are true for all integers bigger
+   than 2 but more difficult to prove and useless. *)
+
+(*#* [shift n m] computes [2^n * m], or [m] shifted by [n] positions *)
+
+inline procedural "cic:/Coq/ZArith/Zpower/shift_nat.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zpower/shift_pos.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zpower/shift.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zpower/two_power_nat.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zpower/two_power_pos.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zpower/two_power_nat_S.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zpower/shift_nat_plus.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zpower/shift_nat_correct.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zpower/two_power_nat_correct.con" as theorem.
+
+(*#* Second we show that [two_power_pos] and [two_power_nat] are the same *)
+
+inline procedural "cic:/Coq/ZArith/Zpower/shift_pos_nat.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zpower/two_power_pos_nat.con" as lemma.
+
+(*#* Then we deduce that [two_power_pos] is also correct *)
+
+inline procedural "cic:/Coq/ZArith/Zpower/shift_pos_correct.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zpower/two_power_pos_correct.con" as theorem.
+
+(*#* Some consequences *)
+
+inline procedural "cic:/Coq/ZArith/Zpower/two_power_pos_is_exp.con" as theorem.
+
+(*#* The exponentiation [z -> 2^z] for [z] a signed integer. 
+    For convenience, we assume that [2^z = 0] for all [z < 0]
+    We could also define a inductive type [Log_result] with
+    3 contructors [ Zero | Pos positive -> | minus_infty]
+    but it's more complexe and not so useful. *)
+
+inline procedural "cic:/Coq/ZArith/Zpower/two_p.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zpower/two_p_is_exp.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/Zpower/two_p_gt_ZERO.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zpower/two_p_S.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zpower/two_p_pred.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zpower/Zlt_lt_double.con" as lemma.
+
+(* UNEXPORTED
+End Powers_of_2
+*)
+
+(* UNEXPORTED
+Hint Resolve two_p_gt_ZERO: zarith.
+*)
+
+(* UNEXPORTED
+Hint Immediate two_p_pred two_p_S: zarith.
+*)
+
+(* UNEXPORTED
+Section power_div_with_rest
+*)
+
+(*#* Division by a power of two.
+    To [n:Z] and [p:positive], [q],[r] are associated such that
+    [n = 2^p.q + r] and [0 <= r < 2^p] *)
+
+(*#* Invariant: [d*q + r = d'*q + r /\ d' = 2*d /\ 0<= r < d /\ 0 <= r' < d'] *)
+
+inline procedural "cic:/Coq/ZArith/Zpower/Zdiv_rest_aux.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zpower/Zdiv_rest.con" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zpower/Zdiv_rest_correct1.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zpower/Zdiv_rest_correct2.con" as lemma.
+
+inline procedural "cic:/Coq/ZArith/Zpower/Zdiv_rest_proofs.ind".
+
+inline procedural "cic:/Coq/ZArith/Zpower/Zdiv_rest_correct.con" as lemma.
+
+(* UNEXPORTED
+End power_div_with_rest
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Zsqrt.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Zsqrt.mma
new file mode 100644 (file)
index 0000000..25e5591
--- /dev/null
@@ -0,0 +1,80 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(* $Id: Zsqrt.v,v 1.11 2003/12/15 19:48:23 barras Exp $ *)
+
+include "ZArith/ZArith_base.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(*#*********************************************************************)
+
+(*#* Definition and properties of square root on Z *)
+
+(*#* The following tactic replaces all instances of (POS (xI ...)) by
+    `2*(POS ...)+1`, but only when ... is not made only with xO, XI, or xH. *)
+
+(* UNEXPORTED
+Ltac compute_POS :=
+  match goal with
+  |  |- context [(Zpos (xI ?X1))] =>
+      match constr:X1 with
+      | context [1%positive] => fail
+      | _ => rewrite (BinInt.Zpos_xI X1)
+      end
+  |  |- context [(Zpos (xO ?X1))] =>
+      match constr:X1 with
+      | context [1%positive] => fail
+      | _ => rewrite (BinInt.Zpos_xO X1)
+      end
+  end.
+*)
+
+inline procedural "cic:/Coq/ZArith/Zsqrt/sqrt_data.ind".
+
+inline procedural "cic:/Coq/ZArith/Zsqrt/sqrtrempos.con" as definition.
+
+(*#* Define with integer input, but with a strong (readable) specification. *)
+
+inline procedural "cic:/Coq/ZArith/Zsqrt/Zsqrt.con" as definition.
+
+(*#* Define a function of type Z->Z that computes the integer square root,
+    but only for positive numbers, and 0 for others. *)
+
+inline procedural "cic:/Coq/ZArith/Zsqrt/Zsqrt_plain.con" as definition.
+
+(*#* A basic theorem about Zsqrt_plain *)
+
+inline procedural "cic:/Coq/ZArith/Zsqrt/Zsqrt_interval.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/Zwf.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/Zwf.mma
new file mode 100644 (file)
index 0000000..db038b4
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(* $Id: Zwf.v,v 1.7 2003/11/29 17:28:46 herbelin Exp $ *)
+
+include "ZArith/ZArith_base.ma".
+
+include "Arith/Wf_nat.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(*#* Well-founded relations on Z. *)
+
+(*#* We define the following family of relations on [Z x Z]: 
+
+    [x (Zwf c) y]   iff   [x < y & c <= y]
+ *)
+
+inline procedural "cic:/Coq/ZArith/Zwf/Zwf.con" as definition.
+
+(*#* and we prove that [(Zwf c)] is well founded *)
+
+(* UNEXPORTED
+Section wf_proof
+*)
+
+(* UNEXPORTED
+cic:/Coq/ZArith/Zwf/wf_proof/c.var
+*)
+
+(*#* The proof of well-foundness is classic: we do the proof by induction
+    on a measure in nat, which is here [|x-c|] *)
+
+inline procedural "cic:/Coq/ZArith/Zwf/wf_proof/f.con" "wf_proof__" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zwf/Zwf_well_founded.con" as lemma.
+
+(* UNEXPORTED
+End wf_proof
+*)
+
+(* UNEXPORTED
+Hint Resolve Zwf_well_founded: datatypes v62.
+*)
+
+(*#* We also define the other family of relations:
+
+    [x (Zwf_up c) y]   iff   [y < x <= c]
+ *)
+
+inline procedural "cic:/Coq/ZArith/Zwf/Zwf_up.con" as definition.
+
+(*#* and we prove that [(Zwf_up c)] is well founded *)
+
+(* UNEXPORTED
+Section wf_proof_up
+*)
+
+(* UNEXPORTED
+cic:/Coq/ZArith/Zwf/wf_proof_up/c.var
+*)
+
+(*#* The proof of well-foundness is classic: we do the proof by induction
+    on a measure in nat, which is here [|c-x|] *)
+
+inline procedural "cic:/Coq/ZArith/Zwf/wf_proof_up/f.con" "wf_proof_up__" as definition.
+
+inline procedural "cic:/Coq/ZArith/Zwf/Zwf_up_well_founded.con" as lemma.
+
+(* UNEXPORTED
+End wf_proof_up
+*)
+
+(* UNEXPORTED
+Hint Resolve Zwf_up_well_founded: datatypes v62.
+*)
+
diff --git a/helm/software/matita/contribs/procedural/Coq/ZArith/auxiliary.mma b/helm/software/matita/contribs/procedural/Coq/ZArith/auxiliary.mma
new file mode 100644 (file)
index 0000000..0eeec13
--- /dev/null
@@ -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 *********************)
+
+include "Coq.ma".
+
+(*#**********************************************************************)
+
+(*  v      *   The Coq Proof Assistant  /  The Coq Development Team    *)
+
+(* <O___,, *        INRIA-Rocquencourt  &  LRI-CNRS-Orsay              *)
+
+(*   \VV/  *************************************************************)
+
+(*    //   *      This file is distributed under the terms of the      *)
+
+(*         *       GNU Lesser General Public License Version 2.1       *)
+
+(*#**********************************************************************)
+
+(*i $Id: auxiliary.v,v 1.12 2003/11/29 17:28:46 herbelin Exp $ i*)
+
+(*#* Binary Integers (Pierre Crégut, CNET, Lannion, France) *)
+
+include "Arith/Arith.ma".
+
+include "ZArith/BinInt.ma".
+
+include "ZArith/Zorder.ma".
+
+include "Logic/Decidable.ma".
+
+include "Arith/Peano_dec.ma".
+
+include "Arith/Compare_dec.ma".
+
+(* UNEXPORTED
+Open Local Scope Z_scope.
+*)
+
+(*#*********************************************************************)
+
+(*#* Moving terms from one side to the other of an inequality *)
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zne_left.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zegal_left.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zle_left.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zle_left_rev.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zlt_left_rev.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zlt_left.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zlt_left_lt.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zge_left.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zgt_left.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zgt_left_gt.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zgt_left_rev.con" as theorem.
+
+(*#*********************************************************************)
+
+(*#* Factorization lemmas *)
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zred_factor0.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zred_factor1.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zred_factor2.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zred_factor3.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zred_factor4.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zred_factor5.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zred_factor6.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zle_mult_approx.con" as theorem.
+
+inline procedural "cic:/Coq/ZArith/auxiliary/Zmult_le_approx.con" as theorem.
+
diff --git a/helm/software/matita/contribs/procedural/Coq/preamble.ma b/helm/software/matita/contribs/procedural/Coq/preamble.ma
new file mode 100644 (file)
index 0000000..a5875f5
--- /dev/null
@@ -0,0 +1,22 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "coq.ma".
+(*
+alias id "refl_equal" = "cic:/Coq/Init/Logic/eq.ind#xpointer(1/1/1)".
+alias id "False" = "cic:/Coq/Init/Logic/False.ind#xpointer(1/1)".
+alias id "True" = "cic:/Coq/Init/Logic/True.ind#xpointer(1/1)".
+alias id "I" = "cic:/Coq/Init/Logic/True.ind#xpointer(1/1/1)".
+alias id "sym_eq" = "cic:/Coq/Init/Logic/sym_eq.con".  
+*)
diff --git a/helm/software/matita/contribs/procedural/Coq/root b/helm/software/matita/contribs/procedural/Coq/root
new file mode 100644 (file)
index 0000000..50d22b0
--- /dev/null
@@ -0,0 +1,2 @@
+baseuri=cic:/matita/procedural/Coq
+include_paths=../../../legacy
diff --git a/helm/software/matita/contribs/procedural/Makefile.common b/helm/software/matita/contribs/procedural/Makefile.common
new file mode 100644 (file)
index 0000000..ec1cb7d
--- /dev/null
@@ -0,0 +1,43 @@
+BIN = ../../../
+
+DIR=$(shell basename $$PWD)
+
+H=@
+
+MATITAOPTIONS=
+
+TRANSCRIPT = $(BIN)../components/binaries/transcript/transcript.opt
+
+LOG = log.txt
+
+MMAS = $(shell find -name "*.mma")
+MAS = $(MMAS:%.mma=%.ma)
+
+$(DIR) all:
+       $(H)$(RM) $(LOG)
+       $(H)$(BIN)matitac $(MATITAOPTIONS) 2>> $(LOG)
+$(DIR).opt opt all.opt:
+       $(H)$(RM) $(LOG)
+       $(H)$(BIN)matitac.opt $(MATITAOPTIONS) 2>> $(LOG)
+clean:
+       $(H)$(BIN)matitaclean $(MATITAOPTIONS)
+       $(H)$(RM) $(MAS)
+clean.opt:
+       $(H)$(BIN)matitaclean.opt $(MATITAOPTIONS)
+       $(H)$(RM) $(MAS)
+depend:
+       $$(H)(BIN)matitadep $(MATITAOPTIONS)
+depend.opt:
+       $(H)$(BIN)matitadep.opt $(MATITAOPTIONS)
+
+ifneq ($(strip $(MAS)),)
+clean.ma:
+       $(H)$(BIN)matitaclean.opt $(MATITAOPTIONS) $(MAS)
+       $(H)$(RM) $(MAS)
+else
+clean.ma:
+       $(H)echo no files to clean
+endif
+
+mma: $(DEVEL).conf.xml clean.ma
+       $(H)$(TRANSCRIPT) -C $(BIN) $(DEVEL)