doc-src/System/Thy/document/Misc.tex
author wenzelm
Fri, 03 Oct 2008 21:06:39 +0200
changeset 28491 c5420429a5aa
parent 28253 04fc1ba19f93
child 28505 f98751bd715f
permissions -rw-r--r--
plain process_id function;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     1
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     2
\begin{isabellebody}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     3
\def\isabellecontext{Misc}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     4
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     5
\isadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     6
\isanewline
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     7
\isanewline
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     8
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     9
\endisadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    10
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    11
\isatagtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    12
\isacommand{theory}\isamarkupfalse%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    13
\ Misc\isanewline
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    14
\isakeyword{imports}\ Pure\isanewline
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    15
\isakeyword{begin}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    16
\endisatagtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    17
{\isafoldtheory}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    18
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    19
\isadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    20
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    21
\endisadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    22
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    23
\isamarkupchapter{Miscellaneous tools \label{ch:tools}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    24
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    25
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    26
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    27
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    28
Subsequently we describe various Isabelle related utilities, given
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    29
  in alphabetical order.%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    30
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    31
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    32
%
28248
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    33
\isamarkupsection{The Proof General / Emacs interface%
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    34
}
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    35
\isamarkuptrue%
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    36
%
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    37
\begin{isamarkuptext}%
28253
wenzelm
parents: 28248
diff changeset
    38
The \indexdef{}{tool}{emacs}\hypertarget{tool.emacs}{\hyperlink{tool.emacs}{\mbox{\isa{\isatt{emacs}}}}} tool invokes a version of Emacs and Proof
28248
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    39
  General within the regular Isabelle settings environment
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    40
  (\secref{sec:settings}).  This is more robust than starting Emacs
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    41
  separately, loading the Proof General lisp files, and then
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    42
  attempting to start Isabelle with dynamic \hyperlink{setting.PATH}{\mbox{\isa{\isatt{PATH}}}} lookup
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    43
  etc.
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    44
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    45
  The actual interface script is part of the Proof General
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    46
  distribution~\cite{proofgeneral}; its usage depends on the
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    47
  particular version.  There are some options available, such as
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    48
  \verb|-l| for passing the logic image to be used by default,
28253
wenzelm
parents: 28248
diff changeset
    49
  or \verb|-m| to tune the standard print mode.  The following
wenzelm
parents: 28248
diff changeset
    50
  Isabelle settings are particularly important for Proof General:
28248
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    51
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    52
  \begin{description}
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    53
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    54
  \item[\indexdef{}{setting}{PROOFGENERAL\_HOME}\hypertarget{setting.PROOFGENERAL-HOME}{\hyperlink{setting.PROOFGENERAL-HOME}{\mbox{\isa{\isatt{PROOFGENERAL{\isacharunderscore}HOME}}}}}] points to the main
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    55
  installation directory of the Proof General distribution.  The
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    56
  default settings try to locate this in a number of standard places,
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    57
  notably \verb|$ISABELLE_HOME/contrib/ProofGeneral|.
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    58
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    59
  \item[\indexdef{}{setting}{PROOFGENERAL\_OPTIONS}\hypertarget{setting.PROOFGENERAL-OPTIONS}{\hyperlink{setting.PROOFGENERAL-OPTIONS}{\mbox{\isa{\isatt{PROOFGENERAL{\isacharunderscore}OPTIONS}}}}}] is implicitly prefixed to
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    60
  the command line of any invocation of the Proof General \verb|interface| script.
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    61
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    62
  \item[\indexdef{}{setting}{XSYMBOL\_INSTALLFONTS}\hypertarget{setting.XSYMBOL-INSTALLFONTS}{\hyperlink{setting.XSYMBOL-INSTALLFONTS}{\mbox{\isa{\isatt{XSYMBOL{\isacharunderscore}INSTALLFONTS}}}}}] may contain a small shell
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    63
  script to install the X11 fonts required for the X-Symbols mode of
28253
wenzelm
parents: 28248
diff changeset
    64
  Proof General.  This is only relevant if the X11 display server runs
28248
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    65
  on a different machine than the Emacs application, with a different
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    66
  file-system view on the Proof General installation.  Under most
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    67
  circumstances Proof General is able to refer to the font files that
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    68
  are part of its distribution.
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    69
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    70
  \end{description}%
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    71
\end{isamarkuptext}%
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    72
\isamarkuptrue%
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28238
diff changeset
    73
%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    74
\isamarkupsection{Displaying documents%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    75
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    76
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    77
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    78
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    79
The \indexdef{}{tool}{display}\hypertarget{tool.display}{\hyperlink{tool.display}{\mbox{\isa{\isatt{display}}}}} utility displays documents in DVI or PDF
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    80
  format:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    81
\begin{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    82
Usage: display [OPTIONS] FILE
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    83
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    84
  Options are:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    85
    -c           cleanup -- remove FILE after use
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    86
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    87
  Display document FILE (in DVI format).
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    88
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    89
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    90
  \medskip The \verb|-c| option causes the input file to be
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    91
  removed after use.  The program for viewing \verb|dvi| files is
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    92
  determined by the \hyperlink{setting.DVI-VIEWER}{\mbox{\isa{\isatt{DVI{\isacharunderscore}VIEWER}}}} setting.%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    93
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    94
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    95
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    96
\isamarkupsection{Viewing documentation \label{sec:tool-doc}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    97
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    98
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    99
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   100
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   101
The \indexdef{}{tool}{doc}\hypertarget{tool.doc}{\hyperlink{tool.doc}{\mbox{\isa{\isatt{doc}}}}} utility displays online documentation:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   102
\begin{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   103
Usage: doc [DOC]
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   104
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   105
  View Isabelle documentation DOC, or show list of available documents.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   106
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   107
  If called without arguments, it lists all available documents. Each
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   108
  line starts with an identifier, followed by a short description. Any
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   109
  of these identifiers may be specified as the first argument in order
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   110
  to have the corresponding document displayed.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   111
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   112
  \medskip The \hyperlink{setting.ISABELLE-DOCS}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}DOCS}}}} setting specifies the list of
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   113
  directories (separated by colons) to be scanned for documentations.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   114
  The program for viewing \verb|dvi| files is determined by the
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   115
  \hyperlink{setting.DVI-VIEWER}{\mbox{\isa{\isatt{DVI{\isacharunderscore}VIEWER}}}} setting.%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   116
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   117
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   118
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   119
\isamarkupsection{Getting logic images%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   120
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   121
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   122
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   123
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   124
The \indexdef{}{tool}{findlogics}\hypertarget{tool.findlogics}{\hyperlink{tool.findlogics}{\mbox{\isa{\isatt{findlogics}}}}} utility traverses all directories
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   125
  specified in \hyperlink{setting.ISABELLE-PATH}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}PATH}}}}, looking for Isabelle logic
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   126
  images. Its usage is:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   127
\begin{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   128
Usage: findlogics
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   129
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   130
  Collect heap file names from ISABELLE_PATH.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   131
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   132
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   133
  The base names of all files found on the path are printed --- sorted
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   134
  and with duplicates removed. Also note that lookup in \hyperlink{setting.ISABELLE-PATH}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}PATH}}}} includes the current values of \hyperlink{setting.ML-SYSTEM}{\mbox{\isa{\isatt{ML{\isacharunderscore}SYSTEM}}}}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   135
  and \hyperlink{setting.ML-PLATFORM}{\mbox{\isa{\isatt{ML{\isacharunderscore}PLATFORM}}}}. Thus switching to another ML compiler
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   136
  may change the set of logic images available.%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   137
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   138
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   139
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   140
\isamarkupsection{Inspecting the settings environment \label{sec:tool-getenv}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   141
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   142
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   143
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   144
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   145
The Isabelle settings environment --- as provided by the
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   146
  site-default and user-specific settings files --- can be inspected
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   147
  with the \indexdef{}{tool}{getenv}\hypertarget{tool.getenv}{\hyperlink{tool.getenv}{\mbox{\isa{\isatt{getenv}}}}} utility:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   148
\begin{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   149
Usage: getenv [OPTIONS] [VARNAMES ...]
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   150
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   151
  Options are:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   152
    -a           display complete environment
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   153
    -b           print values only (doesn't work for -a)
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   154
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   155
  Get value of VARNAMES from the Isabelle settings.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   156
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   157
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   158
  With the \verb|-a| option, one may inspect the full process
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   159
  environment that Isabelle related programs are run in. This usually
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   160
  contains much more variables than are actually Isabelle settings.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   161
  Normally, output is a list of lines of the form \isa{name}\verb|=|\isa{value}. The \verb|-b| option
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   162
  causes only the values to be printed.%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   163
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   164
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   165
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   166
\isamarkupsubsubsection{Examples%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   167
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   168
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   169
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   170
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   171
Get the ML system name and the location where the compiler binaries
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   172
  are supposed to reside as follows:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   173
\begin{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   174
isatool getenv ML_SYSTEM ML_HOME
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   175
{\out ML_SYSTEM=polyml}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   176
{\out ML_HOME=/usr/share/polyml/x86-linux}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   177
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   178
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   179
  The next one peeks at the output directory for Isabelle logic
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   180
  images:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   181
\begin{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   182
isatool getenv -b ISABELLE_OUTPUT
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   183
{\out /home/me/isabelle/heaps/polyml_x86-linux}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   184
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   185
  Here we have used the \verb|-b| option to suppress the
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   186
  \verb|ISABELLE_OUTPUT=| prefix.  The value above is what
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   187
  became of the following assignment in the default settings file:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   188
\begin{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   189
ISABELLE_OUTPUT="\$ISABELLE_HOME_USER/heaps"
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   190
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   191
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   192
  Note how the \hyperlink{setting.ML-IDENTIFIER}{\mbox{\isa{\isatt{ML{\isacharunderscore}IDENTIFIER}}}} value got appended
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   193
  automatically to each path component. This is a special feature of
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   194
  \hyperlink{setting.ISABELLE-OUTPUT}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}OUTPUT}}}}.%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   195
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   196
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   197
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   198
\isamarkupsection{Installing standalone Isabelle executables \label{sec:tool-install}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   199
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   200
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   201
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   202
\begin{isamarkuptext}%
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   203
By default, the Isabelle binaries (\hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isacharminus}process}}}},
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   204
  \hyperlink{executable.isatool}{\mbox{\isa{\isatt{isatool}}}} etc.) are just run from their location within
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   205
  the distribution directory, probably indirectly by the shell through
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   206
  its \hyperlink{setting.PATH}{\mbox{\isa{\isatt{PATH}}}}.  Other schemes of installation are supported by
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   207
  the \indexdef{}{tool}{install}\hypertarget{tool.install}{\hyperlink{tool.install}{\mbox{\isa{\isatt{install}}}}} utility:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   208
\begin{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   209
Usage: install [OPTIONS]
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   210
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   211
  Options are:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   212
    -d DISTDIR   use DISTDIR as Isabelle distribution
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   213
                 (default ISABELLE_HOME)
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   214
    -p DIR       install standalone binaries in DIR
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   215
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   216
  Install Isabelle executables with absolute references to the current
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   217
  distribution directory.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   218
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   219
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   220
  The \verb|-d| option overrides the current Isabelle
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   221
  distribution directory as determined by \hyperlink{setting.ISABELLE-HOME}{\mbox{\isa{\isatt{ISABELLE{\isacharunderscore}HOME}}}}.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   222
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   223
  The \verb|-p| option installs executable wrapper scripts for
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   224
  \hyperlink{executable.isabelle-process}{\mbox{\isa{\isatt{isabelle{\isacharminus}process}}}}, \hyperlink{executable.isatool}{\mbox{\isa{\isatt{isatool}}}},
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   225
  \hyperlink{executable.Isabelle}{\mbox{\isa{\isatt{Isabelle}}}}, containing proper absolute references to the
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   226
  Isabelle distribution directory.  A typical \verb|DIR|
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   227
  specification would be some directory expected to be in the shell's
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   228
  \hyperlink{setting.PATH}{\mbox{\isa{\isatt{PATH}}}}, such as \verb|/usr/local/bin|.  It is
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   229
  important to note that a plain manual copy of the original Isabelle
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   230
  executables does not work, since it disrupts the integrity of the
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   231
  Isabelle distribution.%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   232
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   233
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   234
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   235
\isamarkupsection{Creating instances of the Isabelle logo%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   236
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   237
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   238
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   239
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   240
The \indexdef{}{tool}{logo}\hypertarget{tool.logo}{\hyperlink{tool.logo}{\mbox{\isa{\isatt{logo}}}}} utility creates any instance of the generic
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   241
  Isabelle logo as an Encapsuled Postscript file (EPS):
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   242
\begin{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   243
Usage: logo [OPTIONS] NAME
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   244
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   245
  Create instance NAME of the Isabelle logo (as EPS).
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   246
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   247
  Options are:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   248
    -o OUTFILE   set output file (default determined from NAME)
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   249
    -q           quiet mode
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   250
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   251
  You are encouraged to use this to create a derived logo for your
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   252
  Isabelle project.  For example, \verb|isatool| \hyperlink{tool.logo}{\mbox{\isa{\isatt{logo}}}}~\verb|Bali| creates \verb|isabelle_bali.eps|.%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   253
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   254
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   255
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   256
\isamarkupsection{Isabelle's version of make \label{sec:tool-make}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   257
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   258
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   259
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   260
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   261
The Isabelle \indexdef{}{tool}{make}\hypertarget{tool.make}{\hyperlink{tool.make}{\mbox{\isa{\isatt{make}}}}} utility is a very simple wrapper for
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   262
  ordinary Unix \hyperlink{executable.make}{\mbox{\isa{\isatt{make}}}}:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   263
\begin{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   264
Usage: make [ARGS ...]
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   265
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   266
  Compile the logic in current directory using IsaMakefile.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   267
  ARGS are directly passed to the system make program.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   268
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   269
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   270
  Note that the Isabelle settings environment is also active. Thus one
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   271
  may refer to its values within the \verb|IsaMakefile|, e.g.\
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   272
  \verb|$(ISABELLE_OUTPUT)|. Furthermore, programs started from
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   273
  the make file also inherit this environment.  Typically, \verb|IsaMakefile|s defer the real work to the \indexref{}{tool}{usedir}\hyperlink{tool.usedir}{\mbox{\isa{\isatt{usedir}}}} utility.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   274
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   275
  \medskip The basic \verb|IsaMakefile| convention is that the
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   276
  default target builds the actual logic, including its parents if
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   277
  appropriate.  The \verb|images| target is intended to build all
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   278
  local logic images, while the \verb|test| target shall build
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   279
  all related examples.  The \verb|all| target shall do
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   280
  \verb|images| and \verb|test|.%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   281
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   282
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   283
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   284
\isamarkupsubsubsection{Examples%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   285
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   286
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   287
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   288
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   289
Refer to the \verb|IsaMakefile|s of the Isabelle distribution's
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   290
  object-logics as a model for your own developments.  For example,
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   291
  see \hyperlink{file.~~/src/FOL/IsaMakefile}{\mbox{\isa{\isatt{{\isachartilde}{\isachartilde}{\isacharslash}src{\isacharslash}FOL{\isacharslash}IsaMakefile}}}}.%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   292
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   293
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   294
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   295
\isamarkupsection{Make all logics%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   296
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   297
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   298
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   299
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   300
The \indexdef{}{tool}{makeall}\hypertarget{tool.makeall}{\hyperlink{tool.makeall}{\mbox{\isa{\isatt{makeall}}}}} utility applies Isabelle make to all logic
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   301
  directories of the distribution:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   302
\begin{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   303
Usage: makeall [ARGS ...]
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   304
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   305
  Apply isatool make to all logics (passing ARGS).
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   306
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   307
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   308
  The arguments \verb|ARGS| are just passed verbatim to each
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   309
  \hyperlink{tool.make}{\mbox{\isa{\isatt{make}}}} invocation.%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   310
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   311
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   312
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   313
\isamarkupsection{Printing documents%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   314
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   315
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   316
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   317
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   318
The \indexdef{}{tool}{print}\hypertarget{tool.print}{\hyperlink{tool.print}{\mbox{\isa{\isatt{print}}}}} utility prints documents:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   319
\begin{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   320
Usage: print [OPTIONS] FILE
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   321
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   322
  Options are:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   323
    -c           cleanup -- remove FILE after use
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   324
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   325
  Print document FILE.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   326
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   327
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   328
  The \verb|-c| option causes the input file to be removed
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   329
  after use.  The printer spool command is determined by the \hyperlink{setting.PRINT-COMMAND}{\mbox{\isa{\isatt{PRINT{\isacharunderscore}COMMAND}}}} setting.%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   330
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   331
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   332
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   333
\isamarkupsection{Run Isabelle with plain tty interaction \label{sec:tool-tty}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   334
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   335
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   336
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   337
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   338
The \indexdef{}{tool}{tty}\hypertarget{tool.tty}{\hyperlink{tool.tty}{\mbox{\isa{\isatt{tty}}}}} utility runs the Isabelle process interactively
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   339
  within a plain terminal session:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   340
\begin{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   341
Usage: tty [OPTIONS]
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   342
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   343
  Options are:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   344
    -l NAME      logic image name (default ISABELLE_LOGIC)
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   345
    -m MODE      add print mode for output
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   346
    -p NAME      line editor program name (default ISABELLE_LINE_EDITOR)
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   347
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   348
  Run Isabelle process with plain tty interaction, and optional line editor.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   349
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   350
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   351
  The \verb|-l| option specifies the logic image.  The
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   352
  \verb|-m| option specifies additional print modes.  The The
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   353
  \verb|-p| option specifies an alternative line editor (such
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   354
  as the \indexdef{}{executable}{rlwrap}\hypertarget{executable.rlwrap}{\hyperlink{executable.rlwrap}{\mbox{\isa{\isatt{rlwrap}}}}} wrapper for GNU readline); the
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   355
  fall-back is to use raw standard input.%
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   356
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   357
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   358
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   359
\isamarkupsection{Remove awkward symbol names from theory sources%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   360
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   361
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   362
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   363
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   364
The \indexdef{}{tool}{unsymbolize}\hypertarget{tool.unsymbolize}{\hyperlink{tool.unsymbolize}{\mbox{\isa{\isatt{unsymbolize}}}}} utility tunes Isabelle theory sources to
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   365
  improve readability for plain ASCII output (e.g.\ in email
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   366
  communication).  Most notably, \hyperlink{tool.unsymbolize}{\mbox{\isa{\isatt{unsymbolize}}}} replaces awkward
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   367
  arrow symbols such as \verb|\|\verb|<Longrightarrow>|
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   368
  by \verb|==>|.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   369
\begin{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   370
Usage: unsymbolize [FILES|DIRS...]
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   371
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   372
  Recursively find .thy/.ML files, removing unreadable symbol names.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   373
  Note: this is an ad-hoc script; there is no systematic way to replace
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   374
  symbols independently of the inner syntax of a theory!
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   375
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   376
  Renames old versions of FILES by appending "~~".
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   377
\end{ttbox}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   378
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   379
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   380
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   381
\isamarkupsection{Output the version identifier of the Isabelle distribution%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   382
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   383
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   384
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   385
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   386
The \indexdef{}{tool}{version}\hypertarget{tool.version}{\hyperlink{tool.version}{\mbox{\isa{\isatt{version}}}}} utility outputs the full version string of
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   387
  the Isabelle distribution being used, e.g.\ ``\verb|Isabelle2008: June 2008|.  There are no options nor arguments.%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   388
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   389
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   390
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   391
\isamarkupsection{Convert XML to YXML%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   392
}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   393
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   394
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   395
\begin{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   396
The \indexdef{}{tool}{yxml}\hypertarget{tool.yxml}{\hyperlink{tool.yxml}{\mbox{\isa{\isatt{yxml}}}}} tool converts a standard XML document (stdin)
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   397
  to the much simpler and more efficient YXML format of Isabelle
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   398
  (stdout).  The YXML format is defined as follows.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   399
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   400
  \begin{enumerate}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   401
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   402
  \item The encoding is always UTF-8.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   403
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   404
  \item Body text is represented verbatim (no escaping, no special
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   405
  treatment of white space, no named entities, no CDATA chunks, no
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   406
  comments).
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   407
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   408
  \item Markup elements are represented via ASCII control characters
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   409
  \isa{{\isachardoublequote}\isactrlbold X\ {\isacharequal}\ {\isadigit{5}}{\isachardoublequote}} and \isa{{\isachardoublequote}\isactrlbold Y\ {\isacharequal}\ {\isadigit{6}}{\isachardoublequote}} as follows:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   410
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   411
  \begin{tabular}{ll}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   412
    XML & YXML \\\hline
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   413
    \verb|<|\isa{{\isachardoublequote}name\ attribute{\isachardoublequote}}\verb|=|\isa{{\isachardoublequote}value\ {\isasymdots}{\isachardoublequote}}\verb|>| &
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   414
    \isa{{\isachardoublequote}\isactrlbold X\isactrlbold Yname\isactrlbold Yattribute{\isachardoublequote}}\verb|=|\isa{{\isachardoublequote}value{\isasymdots}\isactrlbold X{\isachardoublequote}} \\
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   415
    \verb|</|\isa{name}\verb|>| & \isa{{\isachardoublequote}\isactrlbold X\isactrlbold Y\isactrlbold X{\isachardoublequote}} \\
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   416
  \end{tabular}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   417
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   418
  There is no special case for empty body text, i.e.\ \verb|<foo/>| is treated like \verb|<foo></foo>|.  Also note that
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   419
  \isa{{\isachardoublequote}\isactrlbold X{\isachardoublequote}} and \isa{{\isachardoublequote}\isactrlbold Y{\isachardoublequote}} may never occur in
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   420
  well-formed XML documents.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   421
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   422
  \end{enumerate}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   423
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   424
  Parsing YXML is pretty straight-forward: split the text into chunks
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   425
  separated by \isa{{\isachardoublequote}\isactrlbold X{\isachardoublequote}}, then split each chunk into
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   426
  sub-chunks separated by \isa{{\isachardoublequote}\isactrlbold Y{\isachardoublequote}}.  Markup chunks start
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   427
  with an empty sub-chunk, and a second empty sub-chunk indicates
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   428
  close of an element.  Any other non-empty chunk consists of plain
28238
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   429
  text.  For example, see \hyperlink{file.~~/src/Pure/General/yxml.ML}{\mbox{\isa{\isatt{{\isachartilde}{\isachartilde}{\isacharslash}src{\isacharslash}Pure{\isacharslash}General{\isacharslash}yxml{\isachardot}ML}}}} or
398bf960d3d4 misc tuning and modernization;
wenzelm
parents: 28224
diff changeset
   430
  \hyperlink{file.~~/src/Pure/General/yxml.scala}{\mbox{\isa{\isatt{{\isachartilde}{\isachartilde}{\isacharslash}src{\isacharslash}Pure{\isacharslash}General{\isacharslash}yxml{\isachardot}scala}}}}.
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   431
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   432
  YXML documents may be detected quickly by checking that the first
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   433
  two characters are \isa{{\isachardoublequote}\isactrlbold X\isactrlbold Y{\isachardoublequote}}.%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   434
\end{isamarkuptext}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   435
\isamarkuptrue%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   436
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   437
\isadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   438
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   439
\endisadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   440
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   441
\isatagtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   442
\isacommand{end}\isamarkupfalse%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   443
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   444
\endisatagtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   445
{\isafoldtheory}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   446
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   447
\isadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   448
%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   449
\endisadelimtheory
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   450
\end{isabellebody}%
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   451
%%% Local Variables:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   452
%%% mode: latex
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   453
%%% TeX-master: "root"
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   454
%%% End: