Occurrence programs with word oracles #
The existing shared machine program separates occurrence-index queries from word-oracle calls. Its List interpreter keeps the oracle's private state local to each branch: sibling occurrences start with the same state, while successive calls within a branch share the updated state. The observer records every live transition index, including indices of query instructions. Equal actions at different positions remain distinct occurrences.
This is an interpretation of MultiTapeMachine.runConfigFrom, not another machine model.
A query instruction costs one native transition; request construction and reply-head access use
ordinary transitions. The oracle's computation is external. Retaining a complete reply in this
semantic configuration is not a claim that an encoded interpreter can copy it at unit cost.
Main definitions #
Turing.MultiTapeMachine.occurrenceOracleSpec: separate occurrence and word-query interfaces.Turing.MultiTapeMachine.runOccurrenceProgram: the existing shared run with occurrence choices.Turing.MultiTapeMachine.occurrenceTraceHandler: branch-local state and an occurrence observer.Turing.MultiTapeMachine.runOccurrenceTrace: full configurations, traces and private states.
Main results #
Turing.MultiTapeMachine.interpret_runOccurrenceProgram_succ: actual indexed transitions.Turing.MultiTapeMachine.runOccurrenceTrace_erase: erasure gives the ordinary interpretation.
The raw clocked run retains live endpoints. Attempting an empty local list has no outcome.
Neither the List interpretation nor a clock alone asserts nonblocking, halting or polynomial-time
realizability.
In particular, the generic PMF-based MultiTapeMachine.HaltsWithin is not used: the occurrence
interface includes Fin 0, which admits no probability distribution.
References #
Reuses the shared native machine and program infrastructure credited in MultiTape.Machine and
MultiTape.Machine.Program, and occurrence enumeration from MultiTape.Counting.Program.
The typed oracle calculus credits Samuel Schlesinger, Devon Tuma, Quang Dao and VCVio in
Languages.Probabilistic.Basic. Language-oracle/path-counting conventions are described in
L. Fortnow, Counting Complexity, Section 2 and Definition 3.1; arbitrary stateful
word handlers here are an explicit generalization of the language-oracle interface.
The shared clocked program with occurrence choices and actual buffered word queries.
Instances For
Enumerate occurrences with separate copies of the incoming state. Queries update only the state of their own branch; the trace records indices, not external calls or terminal padding.
Instances For
Observe the shared run from an empty trace, retaining live cutoff configurations.
Instances For
No further occurrence or oracle call is made after halting.
One live instruction preserves index order and threads private state only along its branch.
Erasing the observer preserves the ordinary interpretation and the complete private state.
The recorded run differs from the ordinary shared-program interpretation only by its log.