Documentation

Complexity.Computability.Machines.Turing.MultiTape.Universal.Decode

Decoding descriptions of machines #

Every word decodes to a description of a machine (Turing.MultiTapeTM.Universal.descDecoder): the decoder inverts the encoding Turing.MultiTapeTM.Universal.eDesc of descriptions, returns a description of polynomial encoded length on every other word, and is tidily computable within bounds of fixed degrees. It is assembled from the generic decoders of Complexity.Computability.Machines.Turing.MultiTape.Encodings.Decoder along the fields of a description, its transitions, their keys and their actions.

A description framed at the start of a word is recovered whatever follows it (Turing.MultiTapeTM.Universal.decodeDesc_unframe_frame_append), so a description can be padded to any length.

Main definitions #

Main results #

The sign read from a word: zero if it is empty (q.1), and otherwise positive or negative as its head (q.2) is true or false.

Instances For

    Moves are decoded from the head of the word.

    Instances For

      Symbols and blanks.

      Instances For

        Keys of transitions, from their fields.

        Instances For

          Actions on a work tape.

          Instances For

            Actions, from their fields.

            Instances For

              The decoder of descriptions.

              Instances For

                The description decoded from a word.

                Instances For

                  Decoding inverts the encoding of descriptions.

                  Padded descriptions. A description framed at the start of a word is decoded from the framed word, whatever follows it.

                  Decoding is efficient. It is tidily computable, and the decoded descriptions have encoded length polynomial in the length of the word, within bounds of fixed degrees.