Computability Reductions

College Depth 69 in the knowledge graph I know this Set as goal
Unlocks 54 downstream topics
reductions undecidability computability many-one-reducibility

Core Idea

A many-one reduction from problem A to problem B is a computable function f such that x ∈ A if and only if f(x) ∈ B. If such a reduction exists, B is 'at least as hard' as A: any algorithm for B can be used to solve A. Reductions are the primary tool for proving undecidability — to show a new problem is undecidable, reduce the halting problem to it. Turing reductions (oracle reductions) are more general and allow multiple adaptive queries, measuring relative computability rather than mere hardness.

How It's Best Learned

Practice constructing explicit reduction functions on concrete problem pairs. A useful exercise: show that the acceptance problem (does TM M accept input w?) reduces to the halting problem and vice versa, establishing their Turing equivalence.

Common Misconceptions

Explainer

Reductions are the fundamental tool for comparing the difficulty of computational problems. The core idea is simple: if you can transform any instance of problem A into an instance of problem B in a systematic, computable way, then B is 'at least as hard' as A. Anything that solves B can be repurposed to solve A — just run the transformation first, then apply B's solver. This lets you build a hierarchy of problems by hardness without having to analyze each problem from scratch.

A many-one reduction from A to B is a computable function f such that for every input x, x belongs to A if and only if f(x) belongs to B. The notation A ≤m B (read 'A many-one reduces to B') captures this: the subscript m stands for 'many-one' because many inputs to A might map to the same input to B. The reduction must be computable — you cannot use any magic oracle to build f itself — but it does not need to be efficient in the complexity-theoretic sense.

The most important application of reductions is proving undecidability. You already know the Halting Problem is undecidable. To show a new problem B is also undecidable, you construct a reduction from Halting to B: a computable f where (M, w) halts iff f(M, w) ∈ B. Now suppose, for contradiction, B were decidable. Then you could decide Halting by first applying f, then running B's decision procedure — contradicting the known undecidability of Halting. Pay close attention to the direction: you reduce the *known-hard* problem to the *new* problem, not the other way around.

Turing reductions (also called oracle reductions) generalize many-one reductions. Instead of transforming the input once and submitting a single query, a Turing reduction may make multiple adaptive queries to a B-oracle — where each query can depend on the answers to previous ones. This makes Turing reductions strictly more powerful: some problems are Turing-equivalent to the Halting Problem but not many-one equivalent. The acceptance problem (does M accept w?) and the Halting Problem are many-one equivalent to each other, which is why they are often treated as interchangeable in practice.

Reductions do not stop at computability — they extend directly into complexity theory. Polynomial-time many-one reductions (where f must run in polynomial time) are the backbone of NP-completeness theory. When you study NP-completeness, you will see the same pattern: to show a new problem is NP-hard, reduce a known NP-hard problem to it in polynomial time. The logical structure is identical to what you learned here; only the resource bound on f changes.

Practice Questions 3 questions

Prerequisite Chain

Counting to 10Counting to 20Understanding ZeroThe Number ZeroCounting to FiveOne-to-One CorrespondenceCombining Small Groups Within 5Addition Within 10Addition Within 20Two-Digit Addition Without RegroupingTwo-Digit Addition with RegroupingAddition Within 100Repeated Addition as MultiplicationMultiplication Facts Within 100Division as Equal SharingDivision as Grouping (Measurement Division)Division: Grouping (Repeated Subtraction) ModelDivision: Fair Sharing ModelDivision as Equal SharingDivision as GroupingBasic Division FactsDivision Facts Within 100Two-Digit by One-Digit DivisionDivision with RemaindersRemainders and Quotients in DivisionDivision Word ProblemsIntroduction to Long DivisionFactors and MultiplesPrime and Composite NumbersEquivalent FractionsRelating Fractions and DecimalsDecimal Place ValueReading and Writing DecimalsComparing and Ordering DecimalsAdding and Subtracting DecimalsMultiplying DecimalsDividing DecimalsDividing FractionsMixed Number ArithmeticOrder of OperationsInteger Order of OperationsVariable ExpressionsCombining Like TermsOne-Step EquationsTwo-Step EquationsSolving Multi-Step EquationsEquations with Variables on Both SidesLiteral EquationsSlope-Intercept FormPoint-Slope FormWriting Linear EquationsParallel and Perpendicular Line SlopesGraphing Linear EquationsPiecewise FunctionsStep FunctionsComposition of FunctionsInverse FunctionsRadical Functions and GraphsRational ExponentsExponential Functions and GraphsLogarithms IntroductionBig-O Notation and Asymptotic AnalysisBreadth-First Search (BFS)Shortest Paths in Unweighted GraphsDijkstra's Shortest Path AlgorithmAlgorithm Analysis and Big-O NotationTuring MachinesThe Church-Turing ThesisThe Halting ProblemComputability Reductions

Longest path: 70 steps · 386 total prerequisite topics

Prerequisites (3)

Leads To (10)