Skip to content

feat(MultiTapeTM): Nondeterministic multi-tape Turing machines - #802

Open
barni120400 wants to merge 1 commit into
leanprover:mainfrom
barni120400:multitape/nondeterministic
Open

feat(MultiTapeTM): Nondeterministic multi-tape Turing machines#802
barni120400 wants to merge 1 commit into
leanprover:mainfrom
barni120400:multitape/nondeterministic

Conversation

@barni120400

Copy link
Copy Markdown

This adds nondeterministic multi-tape Turing machines next to the deterministic ones from #384. The transition function is replaced by a transition relation ([Papadimitriou94] 2.7); nothing else about the model changes, so configurations and the effect of a single step move to a shared MultiTape/Basic.lean. No existing statement changes meaning.

The semantics is a labelled transition system on configurations, labelled by the emitted symbol. A computation is a chain of such transitions, in the style of SimpleGraph.Walk, recording the trajectory that space depends on and the labels that the output depends on. MultiTapeTM.toNTM embeds the deterministic machine and preserves computation in bounded time and space.

@barni120400
barni120400 force-pushed the multitape/nondeterministic branch 3 times, most recently from 7450891 to f44edbc Compare August 15, 2026 07:39
A nondeterministic multi-tape Turing machine is a `MultiTapeTM` whose
transition function is replaced by a transition relation. Configurations,
transition outputs and the effect of a single step move to a shared
`MultiTape/Basic.lean`; no existing statement changes meaning.

The semantics is a labelled transition system on configurations, a step
labelled by the symbol it emits. A `Computation` is a chain of such
transitions, with time, output and space read off it. `MultiTapeTM.toNTM`
embeds the deterministic machine and `toNTM_computes` shows the embedding
preserves computation in bounded time and space.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@barni120400
barni120400 force-pushed the multitape/nondeterministic branch from f44edbc to 1ef9de2 Compare August 15, 2026 07:46
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.

2 participants