ProgTutorial/Tactical.thy
changeset 475 25371f74c768
parent 466 26d2f91608ed
child 476 0fb910f62bf9
--- a/ProgTutorial/Tactical.thy	Mon Oct 17 13:30:49 2011 +0100
+++ b/ProgTutorial/Tactical.thy	Wed Oct 26 12:59:44 2011 +0100
@@ -13,6 +13,13 @@
 chapter {* Tactical Reasoning\label{chp:tactical} *}
 
 text {*
+   \begin{flushright}
+  {\em ``The most effective debugging tool is still careful thought, coupled with 
+  judiciously placed print statements.''} \\[1ex]
+  Brian Kernighan 
+  \end{flushright}
+
+  \medskip
   One of the main reason for descending to the ML-level of Isabelle is to be
   able to implement automatic proof procedures. Such proof procedures can
   considerably lessen the burden of manual reasoning. They are centred around
@@ -1581,7 +1588,7 @@
 \begin{figure}[p]
 \begin{boxedminipage}{\textwidth}
 \begin{isabelle} *}
-types  prm = "(nat \<times> nat) list"
+type_synonym  prm = "(nat \<times> nat) list"
 consts perm :: "prm \<Rightarrow> 'a \<Rightarrow> 'a"  ("_ \<bullet> _" [80,80] 80)
 
 overloading 
@@ -2472,7 +2479,7 @@
   val xs = strip_abs_vars (term_of rhs)
   val (_, ctxt') = Variable.add_fixes (map fst xs) ctxt
   
-  val thy = ProofContext.theory_of ctxt'
+  val thy = Proof_Context.theory_of ctxt'
   val cxs = map (cterm_of thy o Free) xs
   val new_lhs = Drule.list_comb (lhs, cxs)
 
@@ -2480,7 +2487,7 @@
     | get_conv (_::xs) = Conv.fun_conv (get_conv xs)
 in
   get_conv xs new_lhs |>  
-  singleton (ProofContext.export ctxt' ctxt)
+  singleton (Proof_Context.export ctxt' ctxt)
 end*}
 
 text {*