CookBook/Readme.thy
changeset 59 b5914f3c643c
parent 58 f3794c231898
child 60 5b9c6010897b
--- a/CookBook/Readme.thy	Tue Dec 16 17:28:05 2008 +0000
+++ b/CookBook/Readme.thy	Wed Dec 17 05:08:33 2008 +0000
@@ -13,6 +13,9 @@
   @{text "isabelle make"}
   \end{center}
 
+  You very likely need a recent snapshot of Isabelle in order to compile
+  the cookbook.
+
   \item You can include references to other Isabelle manuals using the 
   reference names from those manuals. To do this the following
   four \LaTeX{} commands are defined:
@@ -47,9 +50,9 @@
   
   \begin{center}\small
   \begin{tabular}{lll}
-  @{text "@{ML \"1 + 3\"}"}         &         & @{ML "1 + 3"}\\
-  @{text "@{ML \"a + b\" for a b}"} & produce & @{ML "a + b" for a b}\\
-  @{text "@{ML Ident in OuterLex}"} &         & @{ML Ident in OuterLex}\\
+  @{text "@{ML \"1 + 3\"}"}         &                 & @{ML "1 + 3"}\\
+  @{text "@{ML \"a + b\" for a b}"} & \;\;produce\;\; & @{ML "a + b" for a b}\\
+  @{text "@{ML Ident in OuterLex}"} &                 & @{ML Ident in OuterLex}\\
   \end{tabular}
   \end{center}
 
@@ -57,7 +60,7 @@
   display ML-expressions and their response.  The first expression is checked
   like in the antiquotation @{text "@{ML \"expr\"}"}; the second is a pattern
   that specifies the result the first expression produces. This pattern can
-  contain @{text "\<dots>"} for parts that you like to omit. The response of the
+  contain @{text [quotes] "\<dots>"} for parts that you like to omit. The response of the
   first expression will be checked against this pattern. Examples are:
 
   \begin{center}\small
@@ -88,14 +91,25 @@
 
   \begin{center}\small
   \begin{tabular}{ll}
-  @{text "@{ML_response"} & @{text "\"cterm_of @{theory} @{term \\\"a + b = c\\\"}\"}"}\\
-                          & @{text "\"a + b = c\"}"}\smallskip\\ 
-  @{text "@{ML_response"} & @{text "\"($$ \\\"x\\\") (explode \\\"world\\\")\""}\\ 
-                          & @{text "\"Exception FAIL raised\"}"}
+  @{text "@{ML_response_fake"} & @{text "\"cterm_of @{theory} @{term \\\"a + b = c\\\"}\"}"}\\
+                               & @{text "\"a + b = c\"}"}\smallskip\\ 
+  @{text "@{ML_response_fake"} & @{text "\"($$ \\\"x\\\") (explode \\\"world\\\")\""}\\ 
+                               & @{text "\"Exception FAIL raised\"}"}
   \end{tabular}
   \end{center}
 
+  which produce respectively
+
+  \begin{center}\small
+  \begin{tabular}{p{7.2cm}}
+  @{ML_response_fake "cterm_of @{theory} @{term \"a + b = c\"}" "a + b = c"}\smallskip\\
+  @{ML_response_fake "($$ \"x\") (explode \"world\")" "Exception FAIL raised"}
+  \end{tabular}
+  \end{center}
   
+  This output mimics to some extend what the user sees when running the
+  code.
+
   \item[$\bullet$] @{text "@{ML_response_fake_both \"expr\" \"pat\"}"} can be
   used to show erroneous code. Neither the code nor the response will be
   checked. An example is:
@@ -108,7 +122,10 @@
   \end{center}
 
   \item[$\bullet$] @{text "@{ML_file \"name\"}"} should be used when
-  referring to a file. It checks whether the file exists.  
+  referring to a file. It checks whether the file exists.  An example
+  is 
+
+  @{text [display] "@{ML_file \"Pure/General/basics.ML\"}"}
   \end{itemize}
 
   The listed antiquotations honour options including @{text "[display]"} and 
@@ -118,7 +135,7 @@
   @{text "@{ML [quotes] \"\\\"foo\\\" ^ \\\"bar\\\"\"}"} \;\;produces\;\; @{text [quotes] "foobar"}
   \end{center}
 
-  while 
+  whereas
   
   \begin{center}\small
   @{text "@{ML \"\\\"foo\\\" ^ \\\"bar\\\"\"}"} \;\;produces only\;\; @{text "foobar"}