updated
authorChristian Urban <christian dot urban at kcl dot ac dot uk>
Thu, 03 Apr 2014 12:16:56 +0100
changeset 554 638ed040e6f8
parent 553 c53d74b34123
child 555 2c34c69236ce
updated
ProgTutorial/Essential.thy
ProgTutorial/First_Steps.thy
ProgTutorial/Tactical.thy
progtutorial.pdf
--- a/ProgTutorial/Essential.thy	Thu Mar 13 17:16:49 2014 +0000
+++ b/ProgTutorial/Essential.thy	Thu Apr 03 12:16:56 2014 +0100
@@ -192,8 +192,8 @@
   where a coercion is inserted in the second component and 
 
   @{ML_response [display,gray] "(@{term \"P x \<Longrightarrow> Q x\"}, @{prop \"P x \<Longrightarrow> Q x\"})" 
-  "(Const (\"==>\", \<dots>) $ \<dots> $ \<dots>, 
- Const (\"==>\", \<dots>) $ \<dots> $ \<dots>)"}
+  "(Const (\"Pure.imp\", \<dots>) $ \<dots> $ \<dots>, 
+ Const (\"Pure.imp\", \<dots>) $ \<dots> $ \<dots>)"}
 
   where it is not (since it is already constructed by a meta-implication). 
   The purpose of the @{text "Trueprop"}-coercion is to embed formulae of
--- a/ProgTutorial/First_Steps.thy	Thu Mar 13 17:16:49 2014 +0000
+++ b/ProgTutorial/First_Steps.thy	Thu Apr 03 12:16:56 2014 +0100
@@ -856,7 +856,7 @@
   of this antiquotation is that it does not allow you to use schematic
   variables in terms. If you want to have an antiquotation that does not have
   this restriction, you can implement your own using the function @{ML_ind
-  inline in ML_Antiquote} from the structure @{ML_struct ML_Antiquote}. The code
+  inline in ML_Antiquotation} from the structure @{ML_struct ML_Antiquotation}. The code
   for the antiquotation @{text "term_pat"} is as follows.
 *}
 
@@ -869,7 +869,7 @@
          |> ML_Syntax.print_term
          |> ML_Syntax.atomic
 in
-  ML_Antiquote.inline @{binding "term_pat"} (parser >> term_pat)
+  ML_Antiquotation.inline @{binding "term_pat"} (parser >> term_pat)
 end*}
 
 text {*
@@ -906,7 +906,7 @@
           |> ML_Syntax.atomic
       end
 in
-  ML_Antiquote.inline @{binding "typ_pat"} (parser >> typ_pat)
+  ML_Antiquotation.inline @{binding "typ_pat"} (parser >> typ_pat)
 end*}
 
 text {*
@@ -921,9 +921,9 @@
   code harder to read, than making it easier. 
 
   \begin{readmore}
-  The file @{ML_file "Pure/ML/ml_antiquote.ML"} contains the the definitions
-  for most antiquotations. Most of the basic operations on ML-syntax are implemented 
-  in @{ML_file "Pure/ML/ml_syntax.ML"}.
+  The files @{ML_file "Pure/ML/ml_antiquotation.ML"} and @{ML_file "Pure/ML/ml_antiquotations.ML"}
+  contain the infrastructure and definitions for most antiquotations. Most of the basic operations 
+  on ML-syntax are implemented in @{ML_file "Pure/ML/ml_syntax.ML"}.
   \end{readmore}
 *}
 
--- a/ProgTutorial/Tactical.thy	Thu Mar 13 17:16:49 2014 +0000
+++ b/ProgTutorial/Tactical.thy	Thu Apr 03 12:16:56 2014 +0100
@@ -250,7 +250,7 @@
   form @{text "C \<Longrightarrow> #C"}; when the proof is finished we are left with @{text
   "#C"}. Since the goal @{term C} can potentially be an implication, there is a
   ``protector'' wrapped around it (the wrapper is the outermost constant
-  @{text "Const (\"prop\", bool \<Rightarrow> bool)"}; in the figure we make it visible
+  @{text "Const (\"Pure.prop\", bool \<Rightarrow> bool)"}; in the figure we make it visible
   as a @{text #}). This wrapper prevents that premises of @{text C} are
   misinterpreted as open subgoals. While tactics can operate on the subgoals
   (the @{text "A\<^sub>i"} above), they are expected to leave the conclusion
@@ -264,7 +264,7 @@
   \begin{boxedminipage}{\textwidth}
   \begin{isabelle}
 *}
-notation (output) "prop"  ("#_" [1000] 1000)
+notation (output) "Pure.prop"  ("#_" [1000] 1000)
 
 lemma 
   shows "\<lbrakk>A; B\<rbrakk> \<Longrightarrow> A \<and> B" 
@@ -1483,10 +1483,10 @@
 
   \footnote{\bf FIXME: Why does it print out ??.unknown}
 
-  Adding also the congruence rule @{thm [source] UN_cong} 
+  Adding also the congruence rule @{thm [source] strong_INF_cong} 
 *}
 
-ML %grayML{*val ss2 = ss1 |> Simplifier.add_cong (@{thm UN_cong} RS @{thm eq_reflection}) *}
+ML %grayML{*val ss2 = ss1 |> Simplifier.add_cong (@{thm strong_INF_cong} RS @{thm eq_reflection}) *}
 
 text {*
   gives
@@ -1496,7 +1496,8 @@
 "Simplification rules:
   ??.unknown: A - B \<inter> C \<equiv> A - B \<union> (A - C)
 Congruences rules:
-  UNION: \<lbrakk>A = B; \<And>x. x \<in> B \<Longrightarrow> C x = D x\<rbrakk> \<Longrightarrow> \<Union>x\<in>A. C x \<equiv> \<Union>x\<in>B. D x
+  Complete_Lattices.Inf_class.INFIMUM: 
+    \<lbrakk>A1 = B1; \<And>x. x \<in> B1 =simp=> C1 x = D1 x\<rbrakk> \<Longrightarrow> INFIMUM A1 C1 \<equiv> INFIMUM B1 D1
 Simproc patterns:"}
 
   Notice that we had to add these lemmas as meta-equations. The @{ML empty_ss} 
@@ -2116,7 +2117,7 @@
 in
   Thm.prop_of (Thm.beta_conversion true ctrm)
 end"
-"Const (\"==\",\<dots>) $ 
+"Const (\"Pure.eq\",\<dots>) $ 
   (Abs (\"x\",\<dots>,Abs (\"y\",\<dots>,\<dots>)) $\<dots>$\<dots>) $ 
     (Const (\"Groups.plus_class.plus\",\<dots>) $ \<dots> $ \<dots>)"} 
 
Binary file progtutorial.pdf has changed