Figure s02 — alt-text: four stacked tape rows, each [0][0][0][⊔]. A red arrow (the head) points down at cell 0 in the top row, cell 1 in the next, cell 2 in the third, and cell 3 (the blank) in the bottom row where the state label reads q_acc. The red head marches one cell right per row — this is exactly steps 1→2→3→4 below.
Start configuration is q0000 (u=ε, state q0, v=000, head on the first 0).
Why this step? Every computation begins at q0 with the head on the first input symbol — that's the definition of the start configuration. This is the top row of figure s02 (red head over cell 0).
Why? Move-right rule: the symbol we just wrote (0) joins the left part u, and the state slides onto the next cell. This is the second row of s02: the red head has stepped to cell 1.
Same rule twice more:
0q000⊢00q00⊢000q0
Why? Each 0 triggers the identical transition (rows 3 and 4 of s02, red head at cells 2 then 3). When the right part v becomes empty, the head is now reading a blank⊔ — recall ⊔ fills the tape past the input.
Figure s03 — alt-text: one tape row [1][0][0] with a red head arrow pointing down at cell 0 (the 1), state label q0. A red annotation arrow points from the 1 to the words "first symbol is 1 → q_reject, HALT", and black text notes "the 00 is never read". This is step 2 below.
Start: q0100 (u=ε, state q0, v=100, head on the 1).
Why? Head on the first symbol 1 — the red head in figure s03.
Why? We reached qreject — a halting state (the red "→ q_reject, HALT" annotation in s03). The machine stops immediately and says no, even though 00 is still unread.
Verify: the string starts with 1, so it should be rejected — matches. Notice a TM, unlike a DFA, does not need to read the whole string to reject. Rejects. ✓
Figure s04 — alt-text: one tape row of four blank cells [⊔][⊔][⊔][⊔], red head arrow pointing down at cell 0, state label q0. A red annotation arrow points from cell 0 to "empty input: whole tape is blanks, head on cell 0"; black text reads "blank rule fires → q_accept". This is step 1 below.
Start configuration. On empty input the tape is all blanks, so cell 0 already holds ⊔. Writing the head-symbol explicitly, the start configuration is q0⊔ — that is, u=ε, state q0, and v=⊔ (head reading the blank at cell 0, exactly the red head in figure s04).
Why? By our convention, when the input part v would be empty we make the leading blank explicit and write q0⊔ rather than a bare q0; the two mean the same thing, but q0⊔ shows precisely which symbol the head reads.
Figure s01 — alt-text: two tape rows. Top row [1][#][0] with a red head over cell 1 (#), state q3. A black ⊢ arrow points down to the bottom row [1][Y][0] with the red head over cell 0 (1), state q5. Two red annotations: "overwrite # → Y" pointing at the middle cell, and "move LEFT: head lands on cell 0 (left edge)" pointing at cell 0. This is step 1 below.
Apply δ(q3,#)=(q5,Y,L):
1q3#0⊢q51Y0
Why?Overwrite (C5): the # under the head becomes Y (the red "overwrite # → Y" note in s01). Move left (L) rule: the head steps onto the symbol immediately to its left, which is 1, so the new configuration is u=ε, state q5, v=1Y0 (head on the 1). Look at figure s01: the red head jumps from the middle cell down to cell 0.
Now suppose δ(q5,1)=(q6,1,L) — another left (L) move, but the head is already at cell 0.
q51Y0⊢q61Y0
Why? (C4) The tape does not extend left of cell 0. By convention the head stays put — it does not crash, does not throw an error. Only the state changes (here q5→q6; the cell is rewritten 1→1, so the tape is unchanged). This is the left-edge special case from the parent note, and the red "head lands on cell 0" marker in s01 is exactly where the clamp bites.
Verify: after step 1 the tape reads 1Y0 and the head is at index 0. After step 2 the tape still reads 1Y0 and the head is still at index 0, because the clamp gives max(0,index−1)=max(0,−1)=0. ✓
Figure s05 — alt-text: two tape rows, both [0][⊔], each labelled q0. In the top row the red head is on cell 0 (the 0); in the bottom row the red head is on cell 1 (the ⊔). A red curved arrow labelled "move R" goes top→bottom, and a red curved arrow labelled "move L" goes bottom→top, forming a closed loop. Black text notes "never reaches a halting state". This matches steps 1–3 below.
Why? Move-left (L): the head steps back left onto the 0. The tape is unchanged and the state is still q0 (bottom→top, the "move L" arrow in s05).
We are back at q00⊔ — the exact start configuration.
q00⊔⊢0q0⊔⊢q00⊔⊢0q0⊔⊢⋯
Why this matters? The machine cycles between two configurations forever (the closed red loop in s05). It never halts — neither accepts nor rejects. This is exactly the "gap" that makes recognizable weaker than decidable, and the seed of the Halting Problem.
Verify: the configuration at even step counts is always q00⊔; a period-2 cycle. Halting states encountered =0. Loops. ✓
ε, how do we write the start configuration and what does the head read?
q0⊔ — the head is at cell 0 reading a blank ⊔ (the whole tape is blank). ::: q0⊔, head reading a blank at cell 0
In the notation uqv, where does the state q sit? ::: Betweenu and v — immediately before the head-symbol (the first symbol of v). Never quv.
A left (L) move at cell 0 does what? ::: The head stays at cell 0 (left-edge convention) — it never crashes.
A missing (undefined) transition means the machine does what? ::: Halts in qreject by convention — implicit reject.
Entering qaccept or qreject causes what to happen? ::: The machine halts immediately — no further ⊢ steps.
A machine that reaches qaccept on members but loops on non-members is a ...? ::: recognizer (Turing-recognizable), not a decider.
What makes the palindrome TM a decider rather than only a recognizer? ::: Every pass strictly shrinks the unmarked middle, so it always halts.