13 all the Isabelle object-logics, use the shell script make-all (on directory  | 
    13 all the Isabelle object-logics, use the shell script make-all (on directory  | 
    14 Tools).  Pure Isabelle and each of the object-logics can be built  | 
    14 Tools).  Pure Isabelle and each of the object-logics can be built  | 
    15 separately using the Makefiles in the respective directories; read them for  | 
    15 separately using the Makefiles in the respective directories; read them for  | 
    16 more information.  | 
    16 more information.  | 
    17   | 
    17   | 
    18 				THE MAKEFILES  | 
    18 			HOW TO BUILD ISABELLE  | 
    19   | 
    19   | 
    20 The Makefiles can use two different Standard ML compilers: Poly/ML version  | 
    20 Here are brief instructions.  For more detail, read further.  | 
    21 2.03 or later (from Abstract Hardware Ltd) and Standard ML of New Jersey  | 
    21   | 
    22 (Version 0.93 or later).  Poly/ML is a commercial product and costs money,  | 
    22 1.  Create a directory to hold the Isabelle executable images, and   | 
    23 but it is reliable and its database system is convenient for interactive  | 
    23     set the environment variable ISABELLEBIN to its pathname.  | 
    24 work.  SML of New Jersey requires lots of store and disc space, but it is  | 
    24   | 
    25 free and its code sometimes runs faster.  Both compilers are perfectly  | 
    25 2.  Set the environment variable ISABELLECOMP to the command to execute your  | 
    26 satisfactory for running Isabelle.  | 
    26     Standard ML compiler.  | 
         | 
    27   | 
         | 
    28 3.  If using Poly/ML, set the environment variable ML_DBASE to the pathname  | 
         | 
    29     of the empty Poly/ML database.  | 
         | 
    30   | 
         | 
    31 4.  Change your working directory to that containing this file.  | 
         | 
    32   | 
         | 
    33 5a. To build ALL logics and run examples, type "make-all" and wait up to   | 
         | 
    34     10 hours.  Standard ML of New Jersey will require up to 200M  | 
         | 
    35     of disc space!  Poly/ML will require about 25M.  | 
         | 
    36   | 
         | 
    37 -OR-  | 
         | 
    38 5b. To build ALL logics but run no examples, type "make-all -notest".  This  | 
         | 
    39     is much faster than 5a but needs just as much disc space.  | 
         | 
    40   | 
         | 
    41 -OR-  | 
         | 
    42 5c. To build just one logic, such as HOL, change to directory HOL and type  | 
         | 
    43     "make" or "make test".  This may trigger further Makes automatically.  | 
         | 
    44   | 
         | 
    45   | 
         | 
    46 			SUITABLE ML COMPILERS  | 
         | 
    47   | 
         | 
    48 You use two different Standard ML compilers: Poly/ML version 2.03 or later  | 
         | 
    49 (from Abstract Hardware Ltd) and Standard ML of New Jersey (Version 0.93 or  | 
         | 
    50 later).  Poly/ML is a commercial product and costs money, but it is stable and  | 
         | 
    51 efficient; moreover its database system is convenient for interactive work.  | 
         | 
    52 SML of New Jersey requires lots of store and disc space, but it is free and  | 
         | 
    53 its code sometimes runs faster.  Both compilers are perfectly satisfactory for  | 
         | 
    54 running Isabelle.  | 
         | 
    55   | 
         | 
    56 To obtain Poly/ML, contact Abstract Hardware Ltd, The Howell Building, Brunel  | 
         | 
    57 University, Uxbridge UB8 3PH, England, email lambda@ahl.co.uk.  | 
         | 
    58   | 
         | 
    59 To obtain Standard ML of New Jersey, see the Web page   | 
         | 
    60 	http://cm.bell-labs.com/cm/cs/what/smlnj/software.html  | 
         | 
    61 or send email to sml-nj@research.bell-labs.com.  | 
         | 
    62   | 
         | 
    63   | 
         | 
    64 			ENVIRONMENT VARIABLES  | 
    27   | 
    65   | 
    28 The Makefiles and make-all use environment variables that you should set  | 
    66 The Makefiles and make-all use environment variables that you should set  | 
    29 according to your site configuration.  See file Tools/make-all-nj for an  | 
    67 according to your site configuration.  See file Tools/make-all-nj for an  | 
    30 example using the Bourne shell, sh.  | 
    68 example using the Bourne shell, sh.  | 
    31   | 
    69   | 
    35 (one starting with "/").  | 
    73 (one starting with "/").  | 
    36   | 
    74   | 
    37 ML_DBASE is an *absolute* pathname to the initial Poly/ML database.  It is not  | 
    75 ML_DBASE is an *absolute* pathname to the initial Poly/ML database.  It is not  | 
    38 required for New Jersey ML.  | 
    76 required for New Jersey ML.  | 
    39   | 
    77   | 
    40 ISABELLECOMP is the ML compiler, typically "poly -noDisplay" or "/bin/sml".  | 
    78 ISABELLECOMP is the command to run ML compiler, typically "/bin/sml" or "poly  | 
         | 
    79 -noDisplay -h 15000".  (The -h switch to Poly specifies an initial heap  | 
         | 
    80 allocation, which you should consider increasing if a command fails with the  | 
         | 
    81 message "Run out of store".)  | 
         | 
    82   | 
    41 If, after stripping a leading pathname, the compiler begins with the letters  | 
    83 If, after stripping a leading pathname, the compiler begins with the letters  | 
    42 "poly" then the Makefiles assume Poly/ML.  If it begins with the letters "sml"  | 
    84 "poly" then the Makefiles assume Poly/ML.  If it begins with the letters "sml"  | 
    43 then they assume Standard ML of New Jersey.  | 
    85 then they assume Standard ML of New Jersey.  | 
    44   | 
         | 
    45 If a Poly/ML session fails with the message "Run out of store" then you  | 
         | 
    46 have used up the entire heap.  If your tactic is not in a loop, allocating  | 
         | 
    47 more heap at startup should correct the problem.  For instance, "poly -h  | 
         | 
    48 15000" allocates sufficient heap space to rebuild all Isabelle examples.  | 
         | 
    49   | 
    86   | 
    50   | 
    87   | 
    51 			 STRUCTURE OF THIS DIRECTORY  | 
    88 			 STRUCTURE OF THIS DIRECTORY  | 
    52   | 
    89   | 
    53 Important files include...  | 
    90 Important files include...  | 
    55   Pure		contains source files for Pure Isabelle (no object-logic)  | 
    92   Pure		contains source files for Pure Isabelle (no object-logic)  | 
    56   Provers	contains generic theorem provers: simplifier, etc.  | 
    93   Provers	contains generic theorem provers: simplifier, etc.  | 
    57   Tools		contains shell scripts and utilities   | 
    94   Tools		contains shell scripts and utilities   | 
    58   | 
    95   | 
    59 The following subdirectories contain object-logics:  | 
    96 The following subdirectories contain object-logics:  | 
    60   FOL 	  Natural deduction First-Order Logic (intuitionistic and classical)  | 
    97   FOL 		natural deduction First-Order Logic   | 
    61   FOLP 	  First-Order Logic with Proof terms  | 
    98 			(intuitionistic and classical versions)  | 
    62   ZF	  Zermelo-Fraenkel set theory  | 
    99   FOLP 		First-Order Logic with Proof terms  | 
    63   HOL	  Classical Higher-Order Logic  | 
   100   ZF		Zermelo-Fraenkel set theory  | 
    64   LCF     Logic for Computable Functions (domain theory) built upon FOL  | 
   101   HOL		Classical Higher-Order Logic  | 
    65   HOLCF   A version of LCF built upon HOL  | 
   102   LCF		Logic for Computable Functions (domain theory) built upon FOL  | 
    66   CTT	  Constructive Type Theory  | 
   103   HOLCF		A version of LCF built upon HOL  | 
    67   LK	  Classical first-order sequent calculus  | 
   104   CTT		Constructive Type Theory  | 
    68   Modal	  The modal logics T, S4, S43  | 
   105   Sequents	Sequent calcul: first-order logic  | 
    69   CCL	  Martin Coen's Classical Computational Logic  | 
   106 				modal logics T, S4, S43  | 
    70   Cube	  Barendregt's Lambda Cube  | 
   107 				intuitionistic linear logic  | 
         | 
   108   CCL		Martin Coen's Classical Computational Logic  | 
         | 
   109   Cube		Barendregt's Lambda Cube  | 
    71   | 
   110   | 
    72 David Aspinall has written a user interface for Isabelle.  It runs under  | 
   111 David Aspinall has written a user interface for Isabelle.  It runs under  | 
    73 GNU Emacs.  It's useful to both novices and experts.  You can get it by ftp  | 
   112 GNU Emacs.  It's useful to both novices and experts.  You can get it by ftp  | 
    74 from ftp.dcs.ed.ac.uk, file /pub/da/Isamode.tar.gz.  | 
   113 from ftp.dcs.ed.ac.uk, file /pub/da/Isamode.tar.gz.  | 
    75   | 
   114   | 
    77 These files can be loaded in batch mode.  The commands can also be  | 
   116 These files can be loaded in batch mode.  The commands can also be  | 
    78 executed interactively, using the windows on your workstation.  This is a  | 
   117 executed interactively, using the windows on your workstation.  This is a  | 
    79 good way to get started.  | 
   118 good way to get started.  | 
    80   | 
   119   | 
    81 Each object-logic is built on top of Pure Isabelle, and possibly on top of  | 
   120 Each object-logic is built on top of Pure Isabelle, and possibly on top of  | 
    82 another object logic like FOL or LK.  A database or binary called Pure is  | 
   121 another object logic like FOL or HOL.  A database or binary called Pure is  | 
    83 first created, then the object-logic is loaded on top.  Poly/ML extends  | 
   122 first created, then the object-logic is loaded on top.  Poly/ML extends  | 
    84 Pure using its "make_database" operation.  Standard ML of New Jersey starts  | 
   123 Pure using its "make_database" operation.  Standard ML of New Jersey starts  | 
    85 with the Pure core image and loads the object-logic's ROOT.ML.  | 
   124 with the Pure core image and loads the object-logic's ROOT.ML.  | 
    86   | 
         | 
    87 		HOW TO GET A STANDARD ML COMPILER  | 
         | 
    88   | 
         | 
    89 To obtain Poly/ML, contact Mike Crawley <mjc@ahl.co.uk> at Abstract  | 
         | 
    90 Hardware Ltd, The Howell Building, Brunel University, Uxbridge UB8 3PH,  | 
         | 
    91 England.  | 
         | 
    92   | 
         | 
    93 To obtain Standard ML of New Jersey, contact David MacQueen  | 
         | 
    94 <dbm@com.att.research> at AT&T Bell Laboratories, 600 Mountain Avenue,  | 
         | 
    95 Murray Hill, NJ 07974, USA.  This compiler is available by FTP.  Connect to  | 
         | 
    96 research.att.com; login as anonymous with your userid as password; set  | 
         | 
    97 binary mode; transfer files from the directory dist/ml.  | 
         | 
    98   | 
   125   | 
    99 ------------------------------------------------------------------------------  | 
   126 ------------------------------------------------------------------------------  | 
   100   | 
   127   | 
   101 The electronic mailing list isabelle-users@cl.cam.ac.uk provides a forum  | 
   128 The electronic mailing list isabelle-users@cl.cam.ac.uk provides a forum  | 
   102 for Isabelle users to discuss problems and exchange information.  To join,  | 
   129 for Isabelle users to discuss problems and exchange information.  To join,  |