Encodings of finite tape storage #
The existing stack and bidirectional tapes use the standard list, option and pair encodings. The symbol encoding is a parameter: the operations do not require a finite or inhabited alphabet. If symbol encodings have a uniform length bound, the complete tape encoding is linear in its stored extent, including blank gaps.
Main definitions #
Turing.MultiTapeTM.encStackTape: encode a stack's stored list of optional cells.Turing.MultiTapeTM.encBiTape: encode the head and both sides of a bidirectional tape.
Main results #
Turing.MultiTapeTM.length_encStackTape_le,Turing.MultiTapeTM.length_encBiTape_le: explicit bounds from a fixed symbol-length bound.
References #
Adapts the encodings in Computability/Probabilistic/Tape.lean on the cslib crypto branch at
5ff69ca93402e7c947208dc56396d6d86203ccd8, using Christian Reitwiessner's standard encodings
and Bolton Bailey's tape representations.
Encode the finite stored list, retaining interior blank cells.
Instances For
Encode the current cell, left side and right side with their standard framing.
Instances For
Bounded symbol encodings give a linear bound for the stored stack.
The encoding charges all stored cells, including blanks between nonblank cells.