Many-one reductions by admissible maps #
Cslib.Complexity.ManyOneReducibleBy Good A B asks for a membership-preserving map from A to
B satisfying an arbitrary predicate Good. No machine model, encoding, complexity class, or
closure assumption is built into the definition. The namespace is retained for existing clients.
Polynomial-time, logarithmic-space and computable mapping reductions instantiate this kernel.
Mathlib's ManyOneReducible is specialized to computable maps on Primcodable types; it does
not replace this map-parametric notion.
Main definitions #
Cslib.Complexity.ManyOneReducibleBy: many-one reducibility by admissible maps.
Main results #
Cslib.Complexity.ManyOneReducibleBy.refl,Cslib.Complexity.ManyOneReducibleBy.trans: reflexivity and transitivity from identity and composition closure.Cslib.Complexity.ManyOneReducibleBy.mono: enlarging the admissible maps preserves reductions.Cslib.Complexity.ManyOneReducibleBy.compl,Cslib.Complexity.ManyOneReducibleBy.mem_compl: complement reductions and transfer to complement classes.Cslib.Complexity.ManyOneReducibleBy.lift: transfer along partial decodings.
References #
- S. Arora, B. Barak, Computational Complexity: A Modern Approach, Definition 2.7.
Every problem reduces to itself when the identity is admissible.
Reductions compose when composites of admissible maps are admissible. The three classes of maps may differ, as they do when admissibility depends on encodings.
More admissible maps give more reductions.
A reduction from A to B is also a reduction from Aᶜ to Bᶜ.
If reductions preserve membership from D to C, they also preserve membership in the
complement classes {B | Bᶜ ∈ D} and {A | Aᶜ ∈ C}.
Transfer along partial decodings. Suppose representations α' and β' partially decode
to α and β, and every admissible map f is simulated by an admissible map F of
representations, in that F decodes to f on decodable inputs and to nothing elsewhere. Then a
reduction of A to B gives one of the representations of members of A to those of members of
B.