Native callbacks for the complete counting query machine #
The callbacks receive only the encoded runtime state, current input symbol and choice bit as needed. Their workspace is linear in these short arguments, including on malformed states. The radix is stored in binary, so the graph routines receive it as an argument; the next radix is four times the current one.
Main results #
Turing.InductiveCounting.query_inSpace: the complete runtime input address.Turing.InductiveCounting.next_inSpace: bootstrap, radix changes and checked controller advance.Turing.InductiveCounting.halted_inSpace: complete runtime halt detection.Turing.InductiveCounting.accept_inSpace: complete runtime acceptance detection.
References #
theorem Turing.InductiveCounting.query_inSpace {k : ℕ} :
MultiTapeTM.ComputableInSpace (runtimeQuery k) encRuntime MultiTapeTM.encNat fun (s : Runtime) => (encRuntime s).length
Native linear workspace for the full runtime input-address callback.
theorem Turing.InductiveCounting.next_inSpace {k : ℕ} {State : Type} [Fintype State] (ntm : MultiTapeNTM k Bool State) :
MultiTapeTM.ComputableInSpace (fun (p : Runtime × Option Bool × Bool) => runtimeNext ntm p.1 p.2.1 p.2.2)
(MultiTapeTM.encPair encRuntime (MultiTapeTM.encPair (MultiTapeTM.encOption MultiTapeTM.encBool) MultiTapeTM.encBool))
encRuntime fun (p : Runtime × Option Bool × Bool) =>
((MultiTapeTM.encPair encRuntime
(MultiTapeTM.encPair (MultiTapeTM.encOption MultiTapeTM.encBool) MultiTapeTM.encBool))
p).length
Native linear workspace for the full next-state callback on its exact input tuple.
Native linear workspace for full runtime halt detection.
Native linear workspace for full runtime acceptance detection.