Total function NP
The class of total search problems in FNP — search problems where a solution is guaranteed to exist for every input but may be hard to find. Formally, a problem is in TFNP if there is a polynomial-time verifier such that:
- For every input , there exists a witness with (totality).
- The witness has length polynomial in .
Totality means the problem cannot be NP-complete (unless NP = coNP), since NP-completeness requires instances with no solution. This makes TFNP a natural home for problems believed to be hard but not NP-hard.
See the complexity zoo entry here.
Subclasses
TFNP contains several important subclasses defined by the combinatorial principle guaranteeing existence of a solution:
- PPAD (Polynomial Parity Argument, Directed): contains Nash equilibrium computation. Hardness of PPAD is the basis for cryptographic constructions of collision-resistant hash functions from worst-case assumptions — TODO citation.
- PPP (Polynomial Pigeonhole Principle): contains the problem of finding a collision in a function (pigeonhole guarantees one exists). Integer factorization is in PPP — TODO citation.
- PPA (Polynomial Parity Argument): related to graph parity arguments. Discrete logarithm over groups of unknown order has connections to PPA — TODO citation.
- PLS (Polynomial Local Search): finding local optima. Contains many optimization problems.
Known relationships
- .
- TFNP problems are unlikely to be NP-hard, since NP-hardness would require instances with no solution, contradicting totality (unless NP = coNP).
Relevance to cryptography
Integer factorization and discrete logarithm — the two most historically important hard problems in cryptography — are both in TFNP, formalizing the intuition that they are “hard search problems with guaranteed solutions.” Recent work has used TFNP subclass hardness (especially PPAD) as a basis for constructing cryptographic primitives from weaker or more structured assumptions.