Polynomial space on plain machines #
Turing.MultiTapeTM.ComputableInPolySpace, computability within polynomial space by any machine,
has direct plain closure rules — identity, composition, pairing, conditionals and binary-counted
iteration — proved directly via Turing.MultiTapeTM.ComputableInSpace without routing through
tidy computability. The certificates and the inclusion of polynomial time
(Turing.MultiTapeTM.ComputableInPolySpace.of_polyTime) are in
CslibFrontier.Computability.Machines.Turing.MultiTape.Complexity.PolySpace.Basic.
The closure rules are registered with fun_prop.
Main results #
Turing.MultiTapeTM.ComputableInPolySpace.polyBounded_length: encoded outputs have polynomially bounded length.Turing.MultiTapeTM.ComputableInPolySpace.comp,.prod,.ite,.congr: closure properties.Turing.MultiTapeTM.ComputableInPolySpace.iterate: iteration within polynomial space.Turing.MultiTapeTM.ComputableInPolyTime.increment: the binary counter in polynomial time.
Encoded outputs of a polynomial-space function have polynomially bounded length.
Closure and automation #
The identity.
Composition.
Pairing.
Case distinction.
Agreement with a function computable within polynomial space.
Iteration within polynomial space: iterating a step computable within polynomial space a number of times computed in polynomial time in binary, from a start computable within polynomial space, is within polynomial space when all the states along the way have polynomial length.
Composition, in the form used by fun_prop.
The binary counter in polynomial time.