coqide on the command
line. Without argument, the main screen is displayed with an ``unnamed
buffer'', and with a file name as argument, another buffer displaying
the contents of that file. Additionally, coqide accepts the same
options as coqtop, given in Chapter 12, the ones having
obviously no meaning for CoqIDE being ignored.
A sample CoqIDE main screen, while navigating into a file![]()
Figure 14.1: CoqIDE main screen
Fermat.v, is shown on Figure 14.1. At
the top is a menu bar, and a tool bar below it. The large window on
the left is displaying the various script buffers. The upper right
window is the goal window, where goals to
prove are displayed. The lower right window is the message window,
where various messages resulting from commands are displayed. At the
bottom is the status bar.Fermat.v, all
commands until the Theorem have been already executed, and the
user tried to go forward executing Induction n. That command
failed because no such tactic exist (tactics are now in
lowercase...), and the wrong word is underlined. coqtop, you
should never use Undo to go backward.We call query any vernacular command that do not change the current state, such as![]()
Figure 14.2: CoqIDE: the query window
Check, SearchAbout, etc. Those
commands are of course useless during compilation of a file, hence
should not be included in scripts. To run such commands without
writing them in the script, CoqIDE offers another input window
called the query window. This window can be displayed on
demand, either by using the Window menu, or directly using
shortcuts given in the Queries menu. Indeed, with CoqIDE
the simplest way to perform a SearchAbout on some identifier
is to select it using the mouse, and pressing F2. This will
both make appear the query window and run the SearchAbout in
it, displaying the result. Shortcuts F3 and F4 are for
Check and Print respectively.
Figure 14.2 displays the query window after selection
of the word ``mult'' in the script windows, and pressing F4 to
print its definition.Compile menu offers direct commands to:
make
makefile using coq_makefile.
#f# for each opened file
f. You may also activate the revert feature: in case a
opened file is modified on the disk by a third party, CoqIDE may read
it again for you. Note that in the case you edited that same file, you
will be prompt to choose to either discard your changes or not. The
File charset encoding choice is described below in
Section 14.8.3Externals section allows to customize the external commands
for compilation, printing, web browsing. In the browser command, you
may use %s to denote the URL to open, for example: mozilla -remote "OpenURL(%s)". Tactics Wizard section allows to defined the set of tactics
that should be tried, in sequence, to solve the current goal..coqiderc of
your home directory. .coqide.keys.
This file should not be edited manually: to modify a given menu
shortcut, go to the corresponding menu item without releasing the
mouse button, press the key you want for the new shortcut, and release
the mouse button afterwards..coqide-gtk2rc, following the gtk2
resources syntax
http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html.
Such a default resource file exists in the Coq library, you may
copy this file into your home directory, and edit it using any text
editor, CoqIDE itself for example.Notation "for all x : t, P" :=There exists a small set of such notations already defined, in the file
(forall x:t, P) (at level 200, x ident).
Notation "there exists x : t, P" :=
(exists x:t, P) (at level 200, x ident).
utf8.v of Coq library, so you may enable them just by
Require utf8 inside CoqIDE, or equivalently, by starting
CoqIDE with coqide -l utf8.GDK_USE_XFT
to 1 or 0 respectively.2200 for the for all symbol.
A list of symbol codes is available at http://www.unicode.org. F11 and F12 to
for all and there exists respectively, you may add
bind "F11" "insert-at-cursor" ("for all")to your
bind "F12" "insert-at-cursor" ("there exists")
binding "text" section in .coqiderc-gtk2rc.\x{....} or \x{........} where
each dot is an hexadecimal digit: the number between braces is the
hexadecimal UNICODE index for the missing character.-ide to coqmktop, that is something like
coqmktop -ide -byte m1.cmo ... mn.cmoor
coqmktop -ide -opt m1.cmx ... mn.cmx