aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2015-02-15 18:17:04 +0100
committerPierre-Marie Pédrot2015-02-15 18:17:04 +0100
commitd7691de7184b4cdcfd48fd762011569cde5523c5 (patch)
tree9c9e14226b070fc2a5cf4c216c4f8c634de20855 /doc
parenteed12bddc3e6f6f9192c909a8b8f82859080f3a1 (diff)
parentaed3c876d422f4dcc0296fd4949148c697f37b1d (diff)
Merge branch 'v8.5'
Diffstat (limited to 'doc')
-rw-r--r--doc/refman/RefMan-ltac.tex8
-rw-r--r--doc/refman/RefMan-tacex.tex18
2 files changed, 20 insertions, 6 deletions
diff --git a/doc/refman/RefMan-ltac.tex b/doc/refman/RefMan-ltac.tex
index 689ac14254..1704b4d60b 100644
--- a/doc/refman/RefMan-ltac.tex
+++ b/doc/refman/RefMan-ltac.tex
@@ -1010,13 +1010,19 @@ Fail all:let n:= numgoals in guard n=2.
Reset Initial.
\end{coq_eval}
-\subsubsection[Proving a subgoal as a separate lemma]{Proving a subgoal as a separate lemma\tacindex{abstract}
+\subsubsection[Proving a subgoal as a separate lemma]{Proving a subgoal as a separate lemma\tacindex{abstract}\comindex{Qed export}
\index{Tacticals!abstract@{\tt abstract}}}
From the outside ``\texttt{abstract \tacexpr}'' is the same as
{\tt solve \tacexpr}. Internally it saves an auxiliary lemma called
{\ident}\texttt{\_subproof}\textit{n} where {\ident} is the name of the
current goal and \textit{n} is chosen so that this is a fresh name.
+Such auxiliary lemma is inlined in the final proof term
+unless the proof is ended with ``\texttt{Qed export}''. In such
+case the lemma is preserved. The syntax
+``\texttt{Qed export }\ident$_1$\texttt{, ..., }\ident$_n$''
+is also supported. In such case the system checks that the names given by the
+user actually exist when the proof is ended.
This tactical is useful with tactics such as \texttt{omega} or
\texttt{discriminate} that generate huge proof terms. With that tool
diff --git a/doc/refman/RefMan-tacex.tex b/doc/refman/RefMan-tacex.tex
index 668a68c9c7..9f4ddc8044 100644
--- a/doc/refman/RefMan-tacex.tex
+++ b/doc/refman/RefMan-tacex.tex
@@ -247,7 +247,7 @@ to simplify equalities appearing at the beginning of induction
hypotheses, generally using trivial applications of
reflexivity. In cases where the equality is not between constructor
forms though, one must help the automation by giving
-some arguments, using the {\tt specialize} tactic.
+some arguments, using the {\tt specialize} tactic for example.
\begin{coq_example*}
destruct D... apply weak ; apply ax. apply ax.
@@ -257,16 +257,24 @@ destruct D...
Show.
\end{coq_example}
\begin{coq_example}
- specialize (IHterm G empty).
+ specialize (IHterm G0 empty eq_refl).
\end{coq_example}
-Then the automation can find the needed equality {\tt G = G} to narrow
-the induction hypothesis further. This concludes our example.
+Once the induction hypothesis has been narrowed to the right equality,
+it can be used directly.
\begin{coq_example}
- simpl_depind.
+ apply weak, IHterm.
\end{coq_example}
+If there is an easy first-order solution to these equations as in this subgoal, the
+{\tt specialize\_eqs} tactic can be used instead of giving explicit proof
+terms:
+
+\begin{coq_example}
+ specialize_eqs IHterm.
+\end{coq_example}
+This concludes our example.
\SeeAlso The induction \ref{elim}, case \ref{case} and inversion \ref{inversion} tactics.
\section[\tt autorewrite]{\tt autorewrite\label{autorewrite-example}}