Polynomial-space certificates #
Turing.MultiTapeTM.ComputableInPolySpace packages one machine together with a polynomially
bounded space bound. This module converts between that predicate and its explicit certificates:
a polynomially bounded Turing.MultiTapeTM.ComputableInSpace bound, in both directions, and plain
polynomial time. It registers ComputableInPolySpace with fun_prop, with polynomial time as
its first rule. The closure rules (composition, pairing, conditionals and iteration) are in
CslibFrontier.Computability.Machines.Turing.MultiTape.Complexity.PolySpace.Plain; clients that
need only these constructors import this module instead and avoid that module's build closure.
Main results #
Turing.MultiTapeTM.ComputableInPolySpace.of_inSpace,Turing.MultiTapeTM.ComputableInPolySpace.exists_inSpace: polynomial space is a polynomially boundedComputableInSpacebound.Turing.MultiTapeTM.ComputableInPolySpace.of_polyTime: plain polynomial time is within polynomial space.
Build ComputableInPolySpace from a polynomially bounded ComputableInSpace certificate,
retaining the same realizing machine.
Unpack ComputableInPolySpace into a polynomially bounded ComputableInSpace certificate,
retaining the same realizing machine.
Polynomial time is within polynomial space.