How statement and proof provenance work
The first chip identifies the source of the statement or construction; the second identifies the source of its local proof or verification.
- Literature-sourced: the exact statement appears in a cited source; only wording and notation differ.
- AI-adapted: a semantically identical restatement of literature-sourced material, modulo indexing, notation, and boundary cases adopted by the library.
- AI-generated: a genuinely novel statement formulated by AI, with no source for the claim itself.
These labels describe origin, not correctness: citations and verification chips remain separate evidence.
Prefix program codes admit linear nondeterministic universal simulation
Statement
There is an effective prefix-free coding of finite nondeterministic two-tape machines over binary inputs whose valid-code language is decidable in time. One fixed nondeterministic two-tape machine recognizes precisely . For each fixed valid there are constants such that on accepted inputs.
Facts & Assumptions
Given: Numeric finite-table descriptions of nondeterministic two-tape machines, with two distinguished binary input symbols and distinct initial/halting states.
Finite machine data admit explicit self-delimiting numeric tuple descriptions (A fixed effective binary encoding of deterministic one-tape Turing machines).
Parsing and checking a finite table is total and uniquely recovers its specified machine (The chosen machine coding is injective and has a total decoder).
A fixed nondeterministic multitape acceptor can be converted to two tapes with shortest-acceptance overhead (Linear acceptance-time simulation on two tapes).
Proof
Adapt the finite table in F1 as follows. A payload d lists the state/alphabet sizes, and for each nonhalting state and pair of scanned symbols a finite list of target states, two written symbols and two L/R bits, in fixed lexicographic order without duplicates. Use the same unary-length-prefixed canonical numeral blocks and tuple-arity header. A deterministic fixed multitape decoder D parses d and checks all bounds, lengths and ordering, accepting exactly canonical valid tables. It halts on every d: all loops inspect finite parsed lists or finite integers from them. The same unique-decoding argument as F2 applies to these longer rows. Let be D's exact number of transitions on d. It is a total recursive function, obtained by running D and counting.
Define for valid payloads. The first field uniquely ends at d's last bit, and the first zero thereafter uniquely ends the padding. Thus no valid code is a proper prefix of another, and distinct payloads give distinct codes. To validate a word, first recover d and prepare a copy on D's input tapes, costing . Then run one step of D while advancing a separate head by one padding symbol. Reject an early zero or blank before D halts, and after its r(d) steps require the next symbol to be the padding's terminal zero and no trailing input. Reject also if D rejects d. A too-short malformed word is rejected as soon as the available padding expires; the validator never completes an arbitrarily long D run after input exhaustion. This gives time on all words, not only on valid codes.
For universal recognition use the same parsing but regard everything after the terminal zero as data x. If parsing fails, reject. A fixed multitape interpreter stores the decoded table on one tape, the two simulated tapes in binary symbol blocks on two tapes, and the state and temporary fields on a fixed number of scratch tapes. For each fixed e, symbol blocks have a fixed width depending on e; translating the input into such blocks costs . At each step the interpreter reads the two current blocks, scans the stored finite table to find precisely the listed instruction options, guesses one, updates the two blocks and state, and moves the simulated heads to adjacent blocks. Boundary flags on block zero implement the clamped move. Scratch heads return to their bounded working zones after each step. Program and field scans cost a constant depending on e, never on x or the number of simulated steps.
Every interpreter branch therefore corresponds to an actual instruction sequence, and accepts exactly at a simulated accepting state. Every accepting t-step run of yields a branch taking at most interpreter steps, including code parsing; the fixed parsing cost is absorbed into . Infinite computations need not halt. Apply F3 once to this one fixed interpreter, not separately to each code, obtaining one two-tape U. Its constant simulation factor and the input length yield constants with the asserted bound. Empty data x is allowed; an invalid or incomplete prefix gives no accepting branch. No decoding-time bound for the unpadded legacy syntax was assumed.
Depends on
Used by
Dependency tree · two levels
8 results within two dependency steps of this one, each drawn at its shortest distance from it. An arrow runs from a result to what uses it, so the chart reads left to right and ends at this result, which carries a heavier outline. Every node is a link to that result. Click elsewhere on the chart to enlarge it.
Sources
- Seiferas, Fischer, and Meyer, coding conditions (1)-(3), p. 152 (standard reference, not scraped)