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}]))