Repository navigation
feat(MultiTapeTM): input shortening - #1152
Open
barni120400 wants to merge 3 commits into
Open
barni120400 wants to merge 3 commits into
barni120400 wants to merge 3 commits into
Conversation
barni120400
requested review from
SamuelSchlesinger,
arademaker,
chenson2018,
crei,
fmontesi and
sorrachai
as code owners
October 19, 2026 13:39
barni120400
force-pushed
the
feat/tm-input-shortening
branch
from
October 19, 2026 13:46
80eaccb to
4ab9db9
Compare
barni120400
force-pushed
the
feat/tm-input-shortening
branch
from
October 19, 2026 21:40
4ab9db9 to
d2f9301
Compare
Space is counted only on run and computation paths. The visitation and displacement lemmas hold for the run paths of nondeterministic machines, and the configuration bounds take `RunsInSpace` and count the storages and cores at the ends of computation paths: the computation paths of a deterministic machine are prefixes of one another, so the one visiting the most cells contains the windows of every other. The deterministic `visitedByTapeHead`, `spaceUsedByTape` and `space` go, with their lemmas and the unused `core_step_eq_of_core_eq`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hines Defines `extendTapes`, `outputToTape` and `inputFromTape` for nondeterministic machines through a common adapter, `MultiTapeNTM.adapt`, whose `adaptHom` maps run paths. The deterministic machines become one-line wrappers sharing `IsDeterministic.adapt`, and the simulation space bounds hold for every machine. `stepHom` and the per-simulation step lemmas are removed, and the input-head bound becomes `RunPath.inputPos_last_le`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds visit sequences of run paths and an input-shortening theorem for multi-tape Turing machines: when two input cells carry the same symbol and a halting computation path visits them with the same storages, deleting the cells after the first through the second preserves every storage reached by a step on either retained side. A long enough input to a space-bounded machine has such a pair of cells. Collapsing the cut is a homomorphism from the steps on one retained side to the steps of the machine with its output erased, `MultiTapeNTM.eraseOutput`, built with `adapt`. Segments of the path between boundary visits map with `RelSeries.map` and join with `smash`, and all statements are about computation paths. Replaces the unused `not_halts_of_repeat_nonhalt` with its path version, `RunPath.injOn_running`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
barni120400
force-pushed
the
feat/tm-input-shortening
branch
from
October 21, 2026 08:09
d2f9301 to
1a7302d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds visit sequences of run paths and an input-shortening theorem for multi-tape Turing machines: when two input cells carry the same symbol and a halting computation path visits them with the same storages, deleting the cells after the first through the second preserves every storage reached by a step on either retained side. A long enough input to a space-bounded machine has such a pair of cells.
Collapsing the cut is a homomorphism from the steps on one retained side to the steps of the machine with its output erased,
MultiTapeNTM.eraseOutput, built withadapt. Segments of the path between boundary visits map withRelSeries.mapand join withsmash, and all statements are about computation paths. Replaces the unusednot_halts_of_repeat_nonhaltwith its path version,RunPath.injOn_running.Depends on #1151, which depends on #1122 and #1145: their commits are included temporarily and will leave this diff when they merge.
Composed with Claude Code.