Summary of Changes for Proof General 3.0 from 2.1 ================================================= Generic Changes --------------- * New function C-c C-f (proof-find) to invoke some prover-specific mechanism to search for theories. * Whenever scripting is triggered in a new file, a cd command is sent to the proof assistant to switch to the right directory (in case other files are included). * [XEmacs only] Toolbar has six new buttons (State, Context, Info, Command, Help, Stop) which invoke commands previously available on keys/menus. Also a new "Find" button for proof-find. * [XEmacs only] Toolbar enablers have been added. Buttons are automatically enabled or disabled as appropriate. This requires XEmacs 21 or better for reliable working, so is disabled for earlier versions. If do not like enablers, you can turn them off with the new configuration variable proof-toolbar-use-enablers. With this variable nil, buttons do nothing when they otherwise be disabled. * Menus and keybindings have been reorganized. Now keybindings invoke the same functions as the toolbar. In particular, C-c C-n and C-c C-u are simplified so that they always process or retract exactly one command, rather than one command beyond point. Moreover, C-c C-u does not take an optional argument to delete the retracted text (it was too easy for the user to accidently type C-u C-c C-u !) * Command C-c C-t (proof-try-command) removed in favour of C-c C-v (proof-execute-minibuffer-cmd), which now uses the filter proof-state-preserving-p to check that a command is safe. * Terminal string now automatically added to command for C-c C-v * [XEmacs only] New function control-button1 (proof-mouse-track-insert) copies individual commands (highlighted regions) from an open proof. When a proof is closed, it behaves as mouse-track-insert (the default XEmacs behaviour of control-button1). * Switching scripting buffers is now more flexible. When scripting is turned off in a partly-finished buffer, the user is prompted whether to retract or process the buffer. Automatic retraction or completion can be selected by configuring the option proof-auto-action-when-deactivating-scripting. (To be compatible with the file operations in a proof assistant, Proof General only allows completely processed or completely unprocessed scripts in non-active buffers). * New function C-c C-s (proof-toggle-active-scripting) to switch scripting on or off in current buffer. This is a handy way to discard or finish off scripting in an unfinished buffer triggering the deactivation mechanism mentioned above. Switching on scripting in a buffer may cause the proof assistant to load files it depends on, so it is also handy to see what happens before scripting begins in the buffer. * Cleaned up example files so all demonstrate same theorem "conj_comms". Would be nice to add more theorems to compare scripts/proofs in different systems. Please send in example scripts! * Shorter buffer names for convenience. * Removed transparent gif (text logo) from splash screen because XEmacs can't display it nicely. * Documentation updates. Coq Changes ----------- * Set proof-{qed,save}-commands so the toolbar functions work. * Generic command C-c C-f (proof-find-theorems) replaces Coq specific command C-c C-s (coq-Search). LEGO Changes ------------ * Proofs which have no save command are now closed off automatically when a new goal is begun, mirroring the behaviour of LEGO. Isabelle and Isar Changes ------------------------- * Several tweaks for input syntax. * Recognize goals of the old form val prems = goal ... and saves of the old form val thm = result. * Proofs which are "unfinished", i.e. have no qed or result, are now closed off automatically when a new goal is begun, mirroring the behaviour of Isabelle. * Confusing display of only last error is fixed: multiple error messages are now coalesced properly. Only in the developers' release ------------------------------- * Provisional instantiation of Proof General for Plastic (http://www.dur.ac.uk/CARG/plastic.html) by Paul Callaghan . Internal changes for developers to note --------------------------------------- * Many robustness improvements so that Proof General fails gracefully when certain configuration settings are unset. The aim is to make it easier to adapt to new proof assistants. * proof-shell-leave-annotations-in-output variable has been added. This allows quick and dirty mark up of output from the proof assistant using special characters with codes above 128 and font-lock. Such characters are hidden from display in the output buffers. However, it is NOT recommended to use this mechanism, because it breaks the usability of cut and paste (which copies the special characters). Furthermore the entire mechanism of using special character codes is fragile and needs replacing in future versions of Proof General! * Proofs which are "unfinished", i.e. have no qed or result, are now closed off automatically when a new goal is begun. The new code only applies if proof-nested-goals-allowed is nil (the default). Setting this variable to t forces identical behaviour to before. The default for Coq is t. * Renamed some configuration variables for uniformity: proof-ctxt-string -> proof-context-command proof-help-string -> proof-info-command proof-prf-string -> proof-showproof-command * Speed optimizations for the proof-shell-filter, to attempt to give more CPU to a hungry and noisy proof process. To help with this there is a new configuration variable proof-shell-eager-annotation-start-length. * Many code cleanups and improvements.