Mapping reductions #
MappingReducible encA encB A B: a computable function (Turing.MultiTapeTM.IsComputable) with
respect to the encodings encA and encB maps the instances of A to instances of B and the
other instances to instances outside B Sipser, Definition 5.20. Mapping
reducibility is a preorder, and decidability transfers backwards along reductions
(Turing.MultiTapeTM.IsDecidable.of_mappingReducible), so undecidability transfers forwards
(Turing.MultiTapeTM.MappingReducible.not_isDecidable).
A polynomial-time reduction (Cslib.Complexity.PolyTimeReducible) is a mapping reduction, its
function being computable (Turing.MultiTapeTM.ComputableTidilyInPolyTime.isComputable).
Mathlib's ManyOneReducible is the analogous notion for Mathlib's partial recursive functions on
Primcodable types; Turing.MultiTapeTM.MappingReducible.manyOneReducible in
MultiTape.Halting.Partrec connects the two notions.
Main definitions #
Turing.MultiTapeTM.MappingReducible: mapping reducibility.
Main results #
Turing.MultiTapeTM.MappingReducible.refl,Turing.MultiTapeTM.MappingReducible.trans: mapping reducibility is a preorder.Turing.MultiTapeTM.MappingReducible.compl: a reduction is one between the complements.Turing.MultiTapeTM.IsDecidable.of_mappingReducible,Turing.MultiTapeTM.MappingReducible.not_isDecidable: transfer of decidability and of undecidability.
References #
A is mapping reducible to B: some function f, computable with respect to encA and
encB, satisfies a ∈ A ↔ f a ∈ B. This is ManyOneReducibleBy for the computable maps
(mappingReducible_iff_manyOneReducibleBy).
Instances For
Mapping reducibility is many-one reducibility by computable maps.
Every set reduces to itself by the identity.
Mapping reductions compose.
Decidability transfers backwards along mapping reductions.
Undecidability transfers forwards along mapping reductions.