aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdoc/Changes.tex30
-rwxr-xr-xdoc/RefMan-lib.tex93
-rw-r--r--doc/RefMan-tac.tex22
-rwxr-xr-xdoc/biblio.bib8
4 files changed, 135 insertions, 18 deletions
diff --git a/doc/Changes.tex b/doc/Changes.tex
index 2ec6ed3189..e4af1b996a 100755
--- a/doc/Changes.tex
+++ b/doc/Changes.tex
@@ -307,13 +307,15 @@ details, see the Reference Manual.
\paragraph{{\tt Fourier}} written by LoÏc Pottier solves linear inequations.
- \paragraph{Others tactics and developments} has been included in the Reals
-library: {\tt DiscrR} prove that a real integer constante c1 is non equal to
-another real integer constante c2; {\tt SplitAbsolu} allows us to split
-Rabsolu; {\tt SplitRmult} allows us to split Rabsolu a product non equal to
-zero and give the corresponding subgoals with each term non equal to zero.
-All this tactics has been written with the tactic language $\ltac$.\\
-A development on Cauchy series, power series,... has been added.\\
+ \paragraph{Other tactics and developments} has been included in the real
+numbers library: {\tt DiscrR} proves that a real integer constant c1 is non
+equal to another real integer constant c2; {\tt SplitAbsolu} allows us to
+unfold {\tt Rabsolu} contants and split corresponding conjonctions;
+{\tt SplitRmult} allows us to split a condition that a product is non equal to
+zero into subgoals corresponding to the condition on each subterm of the
+product. All these tactics have been written with the tactic language
+$\ltac$.\\
+A development on Cauchy series, power series,... has been also added.\\
For more details, see the Reference Manual.
\subsection{Changes in pre-existing tactics}
@@ -525,9 +527,9 @@ located in the source file.
\section{Extraction}\label{Extraction}
Extraction code has been completely rewritten since version V6.3.
This work is still not finished, but most parts of it are already
-usable. It was successfully tested on the \coq{} theories.
+usable. It was successfully tested on the {\Coq} theories.
-The new mechanism is able to extract programs from any \coq{} term
+The new mechanism is able to extract programs from any {\Coq} term
(including terms at the Type level).
However, the resulting ML term is not guaranteed to be typable in ML
@@ -540,7 +542,7 @@ A new mechanism to extract Ocaml modules from Coq files has been
added.
The \verb!ML import! command is not available anymore, use the command
-\verb!Extract Constant! to realize a \coq{} axiom by an ML program.
+\verb!Extract Constant! to realize a {\Coq} axiom by an ML program.
The syntax of commands is described in the Reference Manual.
@@ -574,11 +576,13 @@ documentation tool (see the ``doc'' directory in {\Coq} source).
\item Default parsers in {\tt Grammar} and {\tt Syntax} are
different (see section \ref{GrammarSyntax}).
- \item Definition of {\tt D\_in} (Reals/Rderiv.v) is now with Rdiv (Rmult and
- Rinv before).
+ \item Definition of {\tt D\_in} (Rderiv.v) is now with Rdiv and not
+ with Rmult and Rinv as before.
+
+ \item {\tt Extraction} is currently not available in {\Coq} V7.
\item Pattern aliases of dependent type in \verb=Cases=
- expressions are currently not supported.
+ expressions are currently not supported.
\end{itemize}
diff --git a/doc/RefMan-lib.tex b/doc/RefMan-lib.tex
index d0c16e3c2c..69d1257f6e 100755
--- a/doc/RefMan-lib.tex
+++ b/doc/RefMan-lib.tex
@@ -779,7 +779,6 @@ Inductive identityT [A:Type; a:A] : A->Type :=
refl_identityT : (identityT A a a).
\end{coq_example*}
-
\section{The standard library}
\subsection{Survey}
@@ -799,9 +798,10 @@ subdirectories:
etc.) \\
{\bf IntMap} & Representation of finite sets by an efficient
structure of map (trees indexed by binary integers).\\
- {\bf Reals} & Axiomatization of Real Numbers (classical, basic functions
- and results, integer part and fractional part,
- requires the \textbf{ZArith} library).\\
+ {\bf Reals} & Axiomatization of Real Numbers (classical, basic functions,
+ integer part, fractional part, limit, derivative, Cauchy
+ series, power series and results,... Requires the
+ \textbf{ZArith} library).\\
{\bf Relations} & Relations (definitions and basic results). \\
{\bf Wellfounded} & Well-founded relations (basic results). \\
@@ -880,9 +880,12 @@ naturals using decimal notation. That is he can write \texttt{(3)}
for \texttt{(S (S (S O)))}. The number must be between parentheses.
This works also in the left hand side of a \texttt{Cases} expression
(see for example section \ref{Refine-example}).
+
+%Remove the redefinition of nat
\begin{coq_eval}
-Reset Initial. (* Remove the redefinition of nat *)
+Reset Initial.
\end{coq_eval}
+
\begin{coq_example*}
Require Arith.
Fixpoint even [n:nat] : nat :=
@@ -892,6 +895,86 @@ Cases n of (0) => true
end.
\end{coq_example*}
+\begin{coq_eval}
+Reset Initial.
+\end{coq_eval}
+
+\subsection{Real numbers library}
+
+\subsubsection{Notations for real numbers}
+\index{Notations for real numbers}
+
+This is provided by requiring the module {\tt Reals}. This notation is very
+similar to the notation for integer arithmetics (see figure
+\ref{zarith-syntax}) where Inverse (/x) and division (x/y) have been added.
+This syntax is used parenthesizing by a double back-quote (\verb:``:).
+
+\begin{coq_example}
+Require Reals.
+Check ``2+3``.
+\end{coq_example}
+
+A constant, say \verb:``4``:, is equivalent to \verb:``(1+(1+(1+1)))``:.
+
+\subsubsection{Some tactics}
+
+In addition to the Ring, Field and Fourier tactics (see chapter \ref{Tactics})
+there are:
+
+{\tt DiscrR} prove that a real integer constante c1 is non equal to
+another real integer constante c2.
+\tacindex{DiscrR}
+
+\begin{coq_example*}
+Require DiscrR.
+Goal ``5<>0``.
+\end{coq_example*}
+
+\begin{coq_example}
+DiscrR.
+\end{coq_example}
+
+\begin{coq_eval}
+Abort.
+\end{coq_eval}
+
+{\tt SplitAbsolu} allows us to unfold {\tt Rabsolu} contants and split
+corresponding conjonctions.
+\tacindex{SplitAbsolu}
+
+\begin{coq_example*}
+Require SplitAbsolu.
+Goal (x:R) ``x <= (Rabsolu x)``.
+\end{coq_example*}
+
+\begin{coq_example}
+Intro;SplitAbsolu.
+\end{coq_example}
+
+\begin{coq_eval}
+Abort.
+\end{coq_eval}
+
+{\tt SplitRmult} allows us to split a condition that a product is non equal to
+zero into subgoals corresponding to the condition on each subterm of the
+product.
+\tacindex{SplitRmult}
+
+\begin{coq_example*}
+Require SplitRmult.
+Goal (x,y,z:R)``x*y*z<>0``.
+\end{coq_example*}
+
+\begin{coq_example}
+Intros;SplitRmult.
+\end{coq_example}
+
+All this tactics has been written with the new tactic language.\\
+
+\begin{coq_eval}
+Reset Initial.
+\end{coq_eval}
+
\section{Users' contributions}
\index{Contributions}
\label{Contributions}
diff --git a/doc/RefMan-tac.tex b/doc/RefMan-tac.tex
index 5e68c26921..6b304816f3 100644
--- a/doc/RefMan-tac.tex
+++ b/doc/RefMan-tac.tex
@@ -1702,6 +1702,28 @@ Field}.
\SeeAlso \cite{DelMay01} for more details regarding the implementation of {\tt
Field}.
+\subsection{\tt Fourier}
+\tacindex{Fourier}
+
+This tactic written by Loïc Pottier solves linear inequations on real numbers
+using Fourier's method (\cite{Fourier}). This tactic must be loaded by
+{\tt Require Fourier}.
+
+\Example
+\begin{coq_example*}
+Require Reals.
+Require Fourier.
+Goal (x,y:R)``x < y``->``y+1 >= x-1``.
+\end{coq_example*}
+
+\begin{coq_example}
+Intros; Fourier.
+\end{coq_example}
+
+\begin{coq_eval}
+Reset Initial.
+\end{coq_eval}
+
\subsection{\tt AutoRewrite [ \ident$_1$ \dots \ident$_n$ ]}
\tacindex{AutoRewrite}
diff --git a/doc/biblio.bib b/doc/biblio.bib
index 5e3fe8e56b..ad0ff37c0f 100755
--- a/doc/biblio.bib
+++ b/doc/biblio.bib
@@ -453,6 +453,14 @@ s},
YEAR = {1990}
}
+@BOOK{Fourier,
+ AUTHOR = {Jean-Baptiste-Joseph Fourier},
+ PUBLISHER = {Gauthier-Villars},
+ TITLE = {Fourier's method to solve linear
+ inequations/equations systems.},
+ YEAR = {1890}
+}
+
@INPROCEEDINGS{Gim94,
AUTHOR = {E. Gim\'enez},
BOOKTITLE = {Types'94 : Types for Proofs and Programs},