Documentation

Complexity.Computability.Complexity.Classes.Ladner

Ladner's theorem #

If P ≠ NP, some problem in NP is neither in P nor NP-complete Arora and Barak, Theorem 3.3. The problem is Ladner's language Cslib.Complexity.Ladner.SATH: satisfiable formulas φ whose encoding has length m, padded with m ^ H m ones, where the exponent H m is the least index below log₂ (log₂ m) of a machine agreeing with the language on the words with indices below m (Complexity.Computability.Complexity.Classes.Ladner.Basic). It is in NP (Cslib.Complexity.Ladner.SATH_mem_NP), because H is polynomial-time (Complexity.Computability.Complexity.Classes.Ladner.PolyTime). Two holes are blown in SAT:

An NP-complete problem in P gives P = NP for every encoding (Cslib.Complexity.NPComplete.P_eq_NP_of_mem_P), since P is closed under polynomial-time reductions (Cslib.Complexity.PolyTimeReducible.mem_P). Since SAT is NP-complete (Cslib.Complexity.CookLevin.SAT_npComplete), SAT ∈ P gives P = NP (Cslib.Complexity.Ladner.P_eq_NP_of_SAT_mem_P). The unconditional forms are Cslib.Complexity.Ladner.P_eq_NP_of_SATH_mem_P and Cslib.Complexity.Ladner.P_eq_NP_of_NPComplete_SATH; the theorem keeps P ≠ NP as an explicit hypothesis (Cslib.Complexity.Ladner.exists_NP_not_P_not_NPComplete).

Main definitions #

Main results #

References #

theorem Cslib.Complexity.Ladner.P_eq_NP_of_SAT_mem_P (h : SAT ∈ P encCNF) {α : Type} (enc : α ↪ List Bool) :
P enc = NP enc

If SAT is in P, then P = NP for every encoding of instances.

theorem Cslib.Complexity.Ladner.SAT_notMem_P {α : Type} {enc : α ↪ List Bool} (h : P enc ≠ NP enc) :

P ≠ NP, for any encoding, puts SAT outside P.

A machine deciding Ladner's language bounds the exponent #

A finite binary machine halting within time t x with output [f x], simulated by the universal function on its description for at least t x steps, halts with output [eBit (f x)].

If SATH is in P, then H is bounded: some index of a machine deciding SATH has a clock exceeding its polynomial time bound, and from some point on H is at most that index.

The first hole: padding along a bounded exponent #

The padding of φ along H, computed with powers capped at (m + 1) ^ C for the length m of the encoded formula.

Instances For

    If H is bounded, padding reduces SAT to SATH in polynomial time.

    A frequent value of the exponent #

    If H takes the value i infinitely often, the machine with index i agrees with SATH on every word within its clock.

    If H takes a value infinitely often, SATH is in P, decided by running the machine with that index within its polynomial clock.

    The second hole: an unbounded exponent #

    The unsatisfiable formula with one empty clause.

    Instances For

      One round of the self-reduction of SAT along a map R into words: a formula shorter than N is kept, and otherwise replaced by the formula padded along H in R φ, or by falseCNF if R φ is not such a padded word.

      Instances For

        Along a reduction from SAT to SATH, a round of the self-reduction preserves satisfiability.

        The self-reduction: as many rounds as the encoded formula is long.

        Instances For

          The satisfiable formulas whose encodings are shorter than N, as their encodings.

          Instances For

            The second hole. If SAT reduces to SATH in polynomial time and H tends to infinity, then SAT is in P: the self-reduction leaves a formula of bounded length, decided by a finite table.

            If SATH is NP-hard, then SAT is in P: either SATH is in P, and the first hole applies, or H tends to infinity, and the second hole applies to the reduction of SAT.

            Ladner's theorem #

            If Ladner's language is in P, then P = NP.

            If Ladner's language is NP-complete, then P = NP.

            If P ≠ NP, Ladner's language is not in P.

            If P ≠ NP, Ladner's language is not NP-complete.

            Ladner's theorem. If P ≠ NP (for some encoding of instances), some problem in NP is neither in P nor NP-complete: Ladner's language SATH Arora and Barak, Theorem 3.3.