pairSplitCoreTM: split pair x y into two work tapes #
This file defines the deterministic inverse of pairBuildTM at the machine
level. Given an input tape containing pair x y, the machine copies:
- the decoded left component
xonto work tapexIdx, - the suffix
yonto work tapeyIdx.
The machine is intended as the front half of a deterministic verifier pipeline.
The main exposed artifacts are the concrete TM, its running-time function
pairSplitCoreTime, and the end-to-end correctness theorems
pairSplitCoreTM_from_scanX_initTape_move_right and
pairSplitCoreTM_from_init_initTape_move_right.
Control states of pairSplitCoreTM: .init steps off ▷; .scanX,
.afterFalse, and .writeTrue decode the doubled-bit prefix (with 01 as
separator); .copyY copies the suffix; .done is the halting state.
- init : PairSplitPhase
- scanX : PairSplitPhase
- afterFalse : PairSplitPhase
- writeTrue : PairSplitPhase
- copyY : PairSplitPhase
- done : PairSplitPhase
Instances For
Equations
- One or more equations did not get rendered due to their size.
Core pair-splitting machine. On well-formed inputs pair x y, it decodes
the doubled-bit prefix onto work tape xIdx and copies the remaining suffix to
work tape yIdx. Invalid inputs may halt early; the correctness theorem will
only target the valid pair x y shape.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Running time of the core split phase on valid pair x y inputs.
Equations
- Complexity.TM.pairSplitCoreTime xLen yLen = 2 * xLen + yLen + 4
Instances For
Core correctness for valid started inputs. Beginning in .scanX with
pair x y on the input tape and empty started work tapes, pairSplitCoreTM
halts after decoding the doubled x prefix onto xIdx and copying the
suffix y onto yIdx. The two work heads finish just past the strings they
wrote.
Variant of the init step for phase composition: if the input tape and the
two tracked work tapes are already positioned past ▷, the .init state
advances to .scanX without changing those tapes.
Starting from .init with pair x y already on a started input tape and
empty started work tapes, pairSplitCoreTM halts within pairSplitCoreTime,
leaving xIdx holding x and yIdx holding y, with both heads just past
the written strings.