# HG changeset patch # User wenzelm # Date 1213118117 -7200 # Node ID e02d6e655e601342d184c74a1c19857196d80c0b # Parent 11fcdd5897dd1294750658ea4c672b77c9d7a48d updated generated file; diff -r 11fcdd5897dd -r e02d6e655e60 doc-src/IsarRef/Thy/document/HOL_Specific.tex --- a/doc-src/IsarRef/Thy/document/HOL_Specific.tex Tue Jun 10 19:15:16 2008 +0200 +++ b/doc-src/IsarRef/Thy/document/HOL_Specific.tex Tue Jun 10 19:15:17 2008 +0200 @@ -779,19 +779,20 @@ \end{isamarkuptext}% \isamarkuptrue% % -\isamarkupsection{Cases and induction: emulating tactic scripts \label{sec:hol-induct-tac}% +\isamarkupsection{Unstructured cases analysis and induction \label{sec:hol-induct-tac}% } \isamarkuptrue% % \begin{isamarkuptext}% -The following important tactical tools of Isabelle/HOL have been - ported to Isar. These should be never used in proper proof texts! +The following tools of Isabelle/HOL support cases analysis and + induction in unstructured tactic scripts; see also + \secref{sec:cases-induct} for proper Isar versions of similar ideas. \begin{matharray}{rcl} \indexdef{HOL}{method}{case\_tac}\hypertarget{method.HOL.case-tac}{\hyperlink{method.HOL.case-tac}{\mbox{\isa{case{\isacharunderscore}tac}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarmeth \\ \indexdef{HOL}{method}{induct\_tac}\hypertarget{method.HOL.induct-tac}{\hyperlink{method.HOL.induct-tac}{\mbox{\isa{induct{\isacharunderscore}tac}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarmeth \\ \indexdef{HOL}{method}{ind\_cases}\hypertarget{method.HOL.ind-cases}{\hyperlink{method.HOL.ind-cases}{\mbox{\isa{ind{\isacharunderscore}cases}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarmeth \\ - \indexdef{HOL}{command}{inductive\_cases}\hypertarget{command.HOL.inductive-cases}{\hyperlink{command.HOL.inductive-cases}{\mbox{\isa{\isacommand{inductive{\isacharunderscore}cases}}}}} & : & \isartrans{theory}{theory} \\ + \indexdef{HOL}{command}{inductive\_cases}\hypertarget{command.HOL.inductive-cases}{\hyperlink{command.HOL.inductive-cases}{\mbox{\isa{\isacommand{inductive{\isacharunderscore}cases}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isartrans{theory}{theory} \\ \end{matharray} \begin{rail} @@ -811,12 +812,15 @@ \begin{descr} \item [\hyperlink{method.HOL.case-tac}{\mbox{\isa{case{\isacharunderscore}tac}}} and \hyperlink{method.HOL.induct-tac}{\mbox{\isa{induct{\isacharunderscore}tac}}}] - admit to reason about inductive datatypes only (unless an - alternative rule is given explicitly). Furthermore, \hyperlink{method.HOL.case-tac}{\mbox{\isa{case{\isacharunderscore}tac}}} does a classical case split on booleans; \hyperlink{method.HOL.induct-tac}{\mbox{\isa{induct{\isacharunderscore}tac}}} allows only variables to be given as instantiation. - These tactic emulations feature both goal addressing and dynamic + admit to reason about inductive types. Rules are selected according + to the declarations by the \hyperlink{attribute.cases}{\mbox{\isa{cases}}} and \hyperlink{attribute.induct}{\mbox{\isa{induct}}} attributes, cf.\ \secref{sec:cases-induct}. The \hyperlink{command.HOL.datatype}{\mbox{\isa{\isacommand{datatype}}}} package already takes care of this. + + These unstructured tactics feature both goal addressing and dynamic instantiation. Note that named rule cases are \emph{not} provided - as would be by the proper \hyperlink{method.induct}{\mbox{\isa{induct}}} and \hyperlink{method.cases}{\mbox{\isa{cases}}} proof - methods (see \secref{sec:cases-induct}). + as would be by the proper \hyperlink{method.cases}{\mbox{\isa{cases}}} and \hyperlink{method.induct}{\mbox{\isa{induct}}} proof + methods (see \secref{sec:cases-induct}). Unlike the \hyperlink{method.induct}{\mbox{\isa{induct}}} method, \hyperlink{method.induct-tac}{\mbox{\isa{induct{\isacharunderscore}tac}}} does not handle structured rule + statements, only the compact object-logic conclusion of the subgoal + being addressed. \item [\hyperlink{method.HOL.ind-cases}{\mbox{\isa{ind{\isacharunderscore}cases}}} and \hyperlink{command.HOL.inductive-cases}{\mbox{\isa{\isacommand{inductive{\isacharunderscore}cases}}}}] provide an interface to the internal \verb|mk_cases| operation. Rules are simplified in an unrestricted forward manner. diff -r 11fcdd5897dd -r e02d6e655e60 doc-src/IsarRef/Thy/document/Proof.tex --- a/doc-src/IsarRef/Thy/document/Proof.tex Tue Jun 10 19:15:16 2008 +0200 +++ b/doc-src/IsarRef/Thy/document/Proof.tex Tue Jun 10 19:15:17 2008 +0200 @@ -349,7 +349,7 @@ meaning: (1) during the of this claim they refer to the the local context introductions, (2) the resulting rule is annotated accordingly to support symbolic case splits when used with the - \indexref{}{method}{cases}\hyperlink{method.cases}{\mbox{\isa{cases}}} method (cf. \secref{sec:cases-induct}). + \indexref{}{method}{cases}\hyperlink{method.cases}{\mbox{\isa{cases}}} method (cf.\ \secref{sec:cases-induct}). \medskip