# HG changeset patch # User griff # Date 1239177339 -7200 # Node ID 0d03e1304ef6a5d3bc6d462bb747a77075a3e62f # Parent f4c9dd7bcb28b981f6e99b31dc1f39766cd15632 minor changes diff -r f4c9dd7bcb28 -r 0d03e1304ef6 ProgTutorial/Tactical.thy --- a/ProgTutorial/Tactical.thy Wed Apr 08 09:22:07 2009 +0200 +++ b/ProgTutorial/Tactical.thy Wed Apr 08 09:55:39 2009 +0200 @@ -1017,8 +1017,9 @@ text {* A lot of convenience in the reasoning with Isabelle derives from its - powerful simplifier. The power of simplifier is a strength and a weakness at - the same time, because you can easily make the simplifier to run into a loop and its + powerful simplifier. The power of the simplifier is a strength and a weakness at + the same time, because you can easily make the simplifier run into a loop and + in general its behaviour can be difficult to predict. There is also a multitude of options that you can configure to control the behaviour of the simplifier. We describe some of them in this and the next section. @@ -1090,7 +1091,7 @@ The rewriting with rules involving preconditions requires what is in Isabelle called a subgoaler, a solver and a looper. These can be arbitrary - tactics that can be installed in a simpset and which are called during + tactics that can be installed in a simpset and which are called at various stages during simplification. However, simpsets also include simprocs, which can produce rewrite rules on demand (see next section). Another component are split-rules, which can simplify for example @@ -1417,7 +1418,7 @@ text {* For all three phases we have to build simpsets adding specific lemmas. As is sufficient - for our purposes here, we can add these lemma to @{ML HOL_basic_ss} in order to obtain + for our purposes here, we can add these lemmas to @{ML HOL_basic_ss} in order to obtain the desired results. Now we can solve the following lemma *} @@ -1483,7 +1484,7 @@ text {* where the second argument specifies the pattern and the right-hand side - contains the code of the simproc (we have to use @{ML K} since we ignoring + contains the code of the simproc (we have to use @{ML K} since we are ignoring an argument about morphisms. After this, the simplifier is aware of the simproc and you can test whether it fires on the lemma: @@ -1638,7 +1639,7 @@ in choosing the right simpset to which you add a simproc. Next let us implement a simproc that replaces terms of the form @{term "Suc n"} - with the number @{text n} increase by one. First we implement a function that + with the number @{text n} increased by one. First we implement a function that takes a term and produces the corresponding integer value. *}