Polynomial time on multi-tape machines #
Turing.MultiTapeTM.ComputableInPolyTime f encIn encOut: some machine with a binary alphabet and
finitely many states computes f in the sense of Turing.MultiTapeTM.ComputableInTimeAndSpace,
within time and space bounded by polynomially bounded functions of the length of the encoded input
Arora and Barak, Chapter 1. Time and space are independent bounds, as in
Turing.MultiTapeTM.ComputableInTimeAndSpaceOfLength; that a polynomial time bound already bounds
the space is a lemma about machines, not part of the definition.
The predicate is registered with fun_prop. This file proves the closure rules that need no
machine construction beyond upstream's: the identity, constants, functions on finite types and
changes of representation.
Main definitions #
Turing.MultiTapeTM.ComputableInPolyTime: computability in polynomial time.
Main results #
Turing.MultiTapeTM.ComputableInPolyTime.of_eq,Turing.MultiTapeTM.ComputableInPolyTime.id': functions that do not change the encoded word.Turing.MultiTapeTM.ComputableInPolyTime.const,Turing.MultiTapeTM.ComputableInPolyTime.of_finite: constant functions and functions on finite types.
References #
f is computable in polynomial time: some machine with a binary alphabet and finitely many
states computes f, relative to the encodings encIn and encOut, within time and space
bounded by polynomially bounded functions of the length of the encoded input.
Instances For
A function whose encoded values are its encoded arguments is computable in polynomial time: the machine copies its input.