doc-src/IsarRef/intro.tex
changeset 7175 8263d0b50e12
parent 7167 0b2e3ef1d8f4
child 7297 c1eeeadbe80a
     1.1 --- a/doc-src/IsarRef/intro.tex	Wed Aug 04 18:20:05 1999 +0200
     1.2 +++ b/doc-src/IsarRef/intro.tex	Wed Aug 04 18:20:24 1999 +0200
     1.3 @@ -3,12 +3,79 @@
     1.4  
     1.5  \section{Quick start}
     1.6  
     1.7 -FIXME examples, ProofGeneral setup
     1.8 +Isar is already part of Isabelle (as of version Isabelle99, or later).  The
     1.9 +\texttt{isabelle} binary provides option \texttt{-I} to run the Isar
    1.10 +interaction loop at startup, rather than the plain ML top-level.  Thus the
    1.11 +quickest way to do anything with Isabelle/Isar is as follows:
    1.12 +\begin{ttbox}
    1.13 +isabelle -I HOL\medskip
    1.14 +\out{> Welcome to Isabelle/HOL (Isabelle99)}\medskip
    1.15 +theory Foo = Main:
    1.16 +constdefs foo :: nat  "foo == 1"
    1.17 +lemma "0 < foo" by (simp add: foo_def)
    1.18 +end
    1.19 +\end{ttbox}
    1.20  
    1.21 -\section{Examples}
    1.22 +Plain TTY-based interaction like this used to be quite feasible with
    1.23 +traditional tactic based theorem proving, but developing Isar documents
    1.24 +demands some better user-interface support.
    1.25 +\emph{ProofGeneral}\index{ProofGeneral} of LFCS Edinburgh \cite{proofgeneral}
    1.26 +offers a generic Emacs-based environment for interactive theorem provers that
    1.27 +does all the cut-and-paste and forward-backward walk through the document in a
    1.28 +very neat way.  Note that in Isabelle/Isar, the current position within a
    1.29 +partial proof document is more informative than the actual proof state.  Thus
    1.30 +the ProofGeneral/isar interface provides the canonical working environment for
    1.31 +Isabelle/Isar, both for getting acquainted (e.g.\ by replaying existing Isar
    1.32 +documents) and serious production work.
    1.33 +
    1.34 +\medskip
    1.35 +
    1.36 +The easiest way to use ProofGeneral/isar is to make it the default Isabelle
    1.37 +user interface.  Just say something like this in your Isabelle settings file
    1.38 +(cf.\ \cite{isabelle-sys}):
    1.39 +\begin{ttbox}
    1.40 +ISABELLE_INTERFACE=\$ISABELLE_HOME/contrib/ProofGeneral/isar/interface
    1.41 +PROOFGENERAL_OPTIONS=""
    1.42 +\end{ttbox}
    1.43 +You may have to change \texttt{\$ISABELLE_HOME/contrib/ProofGeneral} to the
    1.44 +actual installation directory of ProofGeneral.  Now the capital
    1.45 +\texttt{Isabelle} binary refers to the ProofGeneral/isar interface.  It's
    1.46 +usage is as follows:
    1.47 +\begin{ttbox}
    1.48 +Usage: interface [OPTIONS] [FILES ...]
    1.49 +
    1.50 +Options are:
    1.51 +  -l NAME      logic image name (default $ISABELLE_LOGIC=HOL)
    1.52 +  -p NAME      Emacs program name (default xemacs)
    1.53 +  -u BOOL      use .emacs file (default false)
    1.54 +  -w BOOL      use window system (default true)
    1.55 +
    1.56 +Starts ProofGeneral for Isabelle/Isar with proof documents FILES
    1.57 +(default Scratch.thy).
    1.58 +\end{ttbox}
    1.59 +The defaults for these options may be changed via the
    1.60 +\texttt{PROOFGENERAL_OPTIONS} setting.  For example, GNU Emacs with loading of
    1.61 +the startup file enabled may be configured as follows:\footnote{The interface
    1.62 +  disables \texttt{.emacs} by default to ensure successful startup despite any
    1.63 +  strange commands that tend to occur there.}
    1.64 +\begin{ttbox}
    1.65 +PROOFGENERAL_OPTIONS="-p emacs -u true"
    1.66 +\end{ttbox}
    1.67 +
    1.68 +With the proper Isabelle interface setup, Isar documents may now be edited by
    1.69 +visiting appropriate theory files, e.g.\ 
    1.70 +\begin{ttbox}
    1.71 +Isabelle \({\langle}isabellehome{\rangle}\)/src/HOL/Isar_examples/BasicLogic.thy
    1.72 +\end{ttbox}
    1.73 +Users of XEmacs may note the toolbar for navigating forward and backward
    1.74 +through the text.  Consult the ProofGeneral documentation for further basic
    1.75 +commands, such as \texttt{c-c return} or \texttt{c-c u}.
    1.76 +
    1.77  
    1.78  \section{How to write Isar proofs anyway?}
    1.79  
    1.80 +FIXME
    1.81 +
    1.82  
    1.83  %%% Local Variables: 
    1.84  %%% mode: latex