Computer science Computational complexity: resources and classes Theorem
Ladner's theorem
Statement
Suppose that , where P is the class P and NP is the class NP. Then there is a language that is neither in nor NP-complete.
Remarks
Such languages are called NP-intermediate. The proof is a delayed diagonalization due to Richard Ladner, published in 1975. One builds from SAT by keeping the instances of some input lengths and removing those of the other lengths. The pattern of lengths is chosen in stages, so that each polynomial-time machine fails to decide and each polynomial-time reduction fails to reduce SAT to . The language obtained is in NP, and it is not complete for NP under polynomial-time reductions.
The theorem gives an artificial language. Natural candidates for NP-intermediate problems are graph isomorphism and the decision version of integer factorization, but none is proved to be NP-intermediate, since that would imply . The hypothesis cannot be dropped: if , then every language in NP other than and is NP-complete.
Going deeper
For a student
The theorem is the reason that problems such as graph isomorphism can be studied as candidates for an intermediate status. Its proof generalizes: the same method shows that between any two languages with decidable there is a third, strictly between them. It contrasts with dichotomy theorems for restricted families, such as Schaefer's theorem for Boolean constraint problems, where no intermediate case occurs.
Reading path
To understand this page from the ground up, read these 5 pages in order. The foundations come first.
Show the path as a graph
- no evidence level
- NP concept
- NP-completeness concept
- P concept
- Polynomial-time reduction concept
- Ladner's theorem statement
Where this leads
2 pages build on this one.
Further reading
About this page
| Tag | 3GT13ACR68 |
|---|---|
| URI | m2://3GT13ACR68 |
| Kind | statement, theorem |
| Writing | W0 stub |
| MSC | 68Q15, 68Q17 |
| Status | This copy of the site has no build data. Run m2 status 3GT13ACR68. |
| About | NP, NP-completeness |
| Uses | P, NP, NP-completeness, Polynomial-time reduction |
| Changed | 3 November 2026 |
Markdown · JSON · Edit on GitHub
What this page needs for W1
- an inventory row: the row of the inventory that the node accounts for (0 of 1)
- a source with a locator (0 of 1)
The writing levels say how complete the text of a page is. They do not measure its truth.