Documentation

Complexity.Computability.Machines.Turing.MultiTape.Encodings.Capabilities

Computational capabilities of pair, option and list encodings #

The classes contain proofs of plain computational capabilities, not selected machines or clocks. Pairing retains independent time and workspace bounds and explicitly charges the output pair.

Encodings of pairs, options and lists #

class Turing.MultiTapeTM.PairEncoding {α β : Type u} (enc₁ : α ↪ List Bool) (enc₂ : β ↪ List Bool) (enc : α × β ↪ List Bool) :

enc encodes pairs compatibly with enc₁ and enc₂.

Instances
    class Turing.MultiTapeTM.OptionEncoding {α : Type u} (enc₁ : α ↪ List Bool) (enc : Option α ↪ List Bool) :

    enc encodes options compatibly with enc₁: none is encoded by the empty word.

    Instances
      class Turing.MultiTapeTM.ListEncoding {α : Type u} (enc₁ : α ↪ List Bool) (enc : List α ↪ List Bool) :

      enc encodes lists compatibly with enc₁.

      Instances
        theorem Turing.MultiTapeTM.PairEncoding.pair_mono {α β : Type u} {enc₁ : α ↪ List Bool} {enc₂ : β ↪ List Bool} {enc : α × β ↪ List Bool} [h : PairEncoding enc₁ enc₂ enc] {γ : Type u} {encIn : γ ↪ List Bool} {f : γ → α} {g : γ → β} {t₁ s₁ t₂ s₂ : γ → ℕ} (hf : ComputableInTimeAndSpace f encIn enc₁ t₁ s₁) (hg : ComputableInTimeAndSpace g encIn enc₂ t₂ s₂) :
        ∃ (c : ℕ), ComputableInTimeAndSpace (fun (x : γ) => (f x, g x)) encIn enc (fun (x : γ) => c * (t₁ x + t₂ x + 1)) fun (x : γ) => c * (s₁ x + s₂ x + (enc (f x, g x)).length + 1)

        Pairing functions computable within different bounds.