FormalConjectures/Wikipedia/PolyTimeFunctions.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

1 declarations, 1 contain sorry, 0 declared as axioms

Polynomial-time computability of factoring

This file formalizes the open problem of whether natural number / integer factorization can be computed in polynomial time on a deterministic classical Turing machine.

More precisely, it formalizes the following statement: Can the prime factorization of a natural number be computed in polynomial time (on a deterministic classical Turing machine)?

References:

Imports (1)
  1. theorem PolyTime.isPolyTime_primeFactorsList The integer factorization problem: Can the prime factorization of a positive integer be computed in polynomial time? sorry line 52 source

    Source documentation

    The integer factorization problem: Can the prime factorization of a positive integer be computed in polynomial time?

    We state the problem by asking if Nat.primeFactorsList is polynomial-time computable (assuming typical encodings of ℕ and List ℕ into bitstrings).

    Reference: Wikipedia

    L4DEL explanation

    The integer factorization problem: Can the prime factorization of a positive integer be computed in polynomial time? We state the problem by asking if Nat.primeFactorsList is polynomial-time computable (assuming typical encodings of ℕ and List ℕ into bitstrings). Reference: Wikipedia

    Sources and attribution: Pinned Lean source (1646ca16afd6)

    depends on sorry what this means

    Statement uses: Iff, True, ComplexityTheory.IsPolyTime, Nat, List, Nat.primeFactorsList

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

    5 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem isPolyTime_primeFactorsList : answer(sorry) ↔ IsPolyTime Nat.primeFactorsList := by
    …