Numerit[WIN32][1700][1704]Xx:\num\uri levy\stm\.txt qffffff)@j@fffffvq@ 3@ffffff9@ 3@ffffff9@ffffff)@ffffff)@        Times New RomanArialSymbol Courier New X _`@9@progname7X M@9@PSI Hg@wwwwwgP@sc_table1`@l@ >==>>??0.010.010.010.01P zGQa@(\/f@*6TE | &WordMicrosoft Word   8@Times New RomanLSwUSw0-  2  [& -- --- -\ --F 2   Ek = k_startd2q2ddN8YC8 2  E [2   EPS = Startoo2q2Yo8YC8Y 2 b E ['- -\ --F - 2 ?  EPTS = tape(k)ozo2q28YdYCdC 2  E ['&; ;. &e  --$f  R    h 6  ! + 6 A M Y f s { o e \ T O J H G H J O# T2 \@ eN o\ {j w         6 h    R  ! !  # a    ? W m       w j \ N @ 2 %# * , - , * %      s f Y M A 6 + m! W ?    a #   ----8w R     c 1    + 6 B D P ] j rw f \ Y P I C ? > ; ; ; > ? C( I7 PE YS \W fe rs           1 c     R' , . . , #' a     D \ r         s e W S $E +7 1( 5 6 9 : 9 6 5 1 + $    w j ] P D B 6 +  r \ D     a #        # a      : R" h, ~7 B M Y M V b o |          *   !   *   - ; I N E S a n {       ~ h R :      a #     R      m ; #         { n a xS nE eN pI g; `- Z V J W T T T W J V Z ` g p e n x  | o b V M Y M B 7 , #" ; m      R   --&--- ! - Q--- i - 2 p ai  prodCd 2 p l i  gd2 p i  [j] = PS B8B2q2oo228@Times New RomanLSwUSw0--2 p i  andYdd- ! !: -2 p i  pro22dCd 2 p 3i  gd 2 p i  [j+1] = PTS ?B8qdB2q2ozo22Z 2 p i  ['& P -- $L]3]33 L3  $ 1 @ 1 --&&4  -- $A A   --&&2-- $7PP7 $@D--&&, -- $99  --&- -4vT--- 2 HPS = prooo2q2dCd 2  gd#2 j [j+2], NTS = proB8qdB22zo2q2dCd 2 gd#2 [j+3], STP = proB8qdB22ozo2q2dCd 2 Igd2 [j+4]B8qdB 2 > ['- - Wr--~ - 2 } k = k d2q2d22 } + 1 q2d2 2  }  ['&Ni5-- $hOO'h'--&&N7- -- $[[   $}  } D--&- -}X--9x.- 2 5.w9k = k d2q2d2 2 5.w9-C2 5.w9 1 2d2 2 5.w9 ['&:[-- $GGMM--&&<-- $hOO.h. $\ --&- -#^ --J? -  2 F  ?Jtape[k] = NTS 8YdYBdB2q2zo2 2 F ?J ['& _-- $hOOQhQ $\ --&- -P--Y@Times New RomanLSwUSw0- 2  STP = R ]of*_*TyT* 2 # Z'- -\J--E- 2  ESTP = L ]of*_*ToT* 2 E Z'&/f-- $H</</H $<X--&&  J-- $   < <--&&./ J-- $;0;I I 0--&&5-- $''--&&C6-- $5555--&&-- $8((B8B $@,}@--&&  |-- $L* 3* 3 L  $ @n --&& N-- $L[3[37L7 $ 5@5--&&D0U-- $Q;QTqJq1--&&'-- $^EE^ $R4--&& y-- $L33L $ @l--&& 3)--$B kt mU q8 x        y "o >g Zc xa c g o y  & ? V k    8 U t  .G^tkV?& xZ>"t^G.xqmk----r8Sct `U eP f3 m w        z n c 9\ U[ ZV xU V [ \ c n z + D H _ t     3 P U t  3LPg}t_HD+xZU9}gPL3wmfe`_ _t ` xxy~q})BG>Uk 'C_ZZx!:?6MkbUv>GB) t U U Z = !      v b M 6 ? : ! z s g t o n o xt Zg Zs _z C '           ! = Z }U qU ~t y x--&--- !s ---" V - 2  V "PS = STOP?oo2q2YozoYZ 2 kV " ['- -(--- -<--)- 2 +)Yes yJA* 2 +) Z'- -6 --K"- 2 M7"KNo yT* 2 M."K Z'--- !j---,_8@Times New RomanLSwUSw0- 2 #r_+END 2 2 #I_+ l'& -- $L33TLT $ R@R--&&C-- $   $P--&- -] U0 `-- r - 2 t r  No yT* 2 t r  Z'- - %f --O  J- 2 vJ O Yes yJA* 2 J O Z'"System 0-P """""\@xwwwwg @n8 Y&B  &&#TNPP2OMi & TNPP &&TNPP  B  @  &B z - -u H --qw@ LSwUSw0- @@Times New RomanLSwUSw0- . 2 $ NSk.- -u AH --  . 2 $ |1`.- -u iH @--  . 2 $ 1`.- -u H h--  . 2 $ 0`.- -u H --  . 2 $ 1`.̙- -u H -- ̙- -u H -- ̙- -u 1 H  -- &* B z ̙- -u Y H 0 -- ̙- -u H X -- ̙- -u H -- &- -u H --  . 2 $ NSk.- -u AH --  . 2 $ |1`.- -u iH @--  . 2 $ 1`.- -u H h--  . 2 $ 0`.- -u H --  . 2 $ 1`.̙- -u H -- ̙- -u H -- ̙- -u 1 H  -- &* B z ̙- -u Y H 0 -- ̙- -u H X -- ̙- -u H -- ̙- -u Y H 0 -- ̙- -u H X -- ̙- -u H -- --"System 0-&TNPP &P X%Ob@K;Q@tO& &?b &&#TNPP2OMi & TNPP &&TNPP  ? # &?Z &D > &J8 &J>X--Xu--qw@ LSwUSw0- --X>J--&&=X--Xh-- @Times New RomanLSwUSw0- .2 <CommentQ8]\2>%.--X=--&&X--X9-- @Times New RomanLSwUSw0- . 2 PTS;@5. . 2 sPS;5.--X--&& X--X -- @Times New RomanLSwUSw0- . 2 -T S>.--X --&& X--X , --  . 2 -n 08.--X --&&&X--X>--  . 2 -18.--X&--&&%8X̙--- !E%---&%8X̙--- !EP---  .2 BLANKKKQQW.--X8%--&&&JW>+--- !WJ---&JW>+--- !Wu--- --+>WJ--&&&=W+--- !W=---&=W+--- !{Wh--- --+W=--&&&W+--- !W---&W+--- !W9--- --+W--&&&WX +--+- W-- @Times New RomanLSwUSw0- . 2 CJNSE5.--+X W--&&W W +--+ W --  . 2 C NTSE@5.@Times New RomanLSwUSw0- . 2  STP1;6.--+ WW --&& Wj +--+? W, -- @Times New RomanLSwUSw0- . 2 Cf NSE5.--+j W --&&i W+--+ W --  . 2 C NTSE@5.@Times New RomanLSwUSw0- . 2  STP1;6.--+Wi --&&W|+--+QW>-- @Times New RomanLSwUSw0- . 2 CxNSE5.--+|W--&&{W&+--+W--  . 2 CNTSE@5.@Times New RomanLSwUSw0- . 2 STP1;6.--+&W{--&&%W+--+cWP-- @Times New RomanLSwUSw0- . 2 CNSE5.--+W%--&&W8+--+ W--  . 2 CNTSE@5.@Times New RomanLSwUSw0- . 2 STP1;6.--+8W--&&J*> -- *u-- @Times New RomanLSwUSw0- . 2 : 10.-- >*J--&&=* -- *h--  .2   Moves back[00+%50+4. . 2 t to S 05.-- *=--&&* -- *9-- @Times New RomanLSwUSw0- . 2 b S0>8.-- *--&&*X  -- - *-- @Times New RomanLSwUSw0- . 2 : kS150.-- X *--&&W *  -- * --  . 2   S5. . 2 t RE.--  *W --&& *j  -- ? *, --  . 2 : S050.-- j * --&&i * -- * --  . 2  & 00. . 2 t  L@.-- *i --&&*| -- Q*>--  . 2 : S050.-- |*--&&{*& -- *--  . 2  810. . 2 t 0L@.-- &*{--&&%* --- !h*%---&%* --- !*P--- -- *%--&&&*8 --- !*---&*8 --- !T*--- -- 8*--&&&J > --  u--  . 2 0 20.-- > J--&&=  --  h--  .2 Flips 1 ;5%0. . 2  . .2 s to % 0. . 2 00. . 2  . .2  s. Back to %@0+4 0. .2 j  S0 on 0 or 500500+. .2 BLANK@@EEK.--  =--&&  --  9-- @Times New RomanLSwUSw0- . 2 J S1>8.--  --&& X  --- !r ---& X  --- ! --- -- X  --&&&W    --- ! W ---&W    --- !T --- --   W --&&&  j  -- ?  , -- @Times New RomanLSwUSw0- . 2 S050.-- j   --&&i   --  --  . 2 & 10. . 2 0  L@.--  i --&& | -- Q >--  . 2 S150.-- | --&&{ & --  --  . 2 800. . 2 0 -RE.-- & {--&&%  -- c P--  . 2 S050.--  %--&& 8 --  --  . 2 J10. . 2 0 BL@.-- 8 --&&-- ;G--&& -- $  --&&?(ZC-- $L)LALAL)--&&-- $--&-- AL--&D > &J8 &J>X--Xu-- --X>J--&&=X--Xh-- @Times New RomanLSwUSw0- .2 <CommentQ8]\2>%.--X=--&&X--X9-- @Times New RomanLSwUSw0- . 2 PTS0;@5. . 2 sPS;5.--X--&& X--X -- @Times New RomanLSwUSw0- . 2 -T S>.--X --&& X--X , --  . 2 -n 08.--X --&&&X--X>--  . 2 -18.--X&--&&%8X̙--- !E%---&%8X̙--- !EP---  .2 BLANKKKQQW.--X8%--&&&JW>+--- !WJ---&JW>+--- !Wu--- --+>WJ--&&&=W+--- !W=---&=W+--- !{Wh--- --+W=--&&&W+--- !W---&W+--- !W9--- --+W--&&&WX +--+- W-- @Times New RomanLSwUSw0- . 2 CJNSE5.--+X W--&&W W +--+ W --  . 2 C NTSIE@5.@Times New RomanLSwUSw0- . 2  STP1;6.--+ WW --&& Wj +--+? W, -- @Times New RomanLSwUSw0- . 2 Cf NSE5.--+j W --&&i W+--+ W --  . 2 C NTSE@5.@Times New RomanLSwUSw0- . 2  STPR1;6.--+Wi --&&W|+--+QW>-- @Times New RomanLSwUSw0- . 2 CxNSE5.--+|W--&&{W&+--+W--  . 2 CNTSWE@5.@Times New RomanLSwUSw0- . 2 STP!1;6.--+&W{--&&%W+--+cWP-- @Times New RomanLSwUSw0- . 2 CNSE5.--+W%--&&W8+--+ W--  . 2 CNTS&E@5.@Times New RomanLSwUSw0- . 2 STP`1;6.--+8W--&&J*> -- *u-- @Times New RomanLSwUSw0- . 2 : 10.-- >*J--&&=* -- *h--  .2   Moves back[00+%50+4. . 2 t to S 05.-- *=--&&* -- *9-- @Times New RomanLSwUSw0- . 2 b S0>8.-- *--&&*X  -- - *-- @Times New RomanLSwUSw0- . 2 : kS150.-- X *--&&W *  -- * --  . 2   S5. . 2 t RE.--  *W --&& *j  -- ? *, --  . 2 : S050.-- j * --&&i * -- * --  . 2  & 00. . 2 t  L@.-- *i --&&*| -- Q*>--  . 2 : S050.-- |*--&&{*& -- *--  . 2  810. . 2 t 0L@.-- &*{--&&%* --- !h*%---&%* --- !*P--- -- *%--&&&*8 --- !*---&*8 --- !T*--- -- 8*--&&&J > --  u--  . 2 0 20.-- > J--&&=  --  h--  .2 Flips 1 ;5%0. . 2  . .2 s to % 0. . 2 00. . 2  . .2  s. Back to %@0+4 0. .2 j  S0 on 0 or 500500+. .2 BLANK@@EEK.--  =--&&  --  9-- @Times New RomanLSwUSw0- . 2 J S1>8.--  --&& X  --- !r ---& X  --- ! --- -- X  --&&&W    --- ! W ---&W    --- !T --- --   W --&&&  j  -- ?  , -- @Times New RomanLSwUSw0- . 2 S050.-- j   --&&i   --  --  . 2 & 10. . 2 0  L@.--  i --&& | -- Q >--  . 2 S150.-- | --&&{ & --  --  . 2 800. . 2 0 -RE.-- & {--&&%  -- c P--  . 2 S050.--  %--&& 8 --  --  . 2 J10. . 2 0 BL@.-- 8 --&&-- ;G--&J8 &J>X--Xu-- --X>J--&&=X--Xh-- @Times New RomanLSwUSw0- .2 <CommentQ8]\2>%.--X=--&&X--X9-- @Times New RomanLSwUSw0- . 2 PTS;@5. . 2 sPS;5.--X--&& X--X -- @Times New RomanLSwUSw0- . 2 -T S>.--X --&& X--X , --  . 2 -n 08.--X --&&&X--X>--  . 2 -18.--X&--&&%8X̙--- !E%---&%8X̙--- !EP---  .2 BLANKKKQQW.--X8%--&&&JW>+--- !WJ---&JW>+--- !Wu--- --+>WJ--&&&=W+--- !W=---&=W+--- !{Wh--- --+W=--&&&W+--- !W---&W+--- !W9--- --+W--&&&WX +--+- W-- @Times New RomanLSwUSw0- . 2 CJNSE5.--+X W--&&W W +--+ W --  . 2 C NTSE@5.@Times New RomanLSwUSw0- . 2  STP1;6.--+ WW --&& Wj +--+? W, -- @Times New RomanLSwUSw0- . 2 Cf NSE5.--+j W --&&i W+--+ W --  . 2 C NTSE@5.@Times New RomanLSwUSw0- . 2  STP1;6.--+Wi --&&W|+--+QW>-- @Times New RomanLSwUSw0- . 2 CxNSE5.--+|W--&&{W&+--+W--  . 2 CNTSE@5.@Times New RomanLSwUSw0- . 2 STP1;6.--+&W{--&&%W+--+cWP-- @Times New RomanLSwUSw0- . 2 CNSE5.--+W%--&&W8+--+ W--  . 2 CNTSE@5.@Times New RomanLSwUSw0- . 2 STP1;6.--+8W--&&J*> -- *u-- @Times New RomanLSwUSw0- . 2 : 10.-- >*J--&&=* -- *h--  .2   Moves back[00+%50+4. . 2 t to S 05.-- *=--&&* -- *9-- @Times New RomanLSwUSw0- . 2 b S0>8.-- *--&&*X  -- - *-- @Times New RomanLSwUSw0- . 2 : kS150.-- X *--&&W *  -- * --  . 2   S5. . 2 t RE.--  *W --&& *j  -- ? *, --  . 2 : S050.-- j * --&&i * -- * --  . 2  & 00. . 2 t  L@.-- *i --&&*| -- Q*>--  . 2 : S050.-- |*--&&{*& -- *--  . 2  810. . 2 t 0L@.-- &*{--&&%* --- !h*%---&%* --- !*P--- -- *%--&&&*8 --- !*---&*8 --- !T*--- -- 8*--&&&J > --  u--  . 2 0 20.-- > J--&&=  --  h--  .2 Flips 1 ;5%0. . 2  . .2 s to % 0. . 2 00. . 2  . .2  s. Back to %@0+4 0. .2 j  S0 on 0 or 500500+. .2 BLANK@@EEK.--  =--&&  --  9-- @Times New RomanLSwUSw0- . 2 J S1>8.--  --&& X  --- !r ---& X  --- ! --- -- X  --&&&W    --- ! W ---&W    --- !T --- --   W --&&&  j  -- ?  , -- @Times New RomanLSwUSw0- . 2 S050.-- j   --&&i   --  --  . 2 & 10. . 2 0  L@.--  i --&& | -- Q >--  . 2 S150.-- | --&&{ & --  --  . 2 800. . 2 0 -RE.-- & {--&&%  -- c P--  . 2 S050.--  %--&& 8 --  --  . 2 J10. . 2 0 BL@.-- 8 --&&J>X--Xu-- --X>J----Xu-- --X>J--&=X--Xh-- @Times New RomanLSwUSw0- .2 <CommentQ8]\2>%.--X=----Xh--  .2 <CommentQ8]\2>%.--X=--&X--X9-- @Times New RomanLSwUSw0- . 2 PTS;@5. . 2 sPS;5.--X----X9--  . 2 PTS4;@5. . 2 sPS;5.--X--& X--X -- @Times New RomanLSwUSw0- . 2 -T SS>.--X ----X --  . 2 -T SS>.--X --& X--X , --  . 2 -n 0S8.--X ----X , --  . 2 -n 0S8.--X --&&X--X>--  . 2 -1S8.--X&----X>--  . 2 -1S8.--X&--&%8X̙--- !E%---&%8X̙--- !EP---  .2 BLANKKKQQW.--X8%--&̙--- !E%---&%8X̙--- !EP---  .2 BLANKKKQQW.--X8%--̙--- !EP---  .2 BLANKKKQQW.--X8%--&JW>+--- !WJ---&JW>+--- !Wu--- --+>WJ--&--- !WJ---&JW>+--- !Wu--- --+>WJ----- !Wu--- --+>WJ--&=W+--- !W=---&=W+--- !{Wh--- --+W=--&--- !W=---&=W+--- !{Wh--- --+W=----- !{Wh--- --+W=--&W+--- !W---&W+--- !W9--- --+W--&--- !W---&W+--- !W9--- --+W----- !W9--- --+W--&WX +--+- W-- @Times New RomanLSwUSw0- . 2 CJNSE5.--+X W----+- W--  . 2 CJNSE5.--+X W--&W W +--+ W --  . 2 C NTSE@5.@Times New RomanLSwUSw0- . 2  STPk1;6.--+ WW ----+ W -- @Times New RomanLSwUSw0- . 2 C NTSE@5.@Times New RomanLSwUSw0- . 2  STP1;6.--+ WW --& Wj +--+? W, -- @Times New RomanLSwUSw0- . 2 Cf NSE5.--+j W ----+? W, --  . 2 Cf NSE5.--+j W --&i W+--+ W --  . 2 C NTSvE@5.@Times New RomanLSwUSw0- . 2  STP1;6.--+Wi ----+ W -- @Times New RomanLSwUSw0- . 2 C NTSE@5.@Times New RomanLSwUSw0- . 2  STP1;6.--+Wi --&W|+--+QW>-- @Times New RomanLSwUSw0- . 2 CxNSE5.--+|W----+QW>--  . 2 CxNSE5.--+|W--&{W&+--+W--  . 2 CNTSE@5.@Times New RomanLSwUSw0- . 2 STP#1;6.--+&W{----+W-- @Times New RomanLSwUSw0- . 2 CNTSE@5.@Times New RomanLSwUSw0- . 2 STP1;6.--+&W{--&%W+--+cWP-- @Times New RomanLSwUSw0- . 2 CNSE5.--+W%----+cWP--  . 2 CNSE5.--+W%--&W8+--+ W--  . 2 CNTS.E@5.@Times New RomanLSwUSw0- . 2 STP1;6.--+8W----+ W-- @Times New RomanLSwUSw0- . 2 CNTS&E@5.@Times New RomanLSwUSw0- . 2 STP71;6.--+8W--&J*> -- *u-- @Times New RomanLSwUSw0- . 2 : 1S0.-- >*J---- *u--  . 2 : 1S0.-- >*J--&=* -- *h--  .2   Moves back[00+%50+4. . 2 t to S 05.-- *=---- *h--  .2   Moves back[00+%50+4. . 2 t to S 05.-- *=--&* -- *9-- @Times New RomanLSwUSw0- . 2 b S0>8.-- *---- *9--  . 2 b S0>8.-- *--&*X  -- - *-- @Times New RomanLSwUSw0- . 2 : kS150.-- X *---- - *--  . 2 : kS150.-- X *--&W *  -- * --  . 2   S15. . 2 t R1E.--  *W ---- * --  . 2   S15. . 2 t R1E.--  *W --& *j  -- ? *, --  . 2 : S050.-- j * ---- ? *, --  . 2 : S050.-- j * --&i * -- * --  . 2  & 000. . 2 t  L0@.-- *i ---- * --  . 2  & 000. . 2 t  L0@.-- *i --&*| -- Q*>--  . 2 : S050.-- |*---- Q*>--  . 2 : S050.-- |*--&{*& -- *--  . 2  8100. . 2 t 0L0@.-- &*{---- *--  . 2  8100. . 2 t 0L0@.-- &*{--&%* --- !h*%---&%* --- !*P--- -- *%--&--- !h*%---&%* --- !*P--- -- *%----- !*P--- -- *%--&*8 --- !*---&*8 --- !T*--- -- 8*--&--- !*---&*8 --- !T*--- -- 8*----- !T*--- -- 8*--&J > --  u--  . 2 0 20.-- > J----  u--  . 2 0 20.-- > J--&=  --  h--  .2 Flips 1 ;5%0. . 2  . .2 s to % 0. . 2 00. . 2  . .2  s. Back to %@0+4 0. .2 j  S0 on 0 or 500500+. .2 BLANK@@EEK.--  =----  h--  .2 Flips 1 ;5%0. . 2  . .2 s to % 0. . 2 00. . 2  . .2  s. Back to %@0+4 0. .2 j  S0 on 0 or 500500+. .2 BLANK@@EEK.--  =--&  --  9-- @Times New RomanLSwUSw0- . 2 J S1>8.--  ----  9--  . 2 J S1>8.--  --& X  --- !r ---& X  --- ! --- -- X  --&--- !r ---& X  --- ! --- -- X  ----- ! --- -- X  --&W    --- ! W ---&W    --- !T --- --   W --&--- ! W ---&W    --- !T --- --   W ----- !T --- --   W --&  j  -- ?  , -- @Times New RomanLSwUSw0- . 2 S050.-- j   ---- ?  , --  . 2 S050.-- j   --&i   --  --  . 2 & 100. . 2 0  L0@.--  i ----  --  . 2 & 100. . 2 0  L0@.--  i --& | -- Q >--  . 2 S150.-- | ---- Q >--  . 2 S150.-- | --&{ & --  --  . 2 8010. . 2 0 -R1E.-- & {----  --  . 2 8010. . 2 0 -R1E.-- & {--&%  -- c P--  . 2 S050.--  %---- c P--  . 2 S050.--  %--& 8 --  --  . 2 J100. . 2 0 BL0@.-- 8 ----  --  . 2 J100. . 2 0 BL0@.-- 8 ---- ;G--& -- $  --&&?(ZC-- $L)LALAL)--&&-- $--&-- AL----"System 0-&TNPP &vvvvvvvvvvvvvvvvvv1vvLRunning a Special Turing Machine Under Numerit7vvLUri Levy, November 29, 2001 Last modified: 10/10/02vvLZvvLThis Numerit program executes (emulates) a Special Turing Machine (STM). Numerit will run any user-supplied STM program subjected to a small set of basic encoding rules (as described in section III below). The user writes the STM program in Numerit's Input File, or read it into the Input File from a disk file (see the help topic "Input File"). vvLFigure 1 shows graphically the "Turing Output Tape" as the user-supplied STM program is executed. Copy an example from section IV below to the Input File and run the program.vvLvvL4The Turing Output TapevvLvvLProgram Name:  vvLvvLPresent State: ! vvL" vvL! . The Turing Output Tape of a special Turing machine (STM). The user writes a program for a special Turing machine (subjected to a small set of basic encoding rules as described in section III below). The program is written in Numerit's Input File (or read into it from a disk file). Numerit will run any user-written STM and will display the resulting steps in this "Turing Output Tape" chart.vvL vvLI. OverviewvvLA Turing Machine is "equivalent" to the most sophisticated computer. However, because of its simplicity it offers computing insight and is a powerful computing research tool in the hands of scientists.hvvLThe NUMERIT program presented here emulates (executes) any (user supplied) Special Turing Machine (STM).vvLSeveral very basic STM codes (ready to run under the present Numerit program) are given in section IV below for illustration purposes.vvLWe start with a brief explanation of the flow by which Numerit executes the supplied STM codes. (This flow is also the basis for a Universal Turing Machine which will soon be described in a separate Numerit Application).vvLEvvLII. The basic loop for Numerit to emulate a Special Turing MachineXvvLThe flow-chart shown in figure 2 is a flow chart for a NUMERIT program to run any STM.vvLThe STM is given by a string of "quintets" in prog[j] (see section IV below for more detailed explanation of how an STM works with some examples), and the initial input to the Turing tape is another string in tape[k]:vvL 33KAv ף)\APS - 3 _ Present State33KAv ף)\ANS - 1 Y Next State$33KAv ף)\APTS - & 8 Present Tape Symbol!33KAv ף)\ANTS - $ 2 Next Tape Symbol33KAv ף)\ASTP - & 8 step (L, R)%33KAv ףtape[k] - data on the (infinite) tape?33KAv ףprog[j] - program string in the format PS PTS NS NTS STPvvL .vvLFlow Chart to run an STM Program by NumeritvvLvvL# q=Avq=" . A flow-chart to run STMs by NUMERIT. The same flow chart is the basis for the UTM algorithm. {Basically, a UTM performs the loop shown in the flow-chart, after it was broken into small "Turing" steps.}vvvvvLThis is actually a two-loop flow. One internal loop to search for the present state and present tape symbol and the other is the external loop of switching from the presently known pair of state and symbol to the next, newly "discovered", pair.vvL{The same flow chart holds for the Universal Turing Machine. Our proposed UTM takes 16 Turing "states" to perform these two loops, including the STOP state.}vvLIn the following sections we will list the STM encoding rules (section III) and present the STM basics with some examples (section IV).vvLvvLIII. STM encoding rules`vvLThe user-supplied STM code to run under this Numerit program must follow these formatting rules:vvLSTM encoding rulesvvL)vvL1. First line of the code is the STM name>vvL2. Next is a string of "quintets" describing the STM operation@vvL s@3. Each STM quintet must be in the format: PS PTS NS NTS STPvvL\@ 4 \ (spaces separating the quintet elements) 4 \ Step to the right must be designated by R 4 \ Step to the left must be designated by L2vvL4. The STM halt state must be designated as "STOP"FvvL5. "EOP" must appear at the end of the STM string (in capital letters)MvvL6. A string representing the Turing tape input is next (can be a null string)MvvL7. "EOT" must appear at the end of the tape input string (in capital letters)QvvL8. Originally all tape cells are filled with "." representing blank (empty) cells\@v]9. Following "EOT", a list of parameters may appear. Currently there are two parameters: "start" and "delay". The "start" parameter specifies the position of the tape cell for starting the placement of the tape input data (see rule 6 above). The "delay" parameter specifies a delay (in sec.) after execution of each quintet to control execution speed and is used mainly for slowing down the execution to make it easier to watch the action on the tape (Fig. 1). The parameters must be each on a separate line in the following format: = z start n = z delay n where n is a number. The parameters are optional and any of them that is not specified has a default value (default start = 1; default delay = 0.1).\@v]vvLvvLvvLDisplay limitations vvLScrollvvLThe display in figure 1 initially shows the first 30 cells of the tape. However, the tape will scroll to the right to show more cells when necessary (up to cell 1000).vvLvvLAlphabet restriction-vvLThere is (practically) no restriction on Alphabet but the tape cells will only show a certain set (see appendix) and is limited to the first two characters of each "word". You can study these limitations by running the simplest STM example given in IV-A below with different symbol combinations.vvLvvLInitial delayvvLAfter showing the Turing tape, the Numerit simulation will delay execution for a second to let the user inspect the tape (pushing the Numerit Pause button will cause it to hold until another button is pushed ("Run" for example).vvLpvvLWith the above listed set of rules, this Numerit program will run any STM code with any (finite) alphabet.'vvL IV. Special Turing Machine examples\vvLFollowing are examples of four Special Turing Machines, each one performing a distinct task.vvL vvLIV-A. Write "AZ"vvLThe simplest Special Turing Machine has only one state. An example would be a machine in which the head moves to the right and writes a chosen symbol.ZvvLThus, the present state (PS) in this STM is arbitrarily designated as WT (say stands for Write iT), present tape symbol (PTS) is "." (blank), next state (NS) is similar to PS i.e. WT, next tape symbol (NTS) is the symbol to be written - AZ in this example, and the head step (STP) is to the right, i.e. R. Thus the quintet describing this STM is vvL#WT . WT AZ RTvvLThe complete STM for Numerit execution (see encoding rules in section III above) is:vvL vvL#Write "AZ"vvL#WT . WT AZ RvvL#EOPvvL#EOTvvLxvvLYou can copy this STM code and paste it in the Input File, run Numerit and watch the tape in figure 1 fills with AZ's.vvLThe STM runs indefinitely. The Numerit execution of this STM will stop after writing "AZ" into 1000 cells (press F5 to stop it manually).vvLvvLBvvLIV-B. Turing Counter "Left" (least-significant bit to the left)vvLOne of the simplest special Turing machines is the Turing Counter. As shown in figure 3, it has only two states and a four-symbol tape alphabet (including blank). The two states - S0 and S1 - are doing the following:o\"Av\"S0 - Returns left to the beginning of counter (marked by "S") If "S", moves one right and switches state to S1.g\"Av\"S1 - Moves right. Flips 1-s to 0-s and stays at S1. Flips a 0 or a BLANK to 1 and switches state to S0.vvL`vvL------------------------------------------------------------------------------------------------vvL$ vvLvvLvvL% vvv{APS - > Present Statevvv{APTS - 2 ^ Present Tape Symbolvvv{ANS - < w Next Statevvv{ANTS - 0 T Next Tape Symbolvvv{ASTP - 2 ^ "R" or "L"`vvL------------------------------------------------------------------------------------------------q=Avq=# . States of a Special Turing Machine (STM) to increment a binary counter. As shown, there are only two states - S0 and S1 and the input data to the STM contains only 4 symbols - S, 0, 1 and blank. The counter has no STOP state and thus will run forever.vvLzvvLBy consulting the table of figure 3, we can encode the Turing counter in the "quintet" format PS PTS NS NTS STP as:vvLvvL#Turing Counter "Left"vvL#S0 S S1 S RvvL#S0 0 S0 0 LvvL#S0 1 S0 1 LvvL#S1 0 S0 1 LvvL#S1 . S0 1 LvvL#S1 1 S1 0 RvvL#EOPvvL#SvvL#EOTvvL&vvLwhere we have designated BLANK as ".".vvLGvvLThe initial input data to the tape of the STM counter is just the character "S". In execution, the STM will increment the counter to the right of this "start" symbol. {The reader will soon find at the NUMERIT Internet site, another NUMERIT simulation, dedicated to running such STM-counter by a Universal Turing Machine}.vvLvvLIn the Counter example above, the counter "expands" from left to right and the least-significant bit is to the left. The next example is an "inverted" counter where the least significant bit is to the right (and the counter expands to the left).vvLvvLDvvLIV-C. Turing Counter "Right" (least-significant bit to the right)$vvLBy transforming R to L and L to R in the "left" counter, the counter is inverted and will expand to the left with least significant bit to the right. Note that here we must specify a start parameter greater than 1 to provide the counter with enough room on the left (30 in the example below).fvvLYou can copy the STM program below to the Input File and watch its execution by looking at figure 1.vvLvvL#Turing Counter "Right"vvL#S0 S S1 S L vvL#S0 0 S0 0 R vvL#S0 1 S0 1 R vvL#S1 0 S0 1 R vvL#S1 . S0 1 RvvL#S1 1 S1 0 LvvL#EOPvvL#SvvL#EOT vvL#start 30vvL IV-D. Turing CopiervvLLast example is Turing Copier. Namely - the machine will copy a user supplied binary number (composed of the symbols "0" and "1") and stop.vvLIn the example below the copying task is performed by six Turing states - GO, F0, F1, B0, B1 and HM. You can copy the program to the Input File and watch its execution. Next you can play with the input number and verify the generality of the copying function.vvLvvL#Turing CopiervvL#GO M HM M RvvL#F0 0 F0 0 RvvL#F0 1 F0 1 RvvL#F0 W F0 W RvvL#F0 . B0 0 LvvL#F1 0 F1 0 RvvL#F1 1 F1 1 RvvL#F1 W F1 W RvvL#F1 . B1 1 LvvL#B0 M HM 0 RvvL#B0 0 B0 0 LvvL#B0 1 B0 1 LvvL#B0 W B0 W LvvL#B1 M HM 1 RvvL#B1 0 B1 0 LvvL#B1 1 B1 1 LvvL#B1 W B1 W LvvL#HM 0 F0 M RvvL#HM 1 F1 M RvvL#HM W STOP W RvvL#EOPvvL#M 1 1 0 1 WvvL#EOTvvL V. SummaryvvLPresented here is a NUMERIT program that runs any Special Turing Machine and displays the tape in figure 1. The STM program is supplied by the user and should appear in the "Input" pane, subjected to a small set of formatting rules."vvLYou are invited to play and enjoy.fvvLA second NUMERIT application, running a Universal Turing Machine will soon appear on the NUMERIT site.vvLvvLAppendix 1. Display alphabetfvvLA1. The graphic display of the present NUMERIT program will accept the following string of characters:0vvL"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890\/.,()[]{}"\vvLA2. The tape cells in the graphical display are programmed to "accept" only two characters. vvv vvv4THE ENDvvv q8ffffff)@j@fffffvq@?@ffffff9@?@ffffff9@ffffff)@ffffff)@         Times New RomanArialSymbol Courier Newx:\num\uri levy\stm\drawx:\num\uri levy\stm\draw.numdefsx:\num\uri levy\stm\defs.numcharx:\num\uri levy\stm\char.numbmpx:\num\uri levy\stm\bmp.num  s/ c_table1/ px_arrow_new/ py_arrow_new/ progname/prog/tape/n_rect/k_start/k_end/k_max/ tape_max/delay_seconds/knamevalkfktnpPSPTSjSTP   <?<?<?     \7  G  5w \7   \7  X7  6  \7  Z7  6 \7 X X`7   e  @ A! 4 4"  A e4 #<?$ <?%&' ,  A- 4/ 40   X8 1 4 \  @4 \`72  @44  \75 69 4  @4: <?<  @4?  \7@ @ A X7B C  DF <?G6 H  \7I A J Y7K L  MO <?P6 6R S  T N6 IG;:GGGOx  defs.main char.main draw.main draw_arrow draw_STM_PTS 1000@@1?0.1?0STARTDELAY12(@.3@4@5@2@STR STM: Stopping#Trying to move beyond end of tape L%Trying to move beyond start of tape Error in program  )c:\program files\numerit pro 1.7\samples\  =s/local_y/local_x/ arrow_height/ arrow_width/arrow_height_array/arrow_width_array/arrow/ erase_arrow/ show_arrow/ px_arrow/ py_arrow/ px_arrow_new/ py_arrow_new/arrow_start_x/arrow_start_y/w/g/character_string/ c_height/hy/tape/tape_line_space/ tape_start_x/ tape_start_y/ tape_rect/ show_tape/k_start/k_end/n_rects/rect_x/rect_y/ix/iy/vwhite/vblue/black/white/red/green/blue/yellow/orange/brown/ light_blue/ light_purple/ light_brown/ dark_purple/vblack/vred/vgreen/vyellow/vorange/vbrown/ vlight_blue/vlight_purple/ vlight_brown/ vdark_purple/delay_seconds/n_of_tape_lines/ first_time l<  4 6,  4 7  4 7 4 7  4 7<?   A C@ A   BA   D B@    C BA   D \7   B@    C A BA  <?g draw_rect draw_rectdydxdM   / 0@ / 0@4 /0> move_arrow move_arrowdummy_xdummy_y dummy_new_x dummy_new_yis1is2 9  ]  ]b7 / 0@ / 0@  4/ 0 / 0@ / 0@  4/ 0>7 write_on_tapewrite_on_tapedummy_position_xdummy_position_y line_color ground_colorstringsymbol_2D_arrayground_width_arrayground_height_arraych_width_arraych_width_array_1ch_width_array_2jf character_fijstring1string2jf1jf2character_f_1character_f_2    ! #  \7% / 0 @ & 4/0 e ( 4/0 @ e) / 0 @ e*/ 0 @ 4/0 @4 ,+ / 0 4/0 , / 0@ @4 .  / 0 @X8/   4/0 @X80  4 \71  4 63  4  N6 N68 / 0 C @A @  4/0 C @A @4 /06 >   ?  A / 0 @B / 0 @D 4/0 e E 4/0 e H 4/0 4/0@ @ eI / 0 @ eJ  4 L / 0 4/0M / 0 4/0O / 0@ @4 P / 0@ 4/0@ @ @4 U  / 0 @X8 V   4/0 4/0@ @X8W  4 \7X  4 6Z  4  N6  N6 ^ / 0 C @A @  4/0 4/0@ C @A @4 /0b>epEz}Pvyou draw_arrow draw_arrowkkk cd / 0Z / 0[`7e / 0A @g/  0h/  0k/ 0 / 0D/ 0B@/ 0l/ 0 / 0C/ 0BA/ 0m / 0D \7n/   0B@/ 0o/ 0 / 0C A/ 0BA/ 0q/ 0<?r/ 0 \7s/ :0 X7/ :0 t6v / 0X7w / 0Ax /N0y /N0z<?{/ :0 X7/ :0 |/<0}6~/ 0 \7 / 0A /N0 /N0<?/ :0 X7 / :0 > m write_tape write_tapejyixiiixiy   / ;0X8/ 0  A/ 0BA  / 0 AX8/ 0 / 0B@  / 0<? N6 N6/ 0 / 0X8 / 0A @ / 0D / 0C  \7 / 0  A/  0 C@  A/ 0B@/  0 C@ / 0BA/ 0 60 4/0<? N6> 9<58An draw_STM_PTS draw_STM_PTSkkk  / 0X7 / 0A /N0 /N0<?6 / 0Y7 / 0A /N0 /N0<?6 / 0A @ / 0D/ 0 / 0C/!0/ 0 \7/  0/ !0 A/!0/  ! 0BA/  0 A/ 0B@/ 0<?/  0 C@/ 0 A/ 0B@/  0 C@/ ! 0BA/ 0 60 4/0<?/ 0 \7/ :0 X7/ :0 >k:kk 1?2@04@0.9? <  !"#$%&'()*+,-./0123456789:;)c:\program files\numerit pro 1.7\samples\  Bs/ c_table1/local_x/local_y/ arrow_height/ arrow_width/arrow_height_array/arrow_width_array/arrow/ erase_arrow/ show_arrow/ progname/prog/tape/tape_line_space/ tape_start_x/ tape_start_y/ show_tape/n_rects/rect_x/rect_y/black/white/red/green/blue/yellow/orange/brown/ light_blue/ light_purple/ light_brown/ dark_purple/vblack/vwhite/vred/vgreen/vblue/vyellow/vorange/vbrown/ vlight_blue/vlight_purple/ vlight_brown/ vdark_purple/n_of_tape_lines/k_start/k_end/k_max/ tape_max/aspectscale N_columnsN_rows prog_maxHc3_brwc2_brc2_bg shift_x1 local_x1 local_y1ipsnpsts     2 3 -   3 B4 4 2C5 1 6! 4 C" .#  -B/$ 4  BA C% 5 BA&  B+ 7, 5 !- 7 5 #. 7 5 $/ 75 %0  @ &1 B B@ '2  @ )3  @ *4 B B@ +5  B  B@ (6  B  B@ ,7  @ @ ":  4 ,; 4 < 4 = 4 > 4 ? 4 @ 4 A 4 B 4 C 4 D 4 E 4 F 4 J  4 ,8K 4 8L 4 8M 4 8P  4 ,9Q 4 9R 4 9U  4 ,:V 4 :W 4 :\                                                               j  $Bm 4n 4o   ep   eq  4 , u 5 44 ,w ;x  5<y  5=z > > X8{ = 4 A > ;BA <@4 > A N>6|   e   em7     y ? @ @ 6Y7 ?5w ? \76 N@ @4 ? 6 14 ,  A 0 0 1Y7 A5w A \7 6 N0 04 A 6 5BZPf~t 01?3@6@32@@171@57L@1000@@2@1.2333333?255o@4@0.5?5@7@8 @0.7ffffff?0.3333333?9"@0.2?0.8?10$@11&@12(@STM StopBInput file is empty - please load a program into the Input pane EOP.EOT 2  !"#$%&'()*+,-./01x:\num\uri levy\stm\bmpbmp.num  character_string/w/g/ c_height/hy/bj_max start_rowhw_maxi2 max_distance_between_charactersjij1j2i1character_width <   @     e  @   4 ,   4 ,      X8      Y7  @4 \7!  @6# @$ 6(  Y7)   @4 \7 *  @6 , 4  A-  4 e.  4   @4/  @ 0 6 N 6 6DbX`cw char_bmp .ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890\/.,()[]{}1?}6@11&@15.@07@204@ )c:\program files\numerit pro 1.7\samples\   char_bmp char_bmpy                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      df g> 02@1?