Count-preserving buffered machine composition #
The shared compiler redirects each source output symbol to a work tape in the same transition. The singleton deterministic lift rewinds that buffer and marks its boundary in the word length plus four transitions. The consumer then reads the buffered word with separate blank work tapes. Source scratch and the real input head are retained; preparation introduces exactly one path.
The complete compiler is closed, with no oracle channels. Its native occurrence counts compose
by List bind, and its all-branches clock is T₀ + (T₀ + 4 + T₁) from initialized tapes. The
initial output is empty here; the general output-growth lemma retains its initial length.
Main definitions #
Turing.MultiTapeCTM.comp: feed one counting machine's output to another.
Main results #
Turing.MultiTapeCTM.runList_comp: the exact complete-configuration composition law.Turing.MultiTapeCTM.HaltsWithin.comp: the charged native all-branches clock.Turing.MultiTapeCTM.branchCount_comp: exact native counts through buffered composition.
References #
The tape layout and native preparation are shared with MultiTape.Machine.Composition;
that module records the original deterministic and probabilistic compiler sources.
Output redirection does not introduce empty transition lists.
Virtual input redirection does not introduce empty transition lists.
Rewind and mark the buffered word with exactly one path, then start the consumer.
Instances For
Source buffering preserves every configuration occurrence.
The consumer keeps every source scratch cell and every continuation occurrence.
Buffering the source preserves the explicit no-stuck table condition.
The virtual-input consumer preserves the explicit no-stuck table condition.
Singleton preparation and a nonblocking consumer have no stuck local views.
A native consumer clock survives the exact tape embedding.
The charged handoff has one path and then preserves the consumer's complete configuration.
The singleton handoff and consumer halt natively within the charged combined bound.
Feed first's output to second, with distinct work tapes and a singleton charged handoff.
Instances For
Buffered composition has no stuck views when both component tables are nonblocking.
Exact full-configuration composition, including scratch and input-head preservation.
Both machines start with empty output. Each source instruction emits at most one symbol, so
preparation takes at most firstTime + 4; it is not a free conversion between machine models.
The compiled machine halts on every native branch within the charged combined clock.
Native terminal counts compose by summing the consumer count once per source occurrence. The sum is over a List, so duplicate source configurations retain their exact multiplicity.