Paper/Paper.thy
changeset 116 11fd52dceb9b
parent 115 653426ed4b38
child 117 b27f4bd98078
--- a/Paper/Paper.thy	Mon Feb 04 21:11:43 2013 +0000
+++ b/Paper/Paper.thy	Mon Feb 04 23:12:17 2013 +0000
@@ -221,7 +221,7 @@
 of register machines) and recursive functions. To see the difficulties
 involved with this work, one has to understand that Turing machine
 programs can be completely \emph{unstructured}, behaving similar to
-Basic programs containing the infamous goto-statement \cite{Dijkstra68}. This
+Basic programs containing the infamous goto-statements \cite{Dijkstra68}. This
 precludes in the general case a compositional Hoare-style reasoning
 about Turing programs.  We provide such Hoare-rules for when it
 \emph{is} possible to reason in a compositional manner (which is
@@ -1071,7 +1071,7 @@
   \end{center}
 
   \noindent
-  Suppose @{thm (prem 1) "tcontra_halt"}. Given the invariants on the 
+  Suppose @{thm (prem 1) "tcontra_halt"} holds. Given the invariants on the 
   left, we can derive the following Hoare-pair for @{term tcontra} on the right.
 
   \begin{center}\small
@@ -1098,11 +1098,11 @@
   This Hoare-pair contradicts our assumption that @{term tcontra} started
   with @{term "<(code tcontra)>"} halts.
 
-  Suppose @{thm (prem 1) "tcontra_unhalt"}. Again given the invariants on the 
+  Suppose @{thm (prem 1) "tcontra_unhalt"} holds. Again given the invariants on the 
   left, we can derive the Hoare-triple for @{term tcontra} on the right.
 
   \begin{center}\small
-  \begin{tabular}{@ {}c@ {\hspace{-17mm}}c@ {}}
+  \begin{tabular}{@ {}c@ {\hspace{-18mm}}c@ {}}
   \begin{tabular}[t]{@ {}l@ {}}
   @{term "Q\<^isub>1 \<equiv> \<lambda>tp. tp = ([]::cell list, <code_tcontra>)"}\\
   @{term "Q\<^isub>2 \<equiv> \<lambda>tp. tp = ([Bk], <(code_tcontra, code_tcontra)>)"}\\
@@ -1139,7 +1139,7 @@
   programs. Abacus machines operate over a set of registers $R_0$,
   $R_1$, \ldots{} each being able to hold an arbitrary large natural
   number.  We use natural numbers to refer to registers; we also use a natural number
-  to represent a program counter. An abacus 
+  to represent a program counter and jumping ``addresses''. An abacus 
   program is a list of \emph{statements} defined by the datatype:
 
   \begin{center}
@@ -1162,7 +1162,7 @@
 
   \noindent
   Running such a program means we start with the first instruction
-  then execute statements one after the other, unless there is a jump.  For
+  then execute one statements after the other, unless there is a jump.  For
   example the second statement the jump @{term "Goto 0"} in @{term clear} means
   we jump back to the first statement closing the loop.  Like with our
   Turing machines, we fetch statements from an abacus program such