4 |
4 |
5 chapter {* User interfaces *} |
5 chapter {* User interfaces *} |
6 |
6 |
7 section {* Isabelle/jEdit Prover IDE \label{sec:tool-jedit} *} |
7 section {* Isabelle/jEdit Prover IDE \label{sec:tool-jedit} *} |
8 |
8 |
9 text {* The @{tool_def jedit} tool invokes a version of jEdit that has |
9 text {* The @{tool_def jedit} tool invokes a version of |
10 been augmented with some components to provide a fully-featured |
10 jEdit\footnote{\url{http://www.jedit.org/}} that has been augmented |
11 Prover IDE (based on Isabelle/Scala): |
11 with some components to provide a fully-featured Prover IDE: |
12 \begin{ttbox} |
12 \begin{ttbox} Usage: isabelle jedit [OPTIONS] |
13 Usage: isabelle jedit [OPTIONS] [FILES ...] |
13 [FILES ...] |
14 |
14 |
15 Options are: |
15 Options are: |
16 -J OPTION add JVM runtime option (default JEDIT_JAVA_OPTIONS) |
16 -J OPTION add JVM runtime option (default JEDIT_JAVA_OPTIONS) |
17 -b build only |
17 -b build only |
18 -d enable debugger |
|
19 -f fresh build |
18 -f fresh build |
20 -j OPTION add jEdit runtime option (default JEDIT_OPTIONS) |
19 -j OPTION add jEdit runtime option (default JEDIT_OPTIONS) |
21 -l NAME logic image name (default ISABELLE_LOGIC) |
20 -l NAME logic image name (default ISABELLE_LOGIC) |
22 -m MODE add print mode for output |
21 -m MODE add print mode for output |
23 |
22 |
28 The @{verbatim "-l"} option specifies the logic image. The |
27 The @{verbatim "-l"} option specifies the logic image. The |
29 @{verbatim "-m"} option specifies additional print modes. |
28 @{verbatim "-m"} option specifies additional print modes. |
30 |
29 |
31 The @{verbatim "-J"} and @{verbatim "-j"} options allow to pass |
30 The @{verbatim "-J"} and @{verbatim "-j"} options allow to pass |
32 additional low-level options to the JVM or jEdit, respectively. The |
31 additional low-level options to the JVM or jEdit, respectively. The |
33 defaults are provided by the Isabelle settings environment. |
32 defaults are provided by the Isabelle settings environment |
34 |
33 (\secref{sec:settings}). |
35 The @{verbatim "-d"} option allows to connect to the runtime |
|
36 debugger of the JVM. Note that the Scala Console of Isabelle/jEdit |
|
37 is more convenient in most practical situations. |
|
38 |
34 |
39 The @{verbatim "-b"} and @{verbatim "-f"} options control the |
35 The @{verbatim "-b"} and @{verbatim "-f"} options control the |
40 self-build mechanism of Isabelle/jEdit. This is only relevant for |
36 self-build mechanism of Isabelle/jEdit. This is only relevant for |
41 building from sources, which also requires an auxiliary @{verbatim |
37 building from sources, which also requires an auxiliary @{verbatim |
42 jedit_build} component. Official Isabelle releases already include |
38 jedit_build} |
43 a version of Isabelle/jEdit that is built properly. |
39 component.\footnote{\url{http://isabelle.in.tum.de/components}} Note |
44 *} |
40 that official Isabelle releases already include a version of |
|
41 Isabelle/jEdit that is built properly. *} |
45 |
42 |
46 |
43 |
47 section {* Proof General / Emacs *} |
44 section {* Proof General / Emacs *} |
48 |
45 |
49 text {* The @{tool_def emacs} tool invokes a version of Emacs and |
46 text {* The @{tool_def emacs} tool invokes a version of Emacs and |
50 Proof General \cite{proofgeneral} within the regular Isabelle |
47 Proof General\footnote{http://proofgeneral.inf.ed.ac.uk/} within the |
51 settings environment (\secref{sec:settings}). This is more |
48 regular Isabelle settings environment (\secref{sec:settings}). This |
52 convenient than starting Emacs separately, loading the Proof General |
49 is more convenient than starting Emacs separately, loading the Proof |
53 lisp files, and then attempting to start Isabelle with dynamic |
50 General LISP files, and then attempting to start Isabelle with |
54 @{setting PATH} lookup etc. |
51 dynamic @{setting PATH} lookup etc. |
55 |
52 |
56 The actual interface script is part of the Proof General |
53 The actual interface script is part of the Proof General |
57 distribution; its usage depends on the particular version. There |
54 distribution; its usage depends on the particular version. There |
58 are some options available, such as @{verbatim "-l"} for passing the |
55 are some options available, such as @{verbatim "-l"} for passing the |
59 logic image to be used by default, or @{verbatim "-m"} to tune the |
56 logic image to be used by default, or @{verbatim "-m"} to tune the |
97 @{verbatim "-m"} option specifies additional print modes. The |
94 @{verbatim "-m"} option specifies additional print modes. The |
98 @{verbatim "-p"} option specifies an alternative line editor (such |
95 @{verbatim "-p"} option specifies an alternative line editor (such |
99 as the @{executable_def rlwrap} wrapper for GNU readline); the |
96 as the @{executable_def rlwrap} wrapper for GNU readline); the |
100 fall-back is to use raw standard input. |
97 fall-back is to use raw standard input. |
101 |
98 |
102 Regular interaction is via the standard Isabelle/Isar toplevel loop. |
99 Regular interaction works via the standard Isabelle/Isar toplevel |
103 The Isar command @{command exit} drops out into the bare-bones ML |
100 loop. The Isar command @{command exit} drops out into the |
104 system, which is occasionally useful for debugging of the Isar |
101 bare-bones ML system, which is occasionally useful for debugging of |
105 infrastructure itself. Invoking @{ML Isar.loop}~@{verbatim "();"} |
102 the Isar infrastructure itself. Invoking @{ML Isar.loop}~@{verbatim |
106 in ML will return to the Isar toplevel. *} |
103 "();"} in ML will return to the Isar toplevel. *} |
107 |
104 |
108 |
105 |
109 |
106 |
110 section {* Theory graph browser \label{sec:browse} *} |
107 section {* Theory graph browser \label{sec:browse} *} |
111 |
108 |