ATM binadd: Computes x+y in binary. Inputs separated by #. 0 1 # // input alphabet 0 1 # B // tape alphabet 2 // number of tapes 1 // number of tracks on tape 0 1 // number of tracks on tape 1 2 // tape 0 is 2-way infinite 2 // tape 1 is 2-way infinite [copy_first] // initial state [done] // final state [copy_first] 0+B [copy_first] B+0 R+R [copy_first] 1+B [copy_first] B+1 R+R [copy_first] #+B [find_end] B+B R+S \\ [find_end] 0+B [find_end] 0+B R+S [find_end] 1+B [find_end] 1+B R+S [find_end] B+B [adding] B+B L+L [adding] 0+0 [adding] 0+B L+L [adding] 0+B [adding] 0+B L+L [adding] B+0 [adding] 0+B L+L [adding] 1+0 [adding] 1+B L+L [adding] 1+B [adding] 1+B L+L [adding] 0+1 [adding] 1+B L+L [adding] B+1 [adding] 1+B L+L [adding] 1+1 [carry] 0+B L+L [carry] 0+0 [adding] 1+B L+L [carry] B+0 [adding] 1+B L+L [carry] 0+B [adding] 1+B L+L [carry] 0+1 [carry] 0+B L+L [carry] B+1 [carry] 0+B L+L [carry] 1+0 [carry] 0+B L+L [carry] 1+B [carry] 0+B L+L [carry] 1+1 [carry] 1+B L+L [adding] B+B [done] B+B R+R [carry] B+B [done] 1+B S+R end