Degree-one certificates from finite transducers #
The shared streaming machines give linear time and zero workspace. The actual runtime bounds encoded output growth, so these are degree-1/1 certificates. Copy, constant and composition rules come from the existing degree calculus.
theorem Turing.MultiTapeTM.ComputableInDegree.of_transducer {α : Type u_1} {β : Type u_2} {encIn : α ↪ List Bool} {encMid : β ↪ List Bool} {Q : Type} [Finite Q] (τ : Transducer Bool Q) {f : α → β} (h : ∀ (a : α), encMid (f a) = τ.run τ.q₀ (encIn a)) :
ComputableInDegree f encIn encMid 1 1
A finite transducer gives a common linear bound from its actual clock and zero workspace.
theorem Turing.MultiTapeTM.ComputableInDegree.of_unframe {α : Type u_1} {β : Type u_2} {encIn : α ↪ List Bool} {encMid : β ↪ List Bool} {f : α → β} (h : ∀ (a : α), encMid (f a) = unframe (encIn a)) :
ComputableInDegree f encIn encMid 1 1
Read the first framed word, including the prescribed behavior on incomplete frames.