[root@cs turing]# ./add.vtm This script adds two numbers. The format of the tape is: _1...1_1...1_ where 1...1 is a string of 1s. The first string of 1s represents the first number in unary, i.e., the number n is represented by a string of (n + 1) 1s (e.g. 2 is represented by `111'). The second string of 1s represents the second number in unary. The `_' in the middle separates the numbers. So an initial tape of `_111_111_' will add 2 and 2, and hopefully get `_11111___' (`11111' is 4 in unary). Specify initial tape: _1111_111_ 0: _<1>1 1 1 _ 1 1 1 _ : pass_first 0: _<1>1 1 1 _ 1 1 1 _ : pass_first 0: _ 1<1>1 1 _ 1 1 1 _ : pass_first 0: _ 1<1>1 1 _ 1 1 1 _ : pass_first 0: _ 1 1<1>1 _ 1 1 1 _ : pass_first 0: _ 1 1<1>1 _ 1 1 1 _ : pass_first 0: _ 1 1 1<1>_ 1 1 1 _ : pass_first 0: _ 1 1 1<1>_ 1 1 1 _ : pass_first 0: _ 1 1 1 1<_>1 1 1 _ : pass_first 0: _ 1 1 1 1<1>1 1 1 _ : pass_second 0: _ 1 1 1 1 1<1>1 1 _ : pass_second 0: _ 1 1 1 1 1<1>1 1 _ : pass_second 0: _ 1 1 1 1 1 1<1>1 _ : pass_second 0: _ 1 1 1 1 1 1<1>1 _ : pass_second 0: _ 1 1 1 1 1 1 1<1>_ : pass_second 0: _ 1 1 1 1 1 1 1<1>_ : pass_second 0: _ 1 1 1 1 1 1 1 1<_>: pass_second 0: _ 1 1 1 1 1 1 1 1<_>: delete1 0: _ 1 1 1 1 1 1 1<1>_ : delete1 0: _ 1 1 1 1 1 1 1<_>_ : delete2 0: _ 1 1 1 1 1 1<1>_ _ : delete2 0: _ 1 1 1 1 1 1<_>_ _ : HALT 0: _ 1 1 1 1 1 1 _<_>_ : HALT [root@cs turing]#