src/Doc/System/Misc.thy
author wenzelm
Mon, 12 Oct 2015 17:11:17 +0200
changeset 61406 eb2463fc4d7b
parent 58618 782f0b662cae
child 61407 7ba7b8103565
permissions -rw-r--r--
more symbols;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     1
theory Misc
43564
9864182c6bad document antiquotations are managed as theory data, with proper name space and entity markup;
wenzelm
parents: 41512
diff changeset
     2
imports Base
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     3
begin
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     4
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
     5
chapter \<open>Miscellaneous tools \label{ch:tools}\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     6
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
     7
text \<open>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     8
  Subsequently we describe various Isabelle related utilities, given
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
     9
  in alphabetical order.
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
    10
\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    11
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
    12
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
    13
section \<open>Theory graph browser \label{sec:browse}\<close>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    14
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
    15
text \<open>The Isabelle graph browser is a general tool for visualizing
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    16
  dependency graphs.  Certain nodes of the graph (i.e.\ theories) can
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    17
  be grouped together in ``directories'', whose contents may be
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    18
  hidden, thus enabling the user to collapse irrelevant portions of
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    19
  information.  The browser is written in Java, it can be used both as
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
    20
  a stand-alone application and as an applet.\<close>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    21
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    22
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
    23
subsection \<open>Invoking the graph browser\<close>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    24
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
    25
text \<open>The stand-alone version of the graph browser is wrapped up as
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    26
  @{tool_def browser}:
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    27
\begin{ttbox}
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    28
Usage: isabelle browser [OPTIONS] [GRAPHFILE]
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    29
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    30
  Options are:
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    31
    -b           Admin/build only
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    32
    -c           cleanup -- remove GRAPHFILE after use
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    33
    -o FILE      output to FILE (ps, eps, pdf)
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    34
\end{ttbox}
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    35
  When no file name is specified, the browser automatically changes to
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    36
  the directory @{setting ISABELLE_BROWSER_INFO}.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    37
61406
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
    38
  \<^medskip>
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
    39
  The @{verbatim "-b"} option indicates that this is for
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    40
  administrative build only, i.e.\ no browser popup if no files are
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    41
  given.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    42
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    43
  The @{verbatim "-c"} option causes the input file to be removed
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    44
  after use.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    45
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    46
  The @{verbatim "-o"} option indicates batch-mode operation, with the
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    47
  output written to the indicated file; note that @{verbatim pdf}
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    48
  produces an @{verbatim eps} copy as well.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    49
61406
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
    50
  \<^medskip>
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
    51
  The applet version of the browser is part of the standard
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    52
  WWW theory presentation, see the link ``theory dependencies'' within
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    53
  each session index.
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
    54
\<close>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    55
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    56
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
    57
subsection \<open>Using the graph browser\<close>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    58
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
    59
text \<open>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    60
  The browser's main window, which is shown in
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    61
  \figref{fig:browserwindow}, consists of two sub-windows.  In the
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    62
  left sub-window, the directory tree is displayed. The graph itself
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    63
  is displayed in the right sub-window.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    64
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    65
  \begin{figure}[ht]
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    66
  \includegraphics[width=\textwidth]{browser_screenshot}
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    67
  \caption{\label{fig:browserwindow} Browser main window}
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    68
  \end{figure}
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
    69
\<close>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    70
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    71
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
    72
subsubsection \<open>The directory tree window\<close>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    73
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
    74
text \<open>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    75
  We describe the usage of the directory browser and the meaning of
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    76
  the different items in the browser window.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    77
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    78
  \begin{itemize}
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    79
61406
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
    80
  \<^item> A red arrow before a directory name indicates that the
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    81
  directory is currently ``folded'', i.e.~the nodes in this directory
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    82
  are collapsed to one single node. In the right sub-window, the names
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    83
  of nodes corresponding to folded directories are enclosed in square
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    84
  brackets and displayed in red color.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    85
61406
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
    86
  \<^item> A green downward arrow before a directory name indicates that
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    87
  the directory is currently ``unfolded''. It can be folded by
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    88
  clicking on the directory name.  Clicking on the name for a second
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    89
  time unfolds the directory again.  Alternatively, a directory can
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    90
  also be unfolded by clicking on the corresponding node in the right
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    91
  sub-window.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    92
61406
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
    93
  \<^item> Blue arrows stand before ordinary node names. When clicking on
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    94
  such a name (i.e.\ that of a theory), the graph display window
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    95
  focuses to the corresponding node. Double clicking invokes a text
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    96
  viewer window in which the contents of the theory file are
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    97
  displayed.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    98
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
    99
  \end{itemize}
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   100
\<close>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   101
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   102
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   103
subsubsection \<open>The graph display window\<close>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   104
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   105
text \<open>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   106
  When pointing on an ordinary node, an upward and a downward arrow is
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   107
  shown.  Initially, both of these arrows are green. Clicking on the
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   108
  upward or downward arrow collapses all predecessor or successor
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   109
  nodes, respectively. The arrow's color then changes to red,
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   110
  indicating that the predecessor or successor nodes are currently
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   111
  collapsed. The node corresponding to the collapsed nodes has the
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   112
  name ``@{verbatim "[....]"}''. To uncollapse the nodes again, simply
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   113
  click on the red arrow or on the node with the name ``@{verbatim
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   114
  "[....]"}''. Similar to the directory browser, the contents of
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   115
  theory files can be displayed by double clicking on the
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   116
  corresponding node.
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   117
\<close>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   118
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   119
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   120
subsubsection \<open>The ``File'' menu\<close>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   121
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   122
text \<open>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   123
  Due to Java Applet security restrictions this menu is only available
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   124
  in the full application version. The meaning of the menu items is as
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   125
  follows:
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   126
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   127
  \begin{description}
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   128
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   129
  \item[Open \dots] Open a new graph file.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   130
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   131
  \item[Export to PostScript] Outputs the current graph in Postscript
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   132
  format, appropriately scaled to fit on one single sheet of A4 paper.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   133
  The resulting file can be printed directly.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   134
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   135
  \item[Export to EPS] Outputs the current graph in Encapsulated
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   136
  Postscript format. The resulting file can be included in other
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   137
  documents.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   138
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   139
  \item[Quit] Quit the graph browser.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   140
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   141
  \end{description}
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   142
\<close>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   143
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   144
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   145
subsection \<open>Syntax of graph definition files\<close>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   146
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   147
text \<open>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   148
  A graph definition file has the following syntax:
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   149
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   150
  \begin{center}\small
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   151
  \begin{tabular}{rcl}
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   152
    @{text graph} & @{text "="} & @{text "{ vertex"}~@{verbatim ";"}~@{text "}+"} \\
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   153
    @{text vertex} & @{text "="} & @{text "vertex_name vertex_ID dir_name ["}~@{verbatim "+"}~@{text "] path ["}~@{verbatim "<"}~@{text "|"}~@{verbatim ">"}~@{text "] { vertex_ID }*"}
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   154
  \end{tabular}
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   155
  \end{center}
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   156
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   157
  The meaning of the items in a vertex description is as follows:
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   158
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   159
  \begin{description}
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   160
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   161
  \item[@{text vertex_name}] The name of the vertex.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   162
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   163
  \item[@{text vertex_ID}] The vertex identifier. Note that there may
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   164
  be several vertices with equal names, whereas identifiers must be
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   165
  unique.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   166
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   167
  \item[@{text dir_name}] The name of the ``directory'' the vertex
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   168
  should be placed in.  A ``@{verbatim "+"}'' sign after @{text
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   169
  dir_name} indicates that the nodes in the directory are initially
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   170
  visible. Directories are initially invisible by default.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   171
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   172
  \item[@{text path}] The path of the corresponding theory file. This
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   173
  is specified relatively to the path of the graph definition file.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   174
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   175
  \item[List of successor/predecessor nodes] A ``@{verbatim "<"}''
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   176
  sign before the list means that successor nodes are listed, a
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   177
  ``@{verbatim ">"}'' sign means that predecessor nodes are listed. If
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   178
  neither ``@{verbatim "<"}'' nor ``@{verbatim ">"}'' is found, the
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   179
  browser assumes that successor nodes are listed.
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   180
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   181
  \end{description}
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   182
\<close>
57330
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   183
d8a64a4cbfca clarified role of old user interfaces as misc tools;
wenzelm
parents: 56439
diff changeset
   184
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   185
section \<open>Resolving Isabelle components \label{sec:tool-components}\<close>
48844
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   186
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   187
text \<open>
48844
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   188
  The @{tool_def components} tool resolves Isabelle components:
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   189
\begin{ttbox}
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   190
Usage: isabelle components [OPTIONS] [COMPONENTS ...]
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   191
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   192
  Options are:
50653
5c85f8b80b95 simplified quick start via "isabelle components -I";
wenzelm
parents: 50132
diff changeset
   193
    -I           init user settings
48844
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   194
    -R URL       component repository
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   195
                 (default $ISABELLE_COMPONENT_REPOSITORY)
53435
wenzelm
parents: 52550
diff changeset
   196
    -a           resolve all missing components
48844
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   197
    -l           list status
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   198
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   199
  Resolve Isabelle components via download and installation.
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   200
  COMPONENTS are identified via base name.
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   201
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   202
  ISABELLE_COMPONENT_REPOSITORY="http://isabelle.in.tum.de/components"
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   203
\end{ttbox}
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   204
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   205
  Components are initialized as described in \secref{sec:components}
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   206
  in a permissive manner, which can mark components as ``missing''.
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   207
  This state is amended by letting @{tool "components"} download and
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   208
  unpack components that are published on the default component
54703
499f92dc6e45 more antiquotations;
wenzelm
parents: 54683
diff changeset
   209
  repository @{url "http://isabelle.in.tum.de/components/"} in
48844
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   210
  particular.
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   211
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   212
  Option @{verbatim "-R"} specifies an alternative component
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   213
  repository.  Note that @{verbatim "file:///"} URLs can be used for
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   214
  local directories.
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   215
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   216
  Option @{verbatim "-a"} selects all missing components to be
53435
wenzelm
parents: 52550
diff changeset
   217
  resolved.  Explicit components may be named as command
48844
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   218
  line-arguments as well.  Note that components are uniquely
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   219
  identified by their base name, while the installation takes place in
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   220
  the location that was specified in the attempt to initialize the
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   221
  component before.
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   222
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   223
  Option @{verbatim "-l"} lists the current state of available and
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   224
  missing components with their location (full name) within the
50653
5c85f8b80b95 simplified quick start via "isabelle components -I";
wenzelm
parents: 50132
diff changeset
   225
  file-system.
5c85f8b80b95 simplified quick start via "isabelle components -I";
wenzelm
parents: 50132
diff changeset
   226
5c85f8b80b95 simplified quick start via "isabelle components -I";
wenzelm
parents: 50132
diff changeset
   227
  Option @{verbatim "-I"} initializes the user settings file to
5c85f8b80b95 simplified quick start via "isabelle components -I";
wenzelm
parents: 50132
diff changeset
   228
  subscribe to the standard components specified in the Isabelle
5c85f8b80b95 simplified quick start via "isabelle components -I";
wenzelm
parents: 50132
diff changeset
   229
  repository clone --- this does not make any sense for regular
5c85f8b80b95 simplified quick start via "isabelle components -I";
wenzelm
parents: 50132
diff changeset
   230
  Isabelle releases.  If the file already exists, it needs to be
5c85f8b80b95 simplified quick start via "isabelle components -I";
wenzelm
parents: 50132
diff changeset
   231
  edited manually according to the printed explanation.
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   232
\<close>
48844
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   233
6408fb6f7d81 some explanations on isabelle components;
wenzelm
parents: 48815
diff changeset
   234
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   235
section \<open>Raw ML console\<close>
57439
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   236
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   237
text \<open>
57439
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   238
  The @{tool_def console} tool runs the Isabelle process with raw ML console:
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   239
\begin{ttbox}
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   240
Usage: isabelle console [OPTIONS]
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   241
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   242
  Options are:
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   243
    -d DIR       include session directory
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   244
    -l NAME      logic session name (default ISABELLE_LOGIC)
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   245
    -m MODE      add print mode for output
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   246
    -n           no build of session image on startup
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   247
    -o OPTION    override Isabelle system OPTION (via NAME=VAL or NAME)
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   248
    -s           system build mode for session image
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   249
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   250
  Run Isabelle process with raw ML console and line editor
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   251
  (default ISABELLE_LINE_EDITOR).
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   252
\end{ttbox}
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   253
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   254
  The @{verbatim "-l"} option specifies the logic session name. By default,
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   255
  its heap image is checked and built on demand, but the option @{verbatim
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   256
  "-n"} skips that.
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   257
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   258
  Options @{verbatim "-d"}, @{verbatim "-o"}, @{verbatim "-s"} are passed
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   259
  directly to @{tool build} (\secref{sec:tool-build}).
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   260
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   261
  Options @{verbatim "-m"}, @{verbatim "-o"} are passed directly to the
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   262
  underlying Isabelle process (\secref{sec:isabelle-process}).
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   263
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   264
  The Isabelle process is run through the line editor that is specified via
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   265
  the settings variable @{setting ISABELLE_LINE_EDITOR} (e.g.\
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   266
  @{executable_def rlwrap} for GNU readline); the fall-back is to use plain
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   267
  standard input/output.
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   268
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   269
  Interaction works via the raw ML toplevel loop: this is neither
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   270
  Isabelle/Isar nor Isabelle/ML within the usual formal context. Some useful
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   271
  ML commands at this stage are @{ML cd}, @{ML pwd}, @{ML use}, @{ML use_thy},
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   272
  @{ML use_thys}.
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   273
\<close>
57439
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   274
0e41f26a0250 "isabelle tty" is superseded by "isabelle console";
wenzelm
parents: 57414
diff changeset
   275
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   276
section \<open>Displaying documents \label{sec:tool-display}\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   277
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   278
text \<open>The @{tool_def display} tool displays documents in DVI or PDF
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   279
  format:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   280
\begin{ttbox}
54683
cf48ddc266e5 clarified "isabelle display" and 'display_drafts': re-use file and program instance, open asynchronously via desktop environment;
wenzelm
parents: 53435
diff changeset
   281
Usage: isabelle display DOCUMENT
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   282
54683
cf48ddc266e5 clarified "isabelle display" and 'display_drafts': re-use file and program instance, open asynchronously via desktop environment;
wenzelm
parents: 53435
diff changeset
   283
  Display DOCUMENT (in DVI or PDF format).
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   284
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   285
61406
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
   286
  \<^medskip>
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
   287
  The settings @{setting DVI_VIEWER} and @{setting
52444
2cfe6656d6d6 slightly improved "isabelle doc" based on Isabelle/Scala;
wenzelm
parents: 52052
diff changeset
   288
  PDF_VIEWER} determine the programs for viewing the corresponding
54683
cf48ddc266e5 clarified "isabelle display" and 'display_drafts': re-use file and program instance, open asynchronously via desktop environment;
wenzelm
parents: 53435
diff changeset
   289
  file formats.  Normally this opens the document via the desktop
cf48ddc266e5 clarified "isabelle display" and 'display_drafts': re-use file and program instance, open asynchronously via desktop environment;
wenzelm
parents: 53435
diff changeset
   290
  environment, potentially in an asynchronous manner with re-use of
cf48ddc266e5 clarified "isabelle display" and 'display_drafts': re-use file and program instance, open asynchronously via desktop environment;
wenzelm
parents: 53435
diff changeset
   291
  previews views.
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   292
\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   293
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   294
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   295
section \<open>Viewing documentation \label{sec:tool-doc}\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   296
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   297
text \<open>
52444
2cfe6656d6d6 slightly improved "isabelle doc" based on Isabelle/Scala;
wenzelm
parents: 52052
diff changeset
   298
  The @{tool_def doc} tool displays Isabelle documentation:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   299
\begin{ttbox}
52444
2cfe6656d6d6 slightly improved "isabelle doc" based on Isabelle/Scala;
wenzelm
parents: 52052
diff changeset
   300
Usage: isabelle doc [DOC ...]
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   301
52444
2cfe6656d6d6 slightly improved "isabelle doc" based on Isabelle/Scala;
wenzelm
parents: 52052
diff changeset
   302
  View Isabelle documentation.
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   303
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   304
  If called without arguments, it lists all available documents. Each
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   305
  line starts with an identifier, followed by a short description. Any
52444
2cfe6656d6d6 slightly improved "isabelle doc" based on Isabelle/Scala;
wenzelm
parents: 52052
diff changeset
   306
  of these identifiers may be specified as arguments, in order to
2cfe6656d6d6 slightly improved "isabelle doc" based on Isabelle/Scala;
wenzelm
parents: 52052
diff changeset
   307
  display the corresponding document (see also
2cfe6656d6d6 slightly improved "isabelle doc" based on Isabelle/Scala;
wenzelm
parents: 52052
diff changeset
   308
  \secref{sec:tool-display}).
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   309
61406
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
   310
  \<^medskip>
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
   311
  The @{setting ISABELLE_DOCS} setting specifies the list of
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   312
  directories (separated by colons) to be scanned for documentations.
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   313
\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   314
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   315
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   316
section \<open>Shell commands within the settings environment \label{sec:tool-env}\<close>
47828
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   317
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   318
text \<open>The @{tool_def env} tool is a direct wrapper for the standard
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   319
  @{verbatim "/usr/bin/env"} command on POSIX systems, running within
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   320
  the Isabelle settings environment (\secref{sec:settings}).
47828
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   321
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   322
  The command-line arguments are that of the underlying version of
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   323
  @{verbatim env}.  For example, the following invokes an instance of
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   324
  the GNU Bash shell within the Isabelle environment:
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   325
\begin{alltt}
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   326
  isabelle env bash
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   327
\end{alltt}
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   328
\<close>
47828
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   329
e6e1b670520b some coverage of isabelle env;
wenzelm
parents: 47827
diff changeset
   330
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   331
section \<open>Inspecting the settings environment \label{sec:tool-getenv}\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   332
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   333
text \<open>The Isabelle settings environment --- as provided by the
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   334
  site-default and user-specific settings files --- can be inspected
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   335
  with the @{tool_def getenv} tool:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   336
\begin{ttbox}
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   337
Usage: isabelle getenv [OPTIONS] [VARNAMES ...]
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   338
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   339
  Options are:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   340
    -a           display complete environment
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   341
    -b           print values only (doesn't work for -a)
31497
5333aa739082 isabelle getenv: option -d;
wenzelm
parents: 28916
diff changeset
   342
    -d FILE      dump complete environment to FILE
5333aa739082 isabelle getenv: option -d;
wenzelm
parents: 28916
diff changeset
   343
                 (null terminated entries)
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   344
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   345
  Get value of VARNAMES from the Isabelle settings.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   346
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   347
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   348
  With the @{verbatim "-a"} option, one may inspect the full process
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   349
  environment that Isabelle related programs are run in. This usually
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   350
  contains much more variables than are actually Isabelle settings.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   351
  Normally, output is a list of lines of the form @{text
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   352
  name}@{verbatim "="}@{text value}. The @{verbatim "-b"} option
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   353
  causes only the values to be printed.
31497
5333aa739082 isabelle getenv: option -d;
wenzelm
parents: 28916
diff changeset
   354
5333aa739082 isabelle getenv: option -d;
wenzelm
parents: 28916
diff changeset
   355
  Option @{verbatim "-d"} produces a dump of the complete environment
5333aa739082 isabelle getenv: option -d;
wenzelm
parents: 28916
diff changeset
   356
  to the specified file.  Entries are terminated by the ASCII null
5333aa739082 isabelle getenv: option -d;
wenzelm
parents: 28916
diff changeset
   357
  character, i.e.\ the C string terminator.
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   358
\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   359
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   360
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   361
subsubsection \<open>Examples\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   362
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   363
text \<open>Get the location of @{setting ISABELLE_HOME_USER} where
48815
wenzelm
parents: 48814
diff changeset
   364
  user-specific information is stored:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   365
\begin{ttbox}
48815
wenzelm
parents: 48814
diff changeset
   366
isabelle getenv ISABELLE_HOME_USER
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   367
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   368
61406
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
   369
  \<^medskip>
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
   370
  Get the value only of the same settings variable, which is
48815
wenzelm
parents: 48814
diff changeset
   371
particularly useful in shell scripts:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   372
\begin{ttbox}
28504
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28253
diff changeset
   373
isabelle getenv -b ISABELLE_OUTPUT
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   374
\end{ttbox}
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   375
\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   376
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   377
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   378
section \<open>Installing standalone Isabelle executables \label{sec:tool-install}\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   379
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   380
text \<open>By default, the main Isabelle binaries (@{executable
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   381
  "isabelle"} etc.)  are just run from their location within the
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   382
  distribution directory, probably indirectly by the shell through its
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   383
  @{setting PATH}.  Other schemes of installation are supported by the
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   384
  @{tool_def install} tool:
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   385
\begin{ttbox}
50132
180d086c30dd simplified command line of "isabelle install";
wenzelm
parents: 49072
diff changeset
   386
Usage: isabelle install [OPTIONS] BINDIR
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   387
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   388
  Options are:
50132
180d086c30dd simplified command line of "isabelle install";
wenzelm
parents: 49072
diff changeset
   389
    -d DISTDIR   refer to DISTDIR as Isabelle distribution
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   390
                 (default ISABELLE_HOME)
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   391
50132
180d086c30dd simplified command line of "isabelle install";
wenzelm
parents: 49072
diff changeset
   392
  Install Isabelle executables with absolute references to the
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   393
  distribution directory.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   394
\end{ttbox}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   395
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   396
  The @{verbatim "-d"} option overrides the current Isabelle
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   397
  distribution directory as determined by @{setting ISABELLE_HOME}.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   398
50132
180d086c30dd simplified command line of "isabelle install";
wenzelm
parents: 49072
diff changeset
   399
  The @{text BINDIR} argument tells where executable wrapper scripts
56439
95e2656b3b23 renamed "isabelle-process" to "isabelle_process", with shell function to avoid dynamic path lookups;
wenzelm
parents: 54703
diff changeset
   400
  for @{executable "isabelle_process"} and @{executable isabelle}
50132
180d086c30dd simplified command line of "isabelle install";
wenzelm
parents: 49072
diff changeset
   401
  should be placed, which is typically a directory in the shell's
180d086c30dd simplified command line of "isabelle install";
wenzelm
parents: 49072
diff changeset
   402
  @{setting PATH}, such as @{verbatim "$HOME/bin"}.
48815
wenzelm
parents: 48814
diff changeset
   403
61406
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
   404
  \<^medskip>
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
   405
  It is also possible to make symbolic links of the main
50132
180d086c30dd simplified command line of "isabelle install";
wenzelm
parents: 49072
diff changeset
   406
  Isabelle executables manually, but making separate copies outside
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   407
  the Isabelle distribution directory will not work!\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   408
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   409
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   410
section \<open>Creating instances of the Isabelle logo\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   411
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   412
text \<open>The @{tool_def logo} tool creates instances of the generic
49072
747835eb2782 "isabelle logo" produces EPS and PDF format simultaneously;
wenzelm
parents: 48985
diff changeset
   413
  Isabelle logo as EPS and PDF, for inclusion in {\LaTeX} documents.
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   414
\begin{ttbox}
49072
747835eb2782 "isabelle logo" produces EPS and PDF format simultaneously;
wenzelm
parents: 48985
diff changeset
   415
Usage: isabelle logo [OPTIONS] XYZ
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   416
49072
747835eb2782 "isabelle logo" produces EPS and PDF format simultaneously;
wenzelm
parents: 48985
diff changeset
   417
  Create instance XYZ of the Isabelle logo (as EPS and PDF).
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   418
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   419
  Options are:
49072
747835eb2782 "isabelle logo" produces EPS and PDF format simultaneously;
wenzelm
parents: 48985
diff changeset
   420
    -n NAME      alternative output base name (default "isabelle_xyx")
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   421
    -q           quiet mode
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   422
\end{ttbox}
48936
e6d9e46ff7bc clarified "isabelle logo";
wenzelm
parents: 48844
diff changeset
   423
49072
747835eb2782 "isabelle logo" produces EPS and PDF format simultaneously;
wenzelm
parents: 48985
diff changeset
   424
  Option @{verbatim "-n"} specifies an altenative (base) name for the
747835eb2782 "isabelle logo" produces EPS and PDF format simultaneously;
wenzelm
parents: 48985
diff changeset
   425
  generated files.  The default is @{verbatim "isabelle_"}@{text xyz}
747835eb2782 "isabelle logo" produces EPS and PDF format simultaneously;
wenzelm
parents: 48985
diff changeset
   426
  in lower-case.
48936
e6d9e46ff7bc clarified "isabelle logo";
wenzelm
parents: 48844
diff changeset
   427
e6d9e46ff7bc clarified "isabelle logo";
wenzelm
parents: 48844
diff changeset
   428
  Option @{verbatim "-q"} omits printing of the result file name.
e6d9e46ff7bc clarified "isabelle logo";
wenzelm
parents: 48844
diff changeset
   429
61406
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
   430
  \<^medskip>
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
   431
  Implementors of Isabelle tools and applications are
48936
e6d9e46ff7bc clarified "isabelle logo";
wenzelm
parents: 48844
diff changeset
   432
  encouraged to make derived Isabelle logos for their own projects
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   433
  using this template.\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   434
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   435
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   436
section \<open>Output the version identifier of the Isabelle distribution\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   437
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   438
text \<open>
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48577
diff changeset
   439
  The @{tool_def version} tool displays Isabelle version information:
41511
2fe62d602681 isabelle version -i;
wenzelm
parents: 40800
diff changeset
   440
\begin{ttbox}
2fe62d602681 isabelle version -i;
wenzelm
parents: 40800
diff changeset
   441
Usage: isabelle version [OPTIONS]
2fe62d602681 isabelle version -i;
wenzelm
parents: 40800
diff changeset
   442
2fe62d602681 isabelle version -i;
wenzelm
parents: 40800
diff changeset
   443
  Options are:
2fe62d602681 isabelle version -i;
wenzelm
parents: 40800
diff changeset
   444
    -i           short identification (derived from Mercurial id)
2fe62d602681 isabelle version -i;
wenzelm
parents: 40800
diff changeset
   445
2fe62d602681 isabelle version -i;
wenzelm
parents: 40800
diff changeset
   446
  Display Isabelle version information.
2fe62d602681 isabelle version -i;
wenzelm
parents: 40800
diff changeset
   447
\end{ttbox}
2fe62d602681 isabelle version -i;
wenzelm
parents: 40800
diff changeset
   448
61406
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
   449
  \<^medskip>
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
   450
  The default is to output the full version string of the
47827
13530d774a21 updated system manual for release;
wenzelm
parents: 44799
diff changeset
   451
  Isabelle distribution, e.g.\ ``@{verbatim "Isabelle2012: May 2012"}.
41511
2fe62d602681 isabelle version -i;
wenzelm
parents: 40800
diff changeset
   452
2fe62d602681 isabelle version -i;
wenzelm
parents: 40800
diff changeset
   453
  The @{verbatim "-i"} option produces a short identification derived
2fe62d602681 isabelle version -i;
wenzelm
parents: 40800
diff changeset
   454
  from the Mercurial id of the @{setting ISABELLE_HOME} directory.
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   455
\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   456
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   457
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   458
section \<open>Convert XML to YXML\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   459
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   460
text \<open>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   461
  The @{tool_def yxml} tool converts a standard XML document (stdin)
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   462
  to the much simpler and more efficient YXML format of Isabelle
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   463
  (stdout).  The YXML format is defined as follows.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   464
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   465
  \begin{enumerate}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   466
61406
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
   467
  \<^enum> The encoding is always UTF-8.
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   468
61406
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
   469
  \<^enum> Body text is represented verbatim (no escaping, no special
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   470
  treatment of white space, no named entities, no CDATA chunks, no
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   471
  comments).
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   472
61406
eb2463fc4d7b more symbols;
wenzelm
parents: 58618
diff changeset
   473
  \<^enum> Markup elements are represented via ASCII control characters
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   474
  @{text "\<^bold>X = 5"} and @{text "\<^bold>Y = 6"} as follows:
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   475
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   476
  \begin{tabular}{ll}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   477
    XML & YXML \\\hline
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   478
    @{verbatim "<"}@{text "name attribute"}@{verbatim "="}@{text "value \<dots>"}@{verbatim ">"} &
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   479
    @{text "\<^bold>X\<^bold>Yname\<^bold>Yattribute"}@{verbatim "="}@{text "value\<dots>\<^bold>X"} \\
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   480
    @{verbatim "</"}@{text name}@{verbatim ">"} & @{text "\<^bold>X\<^bold>Y\<^bold>X"} \\
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   481
  \end{tabular}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   482
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   483
  There is no special case for empty body text, i.e.\ @{verbatim
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   484
  "<foo/>"} is treated like @{verbatim "<foo></foo>"}.  Also note that
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   485
  @{text "\<^bold>X"} and @{text "\<^bold>Y"} may never occur in
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   486
  well-formed XML documents.
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   487
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   488
  \end{enumerate}
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   489
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   490
  Parsing YXML is pretty straight-forward: split the text into chunks
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   491
  separated by @{text "\<^bold>X"}, then split each chunk into
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   492
  sub-chunks separated by @{text "\<^bold>Y"}.  Markup chunks start
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   493
  with an empty sub-chunk, and a second empty sub-chunk indicates
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   494
  close of an element.  Any other non-empty chunk consists of plain
44799
1fd0a1276a09 updated file locations;
wenzelm
parents: 43564
diff changeset
   495
  text.  For example, see @{file "~~/src/Pure/PIDE/yxml.ML"} or
1fd0a1276a09 updated file locations;
wenzelm
parents: 43564
diff changeset
   496
  @{file "~~/src/Pure/PIDE/yxml.scala"}.
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   497
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   498
  YXML documents may be detected quickly by checking that the first
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   499
  two characters are @{text "\<^bold>X\<^bold>Y"}.
58618
782f0b662cae more cartouches;
wenzelm
parents: 57443
diff changeset
   500
\<close>
28224
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   501
10487d954a8f converted misc.tex;
wenzelm
parents:
diff changeset
   502
end