Block Realizability Framework #
This file defines block-realizability abstractions for composing TM0 machines that operate on contiguous blocks.
Main definitions #
TM0RealizesBlockSep Γ sep f: a TM0 machine processes the cells before the first designated separatorsep, preserving the separator and tail.TM0RealizesBlock Γ f: the old blank-delimited specialization wheresep = default.
Main results #
tm0RealizesBlock_comp: sequential composition of block-realizable functionstm0RealizesBlock_iterate: iterated applicationtm0_reverse_block: list reverse is block-realizabletm0_cons_block: prepending a constant is block-realizable
Block Realizability Definitions #
A TM0 that operates on a block ending at a designated separator.
Given a tape block ++ [sep] ++ suffix, the TM0 transforms it to
f block ++ [sep] ++ suffix. The assumptions state that the input block is
really the part before the first separator, that the active finite tape has no
interior blanks, and that f block is again a valid block for the same
separator.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A TM0 that operates on a contiguous block of non-default cells, preserving everything after the first blank.
Given a tape block ++ [default] ++ suffix, the TM0 transforms
it to f(block) ++ [default] ++ suffix, leaving suffix unchanged.
This enables "serialized" composition of elementary operations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Composition #
Composition for strong separator-delimited block-realizable functions.
Composition for strong blank-delimited block-realizable functions.
Composition for separator-delimited block-realizable functions.
Composition of block-realizable functions.
Requires f to preserve non-defaultness so that M_g can process
f(block) as a valid block.
Iteration #
Iterated separator-delimited block operations preserve realizability.
Iterated strong separator-delimited block operations preserve realizability.
Iteration of a non-defaultness-preserving function preserves non-defaultness.
Utility Lemmas #
Generic: appending default to a ListBlank is identity.
Generic: Tape.mk₁ with trailing default is identity.
TM0Seq.evalCfg with trailing default input is the same.
Reverse is block-realizable #
List reverse is block-realizable before any separator.
The underlying machine RevBlock.MSep uses sep for right-boundary
detection and default for left-boundary detection.
List reverse is block-realizable. A TM0 can reverse a contiguous block of non-default cells while preserving the suffix.
Cons (prepend) is block-realizable #
The simple cons machine: move left, write c, halt.
Prepends c to the tape by writing at position −1.
Equations
- consSimpleMachine c 0 x✝ = some (1, Turing.TM0.Stmt.move Turing.Dir.left)
- consSimpleMachine c 1 x✝ = some (2, Turing.TM0.Stmt.write c)
- consSimpleMachine c 2 x✝ = none
Instances For
Writing c after moving left from Tape.mk₁ l gives Tape.mk₁ (c :: l).
Prepending a fixed element is block-realizable before any separator.
The cons machine (consSimpleMachine) moves left, writes c, and halts.
It never inspects any cell to detect a block boundary, so it works with
any separator.
Prepending a fixed non-default element is block-realizable.
Identity is block-realizable #
The identity function is realizable before any separator.
A trivial TM0 machine that halts immediately on any input tape.
The identity function is block-realizable.
Prepend list is block-realizable #
Prepending a fixed non-default, non-sep list is realizable before a separator.