Skip to content

feat(MultiTapeTM): input shortening - #42

Open
barni120400 wants to merge 1 commit into
refactor/multitape-shared-simulationsfrom
feat/tm-input-shortening-adapter
Open

barni120400 wants to merge 1 commit into
refactor/multitape-shared-simulationsfrom
feat/tm-input-shortening-adapter

Conversation

@barni120400

Copy link
Copy Markdown
Owner

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.

Erases the output with MultiTapeTM.eraseOutput, the machine run through an adapter that drops output writes. Collapsing the cut agrees with that adapter on the steps on one retained side, so Follows.stepHomOn, a homomorphism of a sub-relation of the steps, maps them to steps on the shortened input (InputCut.stepHom); Follows.stepHom and Follows.runningStepHom become its instances. Segments of the path between boundary visits map with RelSeries.map and join with smash. Replaces the unused not_halts_of_repeat_nonhalt with its path version, RunPath.injOn_running.

Working version of #12 (upstream leanprover#1152), which stays unchanged until this is ready.

Depends on #32.

Composed with Claude Code.

@barni120400
barni120400 force-pushed the feat/tm-input-shortening-adapter branch 3 times, most recently from 43b395c to a97f309 Compare October 27, 2026 00:31
@barni120400
barni120400 force-pushed the refactor/multitape-shared-simulations branch 2 times, most recently from d0bfa21 to 9b2a4eb Compare October 28, 2026 00:03
@barni120400
barni120400 force-pushed the feat/tm-input-shortening-adapter branch from a97f309 to e4010fb Compare October 29, 2026 13:46
@barni120400
barni120400 force-pushed the refactor/multitape-shared-simulations branch from 9cca087 to ee99dd3 Compare November 1, 2026 16:53
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,
`MultiTapeTM.eraseOutput`, built with `adapt`. It comes from the
single-step lemma `Follows.step`, which now also gives `stepHom` and
`runningStepHom`. 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
barni120400 force-pushed the feat/tm-input-shortening-adapter branch from e4010fb to accf223 Compare November 1, 2026 16:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant