
diff -r 0150cf5982ae -r 2fff636e1fa0 ProgTutorial/Solutions.thy
--- a/ProgTutorial/Solutions.thy	Thu Mar 19 23:21:26 2009 +0100
+++ b/ProgTutorial/Solutions.thy	Sat Mar 21 12:35:03 2009 +0100
@@ -146,12 +146,8 @@
   simplified. We have to be careful to set up the goal so that
   other parts of the simplifier do not interfere. For this we construct an
   unprovable goal which, after simplification, we are going to ``prove'' with
-  the help of the lemma:
-*}
+  the help of ``\isacommand{sorry}'', that is the method @{ML SkipProof.cheat_tac}
 
-lemma cheat: "A" sorry
-
-text {*
   For constructing test cases, we first define a function that returns a 
   complete binary tree whose leaves are numbers and the nodes are 
   additions.
@@ -187,11 +183,11 @@
   Note that the goal needs to be wrapped in a @{term "Trueprop"}. Next we define
   two tactics, @{text "c_tac"} and @{text "s_tac"}, for the conversion and simproc,
   respectively. The idea is to first apply the conversion (respectively simproc) and 
-  then prove the remaining goal using the @{thm [source] cheat}-lemma.
+  then prove the remaining goal using @{ML "cheat_tac" in SkipProof}.
 *}
 
 ML{*local
-  fun mk_tac tac = timing_wrapper (EVERY1 [tac, rtac @{thm cheat}])
+  fun mk_tac tac = timing_wrapper (EVERY1 [tac, K (SkipProof.cheat_tac @{theory})])
 in
 val c_tac = mk_tac (add_tac @{context}) 
 val s_tac = mk_tac (simp_tac (HOL_basic_ss addsimprocs [@{simproc add_sp}]))




