Paper/Paper.thy
changeset 115 653426ed4b38
parent 114 120091653998
child 116 11fd52dceb9b
--- a/Paper/Paper.thy	Mon Feb 04 11:14:03 2013 +0000
+++ b/Paper/Paper.thy	Mon Feb 04 21:11:43 2013 +0000
@@ -151,6 +151,14 @@
 using assms by auto
 
 
+lemma layout:
+  shows "layout_of [] = []"
+  and   "layout_of ((Inc R\<iota>)#os) = (2 * R\<iota> + 9)#(layout_of os)"
+  and   "layout_of ((Dec R\<iota> o\<iota>)#os) = (2 * R\<iota> + 16)#(layout_of os)"
+  and   "layout_of ((Goto o\<iota>)#os) = 1#(layout_of os)"
+by(auto simp add: layout_of.simps length_of.simps)
+
+
 (*>*)
 
 section {* Introduction *}
@@ -1162,6 +1170,15 @@
   this way it is easy to define a function @{term steps} that
   executes @{term n} statements of an abacus program.
   
+  The main point of abacus programs is to be able to translate them to 
+  Turing machine programs. Because of the jumps in abacus programs, it
+  seems difficult to build Turing machine programs using @{text "\<oplus>"}.
+  To overcome this difficulty we calculate a \emph{layout} as follows
+
+  \begin{center}
+  @{thm layout}
+  \end{center}
+
 
 
   %Running an abacus program means to start