Skip to content

Instantly share code, notes, and snippets.

@awmorp
Created March 26, 2021 13:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save awmorp/197640ce0f380f8a6b0a4cdd138156a0 to your computer and use it in GitHub Desktop.
Save awmorp/197640ce0f380f8a6b0a4cdd138156a0 to your computer and use it in GitHub Desktop.
Saved Turing machine state from http://morphett.info/turing/turing.html
{"program":"; MULTIEXPANDAL GROWTH with 16 states (15 + 1 W starter state)\n; Daniel Nagaj, 3/18/2021 \n; empty starting tape\n; the Z0 (14) starter creates\n; 1(B1)1_111__1_1 at step 20\n; with 2 Ackermann groups, 1 round of expansion and 1 round of multiexpansion.\n; After the first round of expansion is done, we get\n; 1(B1)1_111_1_1_1_111___1 at step 91\n; with 6 Ackermann groups and 1 round of multiexpansion left.\n; When the Ackermann growth machine is processed, \n; we still have multiexpansion to go (i.e. MANY rounds of expansion), \n; and this beats Graham's number\n\n;including the P0 to D0 left transition at the end of multiexpansion\n;redefining the E state, route the G1 E0 E1 H0 turn \n;via G1 K0 E1 H0 I0 A0 instead, which creates 1111 up front after an Ackermann cycle.\n;because the E0 state is unused, we can utilize it as follows:\n;the end of the expansion cycle now goes through\n; (K0) ...\n; (E0)0 ...\n; 1(H0) ...\n; (I1)1 ...\n; (H0)01 ...\n; (I0)101 ...\n; (A0)1101 ...\n;creating a 1-longer second-to-first group, and keeping 111 up front\n\n\n\n0 _ 1 r 2 ; a left-end adder, changing to B1 and keep going\n0 1 1 l 0 ; left mover A1, also the starting state\n\n2 _ _ r 4 ; B0 means we are at a divisor between the first 11111 0 111, keep 0, move right\n2 1 1 r 2 ; B1 moves to the right through 1's\n\n4 _ 1 r 7 ; D0: there was only one 1 in the (last) group, i.e. we erased it\n; write 1 here and switch to F1G0 right\n4 1 _ l 10 ; D1: there were more 1's, OK to turn, using I0 to A1\n\n7 _ 1 r 1 ; F0 means we finished the last group, now check the __ and expandal part\n7 1 _ r 8 ; F1 checks if there is only a single 1 in the next group (already powering)\n8 _ 1 r 7 ; G0 means there is a single 1, keep searching for 11 (F1G0 moves right)\n8 1 1 l 12 ; G1 means there are 11's, start moving the first group to sec-to-last, like\n; 11111 01010 1 01111 \n; 1 01010 111111 0111 (or something)\n; now routed through G1 K0 E1 H0\n\n5 _ 1 r 9 ; a creator, used at the end of expansion\n; going left through K0 E0 (move right) H0 I1 H0 I0 A0\n5 1 1 l 9 ; an inbetween step to a H0 I1 leftmover (alternate 10 to 01)\n9 _ 1 l 10; a H0 I1 (9-10) leftmover that switches 10101 to 01010\n9 1 1 r 11 ; end the alternating sequence on H1, we reached the left end, \n ; make a right turn to a J0 H1 rightmover/keeper that goes to 11 on the right\n10 _ 1 l 0; I0: used on the very left, changes to A0\n; careful, we if let it keep a 0, it creates more groups and flies to eternity\n10 1 _ l 9 ; I1: moving 01010 to 10101 via a I1 H0 leftmover\n11 _ _ r 9; a rightmover J0 H1 that keeps the 010101 sequence, stops at 11\n11 1 1 l 5; make a left turn (reached the 11 block on the right)\n; use C0 to go to H0 I1 leftmover alternation\n\n1 _ 1 r 14 ; the expandal part after the __ division: move to multiexpansion\n; this needs to stay a 1\n1 1 _ l 13 ; if there is a 1, erase, and go directly to the L0 K1 left-motion\n; move to the K1 L0 (12-13) leftmotion (keeps the 10 groups) \n; and then later K1 L1 (12-13) leftmotion (that splits the leading 11111111 into 10101010)\n12 _ _ l 5; K0: end of the K1L1 leftmotion, \n; used in the end of expansion via E0 H0 I1 H0 I0 A0\n; also used in the end of Ackermann via G1 K0 E1 H0\n12 1 1 l 13; K1: the keeper K,\n; used in the K1L0 and the K1L1 leftmotions that increase the number of groups\n; in the leading group\n13 1 _ l 12; used in the K1L0 leftmotion,\n13 _ 1 l 12; used in the K1L1 leftmotion \n; the fLipper L flips\n; 111111111010101010101 to\n; 11010101010111111111111\n; which should increase the number of Ackermann groups, as long as the number of the leading 1's \n; is at least twice the previous number of groups\n\n14 _ 1 l 3 ; Z0: the starter / or a step before halting, at the end of multiexpansion\n14 1 _ l 15 ; Z1: do multiexpansion - move left to a keeper P(15)\n15 1 1 l 16 ; a keeper of 1's and a switch: move left using P1 Q0/1, cleaning to 111's\n15 _ _ l 4 ; on P0, we are up front, switch to creating two groups & two spaces\n; via the D0(4) state, through D0 F0 X1 L1 K1 L0 K0 ...\n16 1 1 l 15 ; a cleaner Q1, used in combination with P(15)\n16 _ 1 l 15 ; a cleaner Q0, used in combination with P(15)\n\n3 _ 1 l 1; W0: used in the starter\n3 1 1 r halt; W1: the delayed halt state (X0 Z0 W1 halt)","state":"14","tape":" ","tapeoffset":0,"headposition":0,"steps":0,"initialtape":"","initialstate":"14","fullspeed":false,"variant":0,"version":1}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment