doc-src/IsarRef/Thy/document/Misc.tex
author wenzelm
Mon, 02 Jun 2008 23:38:28 +0200
changeset 27052 5c48cecb981b
child 27054 f1ef0973d0a8
permissions -rw-r--r--
updated generated file;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
27052
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
     1
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
     2
\begin{isabellebody}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
     3
\def\isabellecontext{Misc}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
     4
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
     5
\isadelimtheory
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
     6
\isanewline
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
     7
\isanewline
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
     8
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
     9
\endisadelimtheory
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    10
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    11
\isatagtheory
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    12
\isacommand{theory}\isamarkupfalse%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    13
\ Misc\isanewline
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    14
\isakeyword{imports}\ Main\isanewline
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    15
\isakeyword{begin}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    16
\endisatagtheory
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    17
{\isafoldtheory}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    18
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    19
\isadelimtheory
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    20
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    21
\endisadelimtheory
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    22
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    23
\isamarkupchapter{Other commands \label{ch:pure-syntax}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    24
}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    25
\isamarkuptrue%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    26
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    27
\isamarkupsection{Diagnostics%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    28
}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    29
\isamarkuptrue%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    30
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    31
\begin{isamarkuptext}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    32
\begin{matharray}{rcl}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    33
    \indexdef{}{command}{pr}\hypertarget{command.pr}{\hyperlink{command.pr}{\mbox{\isa{\isacommand{pr}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{\cdot} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    34
    \indexdef{}{command}{thm}\hypertarget{command.thm}{\hyperlink{command.thm}{\mbox{\isa{\isacommand{thm}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{theory~|~proof} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    35
    \indexdef{}{command}{term}\hypertarget{command.term}{\hyperlink{command.term}{\mbox{\isa{\isacommand{term}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{theory~|~proof} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    36
    \indexdef{}{command}{prop}\hypertarget{command.prop}{\hyperlink{command.prop}{\mbox{\isa{\isacommand{prop}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{theory~|~proof} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    37
    \indexdef{}{command}{typ}\hypertarget{command.typ}{\hyperlink{command.typ}{\mbox{\isa{\isacommand{typ}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{theory~|~proof} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    38
    \indexdef{}{command}{prf}\hypertarget{command.prf}{\hyperlink{command.prf}{\mbox{\isa{\isacommand{prf}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{theory~|~proof} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    39
    \indexdef{}{command}{full\_prf}\hypertarget{command.full-prf}{\hyperlink{command.full-prf}{\mbox{\isa{\isacommand{full{\isacharunderscore}prf}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{theory~|~proof} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    40
  \end{matharray}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    41
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    42
  These diagnostic commands assist interactive development.  Note that
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    43
  \hyperlink{command.undo}{\mbox{\isa{\isacommand{undo}}}} does not apply here, the theory or proof
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    44
  configuration is not changed.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    45
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    46
  \begin{rail}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    47
    'pr' modes? nat? (',' nat)?
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    48
    ;
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    49
    'thm' modes? thmrefs
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    50
    ;
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    51
    'term' modes? term
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    52
    ;
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    53
    'prop' modes? prop
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    54
    ;
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    55
    'typ' modes? type
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    56
    ;
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    57
    'prf' modes? thmrefs?
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    58
    ;
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    59
    'full\_prf' modes? thmrefs?
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    60
    ;
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    61
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    62
    modes: '(' (name + ) ')'
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    63
    ;
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    64
  \end{rail}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    65
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    66
  \begin{descr}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    67
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    68
  \item [\hyperlink{command.pr}{\mbox{\isa{\isacommand{pr}}}}~\isa{{\isachardoublequote}goals{\isacharcomma}\ prems{\isachardoublequote}}] prints the current
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    69
  proof state (if present), including the proof context, current facts
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    70
  and goals.  The optional limit arguments affect the number of goals
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    71
  and premises to be displayed, which is initially 10 for both.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    72
  Omitting limit values leaves the current setting unchanged.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    73
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    74
  \item [\hyperlink{command.thm}{\mbox{\isa{\isacommand{thm}}}}~\isa{{\isachardoublequote}a\isactrlsub {\isadigit{1}}\ {\isasymdots}\ a\isactrlsub n{\isachardoublequote}}] retrieves
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    75
  theorems from the current theory or proof context.  Note that any
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    76
  attributes included in the theorem specifications are applied to a
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    77
  temporary context derived from the current theory or proof; the
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    78
  result is discarded, i.e.\ attributes involved in \isa{{\isachardoublequote}a\isactrlsub {\isadigit{1}}{\isacharcomma}\ {\isasymdots}{\isacharcomma}\ a\isactrlsub n{\isachardoublequote}} do not have any permanent effect.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    79
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    80
  \item [\hyperlink{command.term}{\mbox{\isa{\isacommand{term}}}}~\isa{t} and \hyperlink{command.prop}{\mbox{\isa{\isacommand{prop}}}}~\isa{{\isasymphi}}]
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    81
  read, type-check and print terms or propositions according to the
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    82
  current theory or proof context; the inferred type of \isa{t} is
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    83
  output as well.  Note that these commands are also useful in
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    84
  inspecting the current environment of term abbreviations.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    85
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    86
  \item [\hyperlink{command.typ}{\mbox{\isa{\isacommand{typ}}}}~\isa{{\isasymtau}}] reads and prints types of the
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    87
  meta-logic according to the current theory or proof context.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    88
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    89
  \item [\hyperlink{command.prf}{\mbox{\isa{\isacommand{prf}}}}] displays the (compact) proof term of the
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    90
  current proof state (if present), or of the given theorems. Note
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    91
  that this requires proof terms to be switched on for the current
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    92
  object logic (see the ``Proof terms'' section of the Isabelle
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    93
  reference manual for information on how to do this).
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    94
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    95
  \item [\hyperlink{command.full-prf}{\mbox{\isa{\isacommand{full{\isacharunderscore}prf}}}}] is like \hyperlink{command.prf}{\mbox{\isa{\isacommand{prf}}}}, but displays
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    96
  the full proof term, i.e.\ also displays information omitted in the
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    97
  compact proof term, which is denoted by ``\isa{{\isacharunderscore}}'' placeholders
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    98
  there.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
    99
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   100
  \end{descr}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   101
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   102
  All of the diagnostic commands above admit a list of \isa{modes}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   103
  to be specified, which is appended to the current print mode (see
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   104
  also \cite{isabelle-ref}).  Thus the output behavior may be modified
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   105
  according particular print mode features.  For example, \hyperlink{command.pr}{\mbox{\isa{\isacommand{pr}}}}~\isa{{\isachardoublequote}{\isacharparenleft}latex\ xsymbols\ symbols{\isacharparenright}{\isachardoublequote}} would print the current
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   106
  proof state with mathematical symbols and special characters
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   107
  represented in {\LaTeX} source, according to the Isabelle style
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   108
  \cite{isabelle-sys}.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   109
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   110
  Note that antiquotations (cf.\ \secref{sec:antiq}) provide a more
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   111
  systematic way to include formal items into the printed text
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   112
  document.%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   113
\end{isamarkuptext}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   114
\isamarkuptrue%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   115
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   116
\isamarkupsection{Inspecting the context%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   117
}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   118
\isamarkuptrue%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   119
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   120
\begin{isamarkuptext}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   121
\begin{matharray}{rcl}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   122
    \indexdef{}{command}{print\_commands}\hypertarget{command.print-commands}{\hyperlink{command.print-commands}{\mbox{\isa{\isacommand{print{\isacharunderscore}commands}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{\cdot} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   123
    \indexdef{}{command}{print\_theory}\hypertarget{command.print-theory}{\hyperlink{command.print-theory}{\mbox{\isa{\isacommand{print{\isacharunderscore}theory}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{theory~|~proof} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   124
    \indexdef{}{command}{print\_syntax}\hypertarget{command.print-syntax}{\hyperlink{command.print-syntax}{\mbox{\isa{\isacommand{print{\isacharunderscore}syntax}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{theory~|~proof} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   125
    \indexdef{}{command}{print\_methods}\hypertarget{command.print-methods}{\hyperlink{command.print-methods}{\mbox{\isa{\isacommand{print{\isacharunderscore}methods}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{theory~|~proof} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   126
    \indexdef{}{command}{print\_attributes}\hypertarget{command.print-attributes}{\hyperlink{command.print-attributes}{\mbox{\isa{\isacommand{print{\isacharunderscore}attributes}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{theory~|~proof} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   127
    \indexdef{}{command}{print\_theorems}\hypertarget{command.print-theorems}{\hyperlink{command.print-theorems}{\mbox{\isa{\isacommand{print{\isacharunderscore}theorems}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{theory~|~proof} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   128
    \indexdef{}{command}{find\_theorems}\hypertarget{command.find-theorems}{\hyperlink{command.find-theorems}{\mbox{\isa{\isacommand{find{\isacharunderscore}theorems}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{theory~|~proof} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   129
    \indexdef{}{command}{thm\_deps}\hypertarget{command.thm-deps}{\hyperlink{command.thm-deps}{\mbox{\isa{\isacommand{thm{\isacharunderscore}deps}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{theory~|~proof} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   130
    \indexdef{}{command}{print\_facts}\hypertarget{command.print-facts}{\hyperlink{command.print-facts}{\mbox{\isa{\isacommand{print{\isacharunderscore}facts}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{proof} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   131
    \indexdef{}{command}{print\_binds}\hypertarget{command.print-binds}{\hyperlink{command.print-binds}{\mbox{\isa{\isacommand{print{\isacharunderscore}binds}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{proof} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   132
  \end{matharray}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   133
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   134
  \begin{rail}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   135
    'print\_theory' ( '!'?)
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   136
    ;
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   137
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   138
    'find\_theorems' (('(' (nat)? ('with\_dups')? ')')?) (criterion *)
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   139
    ;
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   140
    criterion: ('-'?) ('name' ':' nameref | 'intro' | 'elim' | 'dest' |
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   141
      'simp' ':' term | term)
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   142
    ;
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   143
    'thm\_deps' thmrefs
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   144
    ;
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   145
  \end{rail}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   146
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   147
  These commands print certain parts of the theory and proof context.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   148
  Note that there are some further ones available, such as for the set
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   149
  of rules declared for simplifications.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   150
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   151
  \begin{descr}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   152
  
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   153
  \item [\hyperlink{command.print-commands}{\mbox{\isa{\isacommand{print{\isacharunderscore}commands}}}}] prints Isabelle's outer theory
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   154
  syntax, including keywords and command.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   155
  
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   156
  \item [\hyperlink{command.print-theory}{\mbox{\isa{\isacommand{print{\isacharunderscore}theory}}}}] prints the main logical content of
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   157
  the theory context; the ``\isa{{\isachardoublequote}{\isacharbang}{\isachardoublequote}}'' option indicates extra
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   158
  verbosity.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   159
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   160
  \item [\hyperlink{command.print-syntax}{\mbox{\isa{\isacommand{print{\isacharunderscore}syntax}}}}] prints the inner syntax of types
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   161
  and terms, depending on the current context.  The output can be very
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   162
  verbose, including grammar tables and syntax translation rules.  See
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   163
  \cite[\S7, \S8]{isabelle-ref} for further information on Isabelle's
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   164
  inner syntax.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   165
  
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   166
  \item [\hyperlink{command.print-methods}{\mbox{\isa{\isacommand{print{\isacharunderscore}methods}}}}] prints all proof methods
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   167
  available in the current theory context.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   168
  
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   169
  \item [\hyperlink{command.print-attributes}{\mbox{\isa{\isacommand{print{\isacharunderscore}attributes}}}}] prints all attributes
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   170
  available in the current theory context.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   171
  
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   172
  \item [\hyperlink{command.print-theorems}{\mbox{\isa{\isacommand{print{\isacharunderscore}theorems}}}}] prints theorems resulting from
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   173
  the last command.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   174
  
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   175
  \item [\hyperlink{command.find-theorems}{\mbox{\isa{\isacommand{find{\isacharunderscore}theorems}}}}~\isa{criteria}] retrieves facts
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   176
  from the theory or proof context matching all of given search
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   177
  criteria.  The criterion \isa{{\isachardoublequote}name{\isacharcolon}\ p{\isachardoublequote}} selects all theorems
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   178
  whose fully qualified name matches pattern \isa{p}, which may
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   179
  contain ``\isa{{\isachardoublequote}{\isacharasterisk}{\isachardoublequote}}'' wildcards.  The criteria \isa{intro},
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   180
  \isa{elim}, and \isa{dest} select theorems that match the
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   181
  current goal as introduction, elimination or destruction rules,
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   182
  respectively.  The criterion \isa{{\isachardoublequote}simp{\isacharcolon}\ t{\isachardoublequote}} selects all rewrite
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   183
  rules whose left-hand side matches the given term.  The criterion
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   184
  term \isa{t} selects all theorems that contain the pattern \isa{t} -- as usual, patterns may contain occurrences of the dummy
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   185
  ``\isa{{\isacharunderscore}}'', schematic variables, and type constraints.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   186
  
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   187
  Criteria can be preceded by ``\isa{{\isachardoublequote}{\isacharminus}{\isachardoublequote}}'' to select theorems that
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   188
  do \emph{not} match. Note that giving the empty list of criteria
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   189
  yields \emph{all} currently known facts.  An optional limit for the
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   190
  number of printed facts may be given; the default is 40.  By
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   191
  default, duplicates are removed from the search result. Use
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   192
  \isa{with{\isacharunderscore}dups} to display duplicates.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   193
  
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   194
  \item [\hyperlink{command.thm-deps}{\mbox{\isa{\isacommand{thm{\isacharunderscore}deps}}}}~\isa{{\isachardoublequote}a\isactrlsub {\isadigit{1}}\ {\isasymdots}\ a\isactrlsub n{\isachardoublequote}}]
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   195
  visualizes dependencies of facts, using Isabelle's graph browser
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   196
  tool (see also \cite{isabelle-sys}).
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   197
  
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   198
  \item [\hyperlink{command.print-facts}{\mbox{\isa{\isacommand{print{\isacharunderscore}facts}}}}] prints all local facts of the
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   199
  current context, both named and unnamed ones.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   200
  
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   201
  \item [\hyperlink{command.print-binds}{\mbox{\isa{\isacommand{print{\isacharunderscore}binds}}}}] prints all term abbreviations
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   202
  present in the context.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   203
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   204
  \end{descr}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   205
\end{isamarkuptext}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   206
\isamarkuptrue%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   207
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   208
\isamarkupsection{History commands \label{sec:history}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   209
}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   210
\isamarkuptrue%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   211
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   212
\begin{isamarkuptext}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   213
\begin{matharray}{rcl}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   214
    \indexdef{}{command}{undo}\hypertarget{command.undo}{\hyperlink{command.undo}{\mbox{\isa{\isacommand{undo}}}}}^{{ * }{ * }} & : & \isarkeep{\cdot} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   215
    \indexdef{}{command}{redo}\hypertarget{command.redo}{\hyperlink{command.redo}{\mbox{\isa{\isacommand{redo}}}}}^{{ * }{ * }} & : & \isarkeep{\cdot} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   216
    \indexdef{}{command}{kill}\hypertarget{command.kill}{\hyperlink{command.kill}{\mbox{\isa{\isacommand{kill}}}}}^{{ * }{ * }} & : & \isarkeep{\cdot} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   217
  \end{matharray}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   218
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   219
  The Isabelle/Isar top-level maintains a two-stage history, for
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   220
  theory and proof state transformation.  Basically, any command can
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   221
  be undone using \hyperlink{command.undo}{\mbox{\isa{\isacommand{undo}}}}, excluding mere diagnostic
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   222
  elements.  Its effect may be revoked via \hyperlink{command.redo}{\mbox{\isa{\isacommand{redo}}}}, unless
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   223
  the corresponding \hyperlink{command.undo}{\mbox{\isa{\isacommand{undo}}}} step has crossed the beginning
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   224
  of a proof or theory.  The \hyperlink{command.kill}{\mbox{\isa{\isacommand{kill}}}} command aborts the
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   225
  current history node altogether, discontinuing a proof or even the
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   226
  whole theory.  This operation is \emph{not} undo-able.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   227
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   228
  \begin{warn}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   229
    History commands should never be used with user interfaces such as
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   230
    Proof~General \cite{proofgeneral,Aspinall:TACAS:2000}, which takes
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   231
    care of stepping forth and back itself.  Interfering by manual
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   232
    \hyperlink{command.undo}{\mbox{\isa{\isacommand{undo}}}}, \hyperlink{command.redo}{\mbox{\isa{\isacommand{redo}}}}, or even \hyperlink{command.kill}{\mbox{\isa{\isacommand{kill}}}}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   233
    commands would quickly result in utter confusion.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   234
  \end{warn}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   235
\end{isamarkuptext}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   236
\isamarkuptrue%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   237
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   238
\isamarkupsection{System operations%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   239
}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   240
\isamarkuptrue%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   241
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   242
\begin{isamarkuptext}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   243
\begin{matharray}{rcl}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   244
    \indexdef{}{command}{cd}\hypertarget{command.cd}{\hyperlink{command.cd}{\mbox{\isa{\isacommand{cd}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{\cdot} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   245
    \indexdef{}{command}{pwd}\hypertarget{command.pwd}{\hyperlink{command.pwd}{\mbox{\isa{\isacommand{pwd}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{\cdot} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   246
    \indexdef{}{command}{use\_thy}\hypertarget{command.use-thy}{\hyperlink{command.use-thy}{\mbox{\isa{\isacommand{use{\isacharunderscore}thy}}}}}\isa{{\isachardoublequote}\isactrlsup {\isacharasterisk}{\isachardoublequote}} & : & \isarkeep{\cdot} \\
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   247
  \end{matharray}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   248
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   249
  \begin{rail}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   250
    ('cd' | 'use\_thy' | 'update\_thy') name
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   251
    ;
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   252
  \end{rail}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   253
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   254
  \begin{descr}
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   255
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   256
  \item [\hyperlink{command.cd}{\mbox{\isa{\isacommand{cd}}}}~\isa{path}] changes the current directory
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   257
  of the Isabelle process.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   258
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   259
  \item [\hyperlink{command.pwd}{\mbox{\isa{\isacommand{pwd}}}}] prints the current working directory.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   260
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   261
  \item [\hyperlink{command.use-thy}{\mbox{\isa{\isacommand{use{\isacharunderscore}thy}}}}~\isa{A}] preload theory \isa{A}.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   262
  These system commands are scarcely used when working interactively,
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   263
  since loading of theories is done automatically as required.
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   264
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   265
  \end{descr}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   266
\end{isamarkuptext}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   267
\isamarkuptrue%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   268
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   269
\isadelimtheory
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   270
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   271
\endisadelimtheory
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   272
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   273
\isatagtheory
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   274
\isacommand{end}\isamarkupfalse%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   275
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   276
\endisatagtheory
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   277
{\isafoldtheory}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   278
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   279
\isadelimtheory
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   280
%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   281
\endisadelimtheory
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   282
\isanewline
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   283
\end{isabellebody}%
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   284
%%% Local Variables:
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   285
%%% mode: latex
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   286
%%% TeX-master: "root"
5c48cecb981b updated generated file;
wenzelm
parents:
diff changeset
   287
%%% End: