doc-src/System/Interfaces.thy
author wenzelm
Mon, 27 Aug 2012 16:48:41 +0200
changeset 48937 e7418f8d49fe
parent 48814 doc-src/System/Thy/Interfaces.thy@d488a5f25bf6
permissions -rw-r--r--
more standard document preparation within session context;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28916
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
     1
theory Interfaces
43564
9864182c6bad document antiquotations are managed as theory data, with proper name space and entity markup;
wenzelm
parents: 32088
diff changeset
     2
imports Base
28916
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
     3
begin
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
     4
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
     5
chapter {* User interfaces *}
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
     6
48573
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
     7
section {* Isabelle/jEdit Prover IDE \label{sec:tool-jedit} *}
28916
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
     8
48603
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
     9
text {* The @{tool_def jedit} tool invokes a version of
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
    10
  jEdit\footnote{\url{http://www.jedit.org/}} that has been augmented
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
    11
  with some components to provide a fully-featured Prover IDE:
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
    12
\begin{ttbox} Usage: isabelle jedit [OPTIONS]
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
    13
  [FILES ...]
28916
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    14
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    15
  Options are:
48573
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    16
    -J OPTION    add JVM runtime option (default JEDIT_JAVA_OPTIONS)
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    17
    -b           build only
48791
9e8f30bfbdca added jedit option -d;
wenzelm
parents: 48603
diff changeset
    18
    -d DIR       include session directory
48573
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    19
    -f           fresh build
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    20
    -j OPTION    add jEdit runtime option (default JEDIT_OPTIONS)
28916
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    21
    -l NAME      logic image name (default ISABELLE_LOGIC)
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    22
    -m MODE      add print mode for output
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    23
48573
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    24
Start jEdit with Isabelle plugin setup and opens theory FILES
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    25
(default Scratch.thy).
28916
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    26
\end{ttbox}
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    27
48791
9e8f30bfbdca added jedit option -d;
wenzelm
parents: 48603
diff changeset
    28
  The @{verbatim "-l"} option specifies the session name of the logic
9e8f30bfbdca added jedit option -d;
wenzelm
parents: 48603
diff changeset
    29
  image to be used for proof processing.  Additional session root
9e8f30bfbdca added jedit option -d;
wenzelm
parents: 48603
diff changeset
    30
  directories may be included via option @{verbatim "-d"} to augment
9e8f30bfbdca added jedit option -d;
wenzelm
parents: 48603
diff changeset
    31
  that name space (see also \secref{sec:tool-build}).
9e8f30bfbdca added jedit option -d;
wenzelm
parents: 48603
diff changeset
    32
9e8f30bfbdca added jedit option -d;
wenzelm
parents: 48603
diff changeset
    33
  The @{verbatim "-m"} option specifies additional print modes.
48573
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    34
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    35
  The @{verbatim "-J"} and @{verbatim "-j"} options allow to pass
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    36
  additional low-level options to the JVM or jEdit, respectively.  The
48603
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
    37
  defaults are provided by the Isabelle settings environment
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
    38
  (\secref{sec:settings}).
48573
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    39
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    40
  The @{verbatim "-b"} and @{verbatim "-f"} options control the
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    41
  self-build mechanism of Isabelle/jEdit.  This is only relevant for
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    42
  building from sources, which also requires an auxiliary @{verbatim
48603
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
    43
  jedit_build}
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
    44
  component.\footnote{\url{http://isabelle.in.tum.de/components}} Note
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
    45
  that official Isabelle releases already include a version of
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
    46
  Isabelle/jEdit that is built properly.  *}
28916
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    47
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    48
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    49
section {* Proof General / Emacs *}
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    50
48572
af0f5560ac94 misc tuning;
wenzelm
parents: 48208
diff changeset
    51
text {* The @{tool_def emacs} tool invokes a version of Emacs and
48603
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
    52
  Proof General\footnote{http://proofgeneral.inf.ed.ac.uk/} within the
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
    53
  regular Isabelle settings environment (\secref{sec:settings}).  This
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
    54
  is more convenient than starting Emacs separately, loading the Proof
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
    55
  General LISP files, and then attempting to start Isabelle with
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
    56
  dynamic @{setting PATH} lookup etc.
28916
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    57
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    58
  The actual interface script is part of the Proof General
48572
af0f5560ac94 misc tuning;
wenzelm
parents: 48208
diff changeset
    59
  distribution; its usage depends on the particular version.  There
af0f5560ac94 misc tuning;
wenzelm
parents: 48208
diff changeset
    60
  are some options available, such as @{verbatim "-l"} for passing the
af0f5560ac94 misc tuning;
wenzelm
parents: 48208
diff changeset
    61
  logic image to be used by default, or @{verbatim "-m"} to tune the
af0f5560ac94 misc tuning;
wenzelm
parents: 48208
diff changeset
    62
  standard print mode.  The following Isabelle settings are
af0f5560ac94 misc tuning;
wenzelm
parents: 48208
diff changeset
    63
  particularly important for Proof General:
28916
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    64
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    65
  \begin{description}
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    66
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    67
  \item[@{setting_def PROOFGENERAL_HOME}] points to the main
48572
af0f5560ac94 misc tuning;
wenzelm
parents: 48208
diff changeset
    68
  installation directory of the Proof General distribution.  This is
af0f5560ac94 misc tuning;
wenzelm
parents: 48208
diff changeset
    69
  implicitly provided for versions of Proof General that are
af0f5560ac94 misc tuning;
wenzelm
parents: 48208
diff changeset
    70
  distributed as Isabelle component, see also \secref{sec:components};
af0f5560ac94 misc tuning;
wenzelm
parents: 48208
diff changeset
    71
  otherwise it needs to be configured manually.
28916
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    72
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    73
  \item[@{setting_def PROOFGENERAL_OPTIONS}] is implicitly prefixed to
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    74
  the command line of any invocation of the Proof General @{verbatim
48572
af0f5560ac94 misc tuning;
wenzelm
parents: 48208
diff changeset
    75
  interface} script.  This allows to provide persistent default
af0f5560ac94 misc tuning;
wenzelm
parents: 48208
diff changeset
    76
  options for the invocation of \texttt{isabelle emacs}.
28916
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    77
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    78
  \end{description}
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    79
*}
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
    80
47824
65082431af2a some coverage of Isabelle/jEdit;
wenzelm
parents: 47822
diff changeset
    81
48573
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    82
section {* Plain TTY interaction \label{sec:tool-tty} *}
47824
65082431af2a some coverage of Isabelle/jEdit;
wenzelm
parents: 47822
diff changeset
    83
48573
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    84
text {*
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    85
  The @{tool_def tty} tool runs the Isabelle process interactively
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    86
  within a plain terminal session:
47824
65082431af2a some coverage of Isabelle/jEdit;
wenzelm
parents: 47822
diff changeset
    87
\begin{ttbox}
48573
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    88
Usage: isabelle tty [OPTIONS]
47824
65082431af2a some coverage of Isabelle/jEdit;
wenzelm
parents: 47822
diff changeset
    89
65082431af2a some coverage of Isabelle/jEdit;
wenzelm
parents: 47822
diff changeset
    90
  Options are:
65082431af2a some coverage of Isabelle/jEdit;
wenzelm
parents: 47822
diff changeset
    91
    -l NAME      logic image name (default ISABELLE_LOGIC)
65082431af2a some coverage of Isabelle/jEdit;
wenzelm
parents: 47822
diff changeset
    92
    -m MODE      add print mode for output
48573
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    93
    -p NAME      line editor program name (default ISABELLE_LINE_EDITOR)
47824
65082431af2a some coverage of Isabelle/jEdit;
wenzelm
parents: 47822
diff changeset
    94
48573
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    95
  Run Isabelle process with plain tty interaction and line editor.
47824
65082431af2a some coverage of Isabelle/jEdit;
wenzelm
parents: 47822
diff changeset
    96
\end{ttbox}
65082431af2a some coverage of Isabelle/jEdit;
wenzelm
parents: 47822
diff changeset
    97
48573
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    98
  The @{verbatim "-l"} option specifies the logic image.  The
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
    99
  @{verbatim "-m"} option specifies additional print modes.  The
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
   100
  @{verbatim "-p"} option specifies an alternative line editor (such
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
   101
  as the @{executable_def rlwrap} wrapper for GNU readline); the
de82a584bc2a top-down order of user interfaces;
wenzelm
parents: 48572
diff changeset
   102
  fall-back is to use raw standard input.
47824
65082431af2a some coverage of Isabelle/jEdit;
wenzelm
parents: 47822
diff changeset
   103
48603
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
   104
  Regular interaction works via the standard Isabelle/Isar toplevel
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
   105
  loop.  The Isar command @{command exit} drops out into the
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
   106
  bare-bones ML system, which is occasionally useful for debugging of
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
   107
  the Isar infrastructure itself.  Invoking @{ML Isar.loop}~@{verbatim
a37463482e5f discontinued unused isabelle jedit debugger;
wenzelm
parents: 48602
diff changeset
   108
  "();"} in ML will return to the Isar toplevel.  *}
47824
65082431af2a some coverage of Isabelle/jEdit;
wenzelm
parents: 47822
diff changeset
   109
48576
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   110
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   111
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   112
section {* Theory graph browser \label{sec:browse} *}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   113
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   114
text {* The Isabelle graph browser is a general tool for visualizing
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   115
  dependency graphs.  Certain nodes of the graph (i.e.\ theories) can
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   116
  be grouped together in ``directories'', whose contents may be
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   117
  hidden, thus enabling the user to collapse irrelevant portions of
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   118
  information.  The browser is written in Java, it can be used both as
48814
d488a5f25bf6 some updates of "Presenting theories", using mkroot/build instead of former mkdir/make/usedir (which are still present in "Misc");
wenzelm
parents: 48791
diff changeset
   119
  a stand-alone application and as an applet.  *}
48576
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   120
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   121
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   122
subsection {* Invoking the graph browser *}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   123
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48576
diff changeset
   124
text {* The stand-alone version of the graph browser is wrapped up as
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48576
diff changeset
   125
  @{tool_def browser}:
48576
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   126
\begin{ttbox}
48602
342ca8f3197b more uniform usage of "isabelle tool";
wenzelm
parents: 48576
diff changeset
   127
Usage: isabelle browser [OPTIONS] [GRAPHFILE]
48576
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   128
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   129
  Options are:
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   130
    -b           Admin/build only
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   131
    -c           cleanup -- remove GRAPHFILE after use
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   132
    -o FILE      output to FILE (ps, eps, pdf)
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   133
\end{ttbox}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   134
  When no filename is specified, the browser automatically changes to
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   135
  the directory @{setting ISABELLE_BROWSER_INFO}.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   136
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   137
  \medskip The @{verbatim "-b"} option indicates that this is for
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   138
  administrative build only, i.e.\ no browser popup if no files are
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   139
  given.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   140
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   141
  The @{verbatim "-c"} option causes the input file to be removed
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   142
  after use.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   143
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   144
  The @{verbatim "-o"} option indicates batch-mode operation, with the
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   145
  output written to the indicated file; note that @{verbatim pdf}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   146
  produces an @{verbatim eps} copy as well.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   147
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   148
  \medskip The applet version of the browser is part of the standard
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   149
  WWW theory presentation, see the link ``theory dependencies'' within
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   150
  each session index.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   151
*}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   152
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   153
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   154
subsection {* Using the graph browser *}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   155
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   156
text {*
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   157
  The browser's main window, which is shown in
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   158
  \figref{fig:browserwindow}, consists of two sub-windows.  In the
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   159
  left sub-window, the directory tree is displayed. The graph itself
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   160
  is displayed in the right sub-window.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   161
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   162
  \begin{figure}[ht]
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   163
  \includegraphics[width=\textwidth]{browser_screenshot}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   164
  \caption{\label{fig:browserwindow} Browser main window}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   165
  \end{figure}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   166
*}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   167
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   168
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   169
subsubsection {* The directory tree window *}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   170
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   171
text {*
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   172
  We describe the usage of the directory browser and the meaning of
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   173
  the different items in the browser window.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   174
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   175
  \begin{itemize}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   176
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   177
  \item A red arrow before a directory name indicates that the
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   178
  directory is currently ``folded'', i.e.~the nodes in this directory
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   179
  are collapsed to one single node. In the right sub-window, the names
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   180
  of nodes corresponding to folded directories are enclosed in square
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   181
  brackets and displayed in red color.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   182
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   183
  \item A green downward arrow before a directory name indicates that
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   184
  the directory is currently ``unfolded''. It can be folded by
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   185
  clicking on the directory name.  Clicking on the name for a second
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   186
  time unfolds the directory again.  Alternatively, a directory can
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   187
  also be unfolded by clicking on the corresponding node in the right
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   188
  sub-window.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   189
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   190
  \item Blue arrows stand before ordinary node names. When clicking on
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   191
  such a name (i.e.\ that of a theory), the graph display window
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   192
  focuses to the corresponding node. Double clicking invokes a text
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   193
  viewer window in which the contents of the theory file are
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   194
  displayed.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   195
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   196
  \end{itemize}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   197
*}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   198
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   199
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   200
subsubsection {* The graph display window *}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   201
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   202
text {*
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   203
  When pointing on an ordinary node, an upward and a downward arrow is
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   204
  shown.  Initially, both of these arrows are green. Clicking on the
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   205
  upward or downward arrow collapses all predecessor or successor
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   206
  nodes, respectively. The arrow's color then changes to red,
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   207
  indicating that the predecessor or successor nodes are currently
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   208
  collapsed. The node corresponding to the collapsed nodes has the
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   209
  name ``@{verbatim "[....]"}''. To uncollapse the nodes again, simply
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   210
  click on the red arrow or on the node with the name ``@{verbatim
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   211
  "[....]"}''. Similar to the directory browser, the contents of
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   212
  theory files can be displayed by double clicking on the
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   213
  corresponding node.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   214
*}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   215
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   216
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   217
subsubsection {* The ``File'' menu *}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   218
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   219
text {*
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   220
  Due to Java Applet security restrictions this menu is only available
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   221
  in the full application version. The meaning of the menu items is as
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   222
  follows:
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   223
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   224
  \begin{description}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   225
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   226
  \item[Open \dots] Open a new graph file.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   227
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   228
  \item[Export to PostScript] Outputs the current graph in Postscript
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   229
  format, appropriately scaled to fit on one single sheet of A4 paper.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   230
  The resulting file can be printed directly.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   231
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   232
  \item[Export to EPS] Outputs the current graph in Encapsulated
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   233
  Postscript format. The resulting file can be included in other
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   234
  documents.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   235
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   236
  \item[Quit] Quit the graph browser.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   237
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   238
  \end{description}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   239
*}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   240
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   241
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   242
subsection {* Syntax of graph definition files *}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   243
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   244
text {*
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   245
  A graph definition file has the following syntax:
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   246
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   247
  \begin{center}\small
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   248
  \begin{tabular}{rcl}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   249
    @{text graph} & @{text "="} & @{text "{ vertex"}~@{verbatim ";"}~@{text "}+"} \\
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   250
    @{text vertex} & @{text "="} & @{text "vertex_name vertex_ID dir_name ["}~@{verbatim "+"}~@{text "] path ["}~@{verbatim "<"}~@{text "|"}~@{verbatim ">"}~@{text "] { vertex_ID }*"}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   251
  \end{tabular}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   252
  \end{center}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   253
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   254
  The meaning of the items in a vertex description is as follows:
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   255
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   256
  \begin{description}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   257
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   258
  \item[@{text vertex_name}] The name of the vertex.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   259
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   260
  \item[@{text vertex_ID}] The vertex identifier. Note that there may
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   261
  be several vertices with equal names, whereas identifiers must be
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   262
  unique.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   263
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   264
  \item[@{text dir_name}] The name of the ``directory'' the vertex
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   265
  should be placed in.  A ``@{verbatim "+"}'' sign after @{text
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   266
  dir_name} indicates that the nodes in the directory are initially
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   267
  visible. Directories are initially invisible by default.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   268
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   269
  \item[@{text path}] The path of the corresponding theory file. This
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   270
  is specified relatively to the path of the graph definition file.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   271
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   272
  \item[List of successor/predecessor nodes] A ``@{verbatim "<"}''
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   273
  sign before the list means that successor nodes are listed, a
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   274
  ``@{verbatim ">"}'' sign means that predecessor nodes are listed. If
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   275
  neither ``@{verbatim "<"}'' nor ``@{verbatim ">"}'' is found, the
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   276
  browser assumes that successor nodes are listed.
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   277
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   278
  \end{description}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   279
*}
72c0bf1f544f isabelle browser is another user interface;
wenzelm
parents: 48573
diff changeset
   280
28916
0a802cdda340 removed obsolete isabelle-interface executable and ISABELLE_INTERFACE setting;
wenzelm
parents:
diff changeset
   281
end