Closure properties of the oracle classes #
Polynomial time relative to an oracle composes with polynomial-time pre- and postprocessing
(Cslib.Complexity.ComputableInPolyTimeWithOracle.preprocess,
Cslib.Complexity.ComputableInPolyTimeWithOracle.map), through the compositional rules of strict
oracle PPT. One request decides the oracle language itself
(Cslib.Complexity.computableInPolyTimeWithOracle_mem): the request is copied onto the query
buffer, and only the first bit of the reply is read (Cslib.Complexity.queryBit).
Hence P relative to A contains A and lies inside NP relative to A, and both classes are
closed under polynomial-time many-one reductions of the problem
(Cslib.Complexity.PolyTimeReducible.mem_PWithOracle,
Cslib.Complexity.PolyTimeReducible.mem_NPWithOracle). For NP the certificates are padded to a
polynomial of the instance length, and the verifier reads only the prefix of the length the
reduced instance requires.
Main results #
Cslib.Complexity.ComputableInPolyTimeWithOracle.preprocess,Cslib.Complexity.ComputableInPolyTimeWithOracle.map,Cslib.Complexity.ComputableInPolyTimeWithOracle.map_with: pre- and postprocessing.Cslib.Complexity.ComputableInPolyTimeWithOracle.prod: retain two oracle results.Cslib.Complexity.PolyTimeOracleProgram.of_query: one polynomial-time request decides membership in every admissible oracle language.Cslib.Complexity.computableInPolyTimeWithOracle_mem,Cslib.Complexity.mem_PWithOracle_self: one request decides the oracle language.Cslib.Complexity.PWithOracle_subset_NPWithOracle.Cslib.Complexity.PolyTimeReducible.mem_PWithOracle,Cslib.Complexity.PolyTimeReducible.mem_NPWithOracle: closure under polynomial-time many-one reductions.
References #
Polynomial-time preprocessing of the argument.
Polynomial-time postprocessing of the result, which may also use the argument.
Polynomial-time postprocessing of the result.
Compute two results sequentially against the same oracle, retaining both outputs.
One polynomial-time request req a to the oracle language decides whether req a ∈ A against
every admissible oracle language A.
One request decides the oracle language. The word is copied onto the query buffer and the first bit of the reply is read.
P relative to A contains A.
P relative to A lies inside NP relative to A: a decider ignores the empty
certificate.
P relative to an oracle is closed under polynomial-time many-one reductions.
NP relative to an oracle is closed under polynomial-time many-one reductions. The
certificates are padded to a polynomial of the instance length; the verifier reads the prefix of
the length required by the reduced instance.