CookBook/Intro.thy
changeset 2 978a3c2ed7ce
child 5 e91f54791e14
equal deleted inserted replaced
1:b729345319f0 2:978a3c2ed7ce
       
     1 theory Intro
       
     2 imports Main
       
     3 
       
     4 begin
       
     5 
       
     6 chapter {* Introduction *}
       
     7 
       
     8 text {*
       
     9   The purpose of this document is to guide the reader through the
       
    10   first steps in Isabelle programming, and to provide recipes for
       
    11   solving common problems. 
       
    12 *}
       
    13 
       
    14 section {* Intended Audience and Prior Knowledge *}
       
    15 
       
    16 text {* 
       
    17   This cookbook targets an audience who already knows how to use the Isabelle
       
    18   system to write theories and proofs, but without using ML.
       
    19   You should also be familiar with the \emph{Standard ML} programming
       
    20   language, which is  used for Isabelle programming. If you are unfamiliar with any of
       
    21   these two subjects, you should first work through the Isabelle/HOL
       
    22   tutorial \cite{isa-tutorial} and Paulson's book on Standard ML
       
    23   \cite{paulson-ml2}.
       
    24 
       
    25 *}
       
    26 
       
    27 section {* Primary Documentation *}
       
    28 
       
    29 text {*
       
    30   
       
    31 
       
    32   \begin{description}
       
    33   \item[The Implementation Manual \cite{isa-imp}] describes Isabelle
       
    34   from a programmer's perspective, documenting both the underlying
       
    35   concepts and the concrete interfaces. 
       
    36 
       
    37   \item[The Isabelle Reference Manual \cite{isabelle-ref}] is an older document that used
       
    38   to be the main reference, when all reasoning happened on the ML
       
    39   level. Many parts of it are outdated now, but some parts, mainly the
       
    40   chapters on tactics, are still useful.
       
    41 
       
    42   \item[The code] is of course the ultimate reference for how
       
    43   things really work. Therefore you should not hesitate to look at the
       
    44   way things are actually implemented. More importantly, it is often
       
    45   good to look at code that does similar things as you want to do, to
       
    46   learn from other people's code.
       
    47   \end{description}
       
    48 
       
    49   Since Isabelle is not a finished product, these manuals, just like
       
    50   the implementation itself, are always under construction. This can
       
    51   be dificult and frustrating at times, when interfaces are changing
       
    52   frequently. But it is a reality that progress means changing
       
    53   things (FIXME: need some short and convincing comment that this
       
    54   is a strategy, not a problem that should be solved).
       
    55 *}
       
    56 
       
    57 
       
    58 end