FormalConjectures/Millennium/PvsNP.lean

GitHub source file

Explanation legend Lean4 Domain Explanation Language (L4DEL)

L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.

L4DEL
Lean4 Domain Explanation Language

Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.

Project sources: Pinned project documentation, Formal Conjectures paper, arXiv v1

7 declarations, 6 contain sorry, 0 declared as axioms

Conjectures in Complexity Theory

This file contains formal statements of some of the main open conjectures in complexity theory, including

References:

Imports (1)
  1. theorem ComplexityTheory.P_ne_NP P is not equal to NP sorry line 45 source

    Source documentation

    P ≠ NP:

    The conjecture that the complexity classes P and NP are not equal.

    L4DEL explanation

    The complexity classes P and NP differ; the file marks this as open.

    1. The statement is the inequality of two language classes, P and NP, defined elsewhere in the repository's utility library.
    2. The attribute reads category research open and the proof body is sorry.

    See also: ComplexityTheory.NP_ne_coNP

    Sources and attribution: Pinned Lean source (1646ca16afd6)

    depends on sorry what this means

    Statement uses: Ne, ComplexityTheory.DecisionComplexityClass, ComplexityTheory.P, ComplexityTheory.NP

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous, OfNat.ofNat, Nat

    1 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem P_ne_NP : P ≠ NP := by sorry
    …

    Mentions: ComplexityTheory.P, ComplexityTheory.NP

  2. theorem ComplexityTheory.NP_ne_coNP NP ≠ coNP: The conjecture that the complexity classes NP and coNP are not equal sorry line 53 source

    Source documentation

    NP ≠ coNP:

    The conjecture that the complexity classes NP and coNP are not equal.

    depends on sorry what this means

    Statement uses: Ne, ComplexityTheory.DecisionComplexityClass, ComplexityTheory.NP, ComplexityTheory.coNP

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous, OfNat.ofNat, Nat

    1 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem NP_ne_coNP : NP ≠ coNP := by sorry
    …

    Mentions: ComplexityTheory.NP, ComplexityTheory.coNP

  3. theorem ComplexityTheory.P_eq_BPP P = BPP: The conjecture that the complexity classes P and BPP are equal sorry line 61 source

    Source documentation

    P = BPP:

    The conjecture that the complexity classes P and BPP are equal.

    depends on sorry what this means

    Statement uses: Eq, ComplexityTheory.DecisionComplexityClass, ComplexityTheory.P, ComplexityTheory.BPP

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous, OfNat.ofNat, Nat

    1 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem P_eq_BPP : P = BPP := by sorry
    …

    Mentions: ComplexityTheory.P, ComplexityTheory.BPP

  4. theorem ComplexityTheory.coP_eq_P The theorem that the set of complements of languages in P is itself P sorry line 70 source

    Source documentation

    The theorem that the set of complements of languages in P is itself P.

    This can be proven by observing that the boolean negation function is computable in polynomial time, and that compositions of poly-time computable functions are also poly-time computable.

    depends on sorry what this means

    Statement uses: Eq, Set, ComplexityTheory.DecisionProblem, Set.ofPred, Membership.mem, ComplexityTheory.DecisionComplexityClass, ComplexityTheory.P, Compl.compl, List, Bool

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous, OfNat.ofNat, Nat

    9 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem coP_eq_P :
        { L | Lᶜ ∈ P } = P := by
    …

    Mentions: ComplexityTheory.P

  5. theorem ComplexityTheory.P_subset_NP sorry line 83 source

    depends on sorry what this means

    Statement uses: LE.le, ComplexityTheory.DecisionComplexityClass, ComplexityTheory.DecisionProblem, ComplexityTheory.P, ComplexityTheory.NP

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous, OfNat.ofNat, Nat

    3 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

  6. theorem ComplexityTheory.P_subset_coNP The theorem that P is a subset of coNP line 91 source

    Source documentation

    The theorem that P is a subset of coNP.

    depends on sorry what this means

    Statement uses: LE.le, ComplexityTheory.DecisionComplexityClass, ComplexityTheory.DecisionProblem, ComplexityTheory.P, ComplexityTheory.coNP

    Proof uses: Eq.mpr, Set.ofPred, Membership.mem, ComplexityTheory.NP, Compl.compl, List, Bool, id, Eq, congrArg, ComplexityTheory.coNP.eq_1, Set, Eq.symm, ComplexityTheory.coP_eq_P, ComplexityTheory.P_subset_NP

    7 instances, coercions and auxiliary constants left out.

    Tactic trace: 4 steps

    Open to load the checked before-and-after goal states.

    theorem P_subset_coNP :
        P ⊆ coNP := by
    …

    Mentions: ComplexityTheory.P, ComplexityTheory.coNP

  7. theorem ComplexityTheory.P_subset_BPP The theorem that P is a subset of BPP sorry line 106 source

    Source documentation

    The theorem that P is a subset of BPP.

    This can be proven by observing that for any language in P, we can construct a randomized decider that ignores the random bits and simply runs the poly-time decider for the language.

    depends on sorry what this means

    Statement uses: LE.le, ComplexityTheory.DecisionComplexityClass, ComplexityTheory.DecisionProblem, ComplexityTheory.P, ComplexityTheory.BPP

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous, OfNat.ofNat, Nat

    3 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

    Open to load the checked before-and-after goal states.

    theorem P_subset_BPP :
        P ⊆ BPP := by
    …

    Mentions: ComplexityTheory.P, ComplexityTheory.BPP