While this submission is a draft, it cannot be used by other submissions.

#P by counting the accepting runs of a Turing machine

Lax366625.CountingRunsComplete · concepts/Lax366625/CountingRunsComplete.lean · lax-366625

proven

Loading review…

Sign in with ORCID

Community review

Flags

Each flag is tied to a public ORCID identity and explains why this concept may be incorrect.

No flags have been submitted.

    Community review

    Flag this concept

    State precisely what appears incorrect. This explanation will be public under your ORCID name.

    No source line selected.

    Natural Language Statement

    Theorem

    Counting accepting runs is parsimoniously #P-complete, and a counting problem is in #P if and only if it reduces to it by an ordered parsimonious reduction: #P is the class of the numbers of accepting runs of nondeterministic polynomial-time machines. Membership counts the tableaux of the runs, which the runs determine; hardness builds the machine of the Cook–Levin theorem, which guesses only at the variables of a formula, so that its accepting runs are the models.

    Concept map
    28 concepts
    100%
    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on A
    Evidence

    This concept declares 2 statements. Each proof establishes one of them relative to its assumptions.

    Lean source view on GitHub

    1import Lax904597.Problems
    2import Lax904597.Interpretations
    3import Lax904597.Relativized
    4import Lax904597.SecondOrder
    5import Lax904597.Classes
    6import Lax904597.Sat
    7import Lax904597.Machines
    8import Lax535992.HornSat
    9import Lax535992.CircuitValue
    10import Lax535992.DeterministicMachines
    11import Lax535992.ClassPTIME
    12import Lax366625.CountingProblems
    13import Lax366625.CountingClasses
    14import Lax366625.WitnessCounting
    15import Lax366625.SecondOrderCounting
    16import Lax366625.QuantitativeLogic
    17import Lax366625.CountingSat
    18import Lax366625.MachineNumbers
    19import Lax366625.CountingRuns
    20import Lax366625.NumberedCircuits
    21import Lax366625.HornNumbers
    22
    23/-!
    24---
    25title: #P by counting the accepting runs of a Turing machine
    26type: theorem
    27---
    28Counting accepting runs is parsimoniously #P-complete, and a counting problem
    29is in #P if and only if it reduces to it by an ordered parsimonious
    30reduction: #P is the class of the numbers of accepting runs of
    31nondeterministic polynomial-time machines. Membership counts the tableaux of
    32the runs, which the runs determine; hardness builds the machine of the
    33Cook–Levin theorem, which guesses only at the variables of a formula, so
    34that its accepting runs are the models.
    35-/
    36
    37namespace Lax366625.CountingRunsComplete
    38
    39open FirstOrder FirstOrder.Language
    40open Lax904597.Problems Lax904597.Interpretations Lax904597.Relativized Lax904597.SecondOrder
    41open Lax904597.Classes Lax904597.Sat Lax904597.Machines
    42open Lax535992.ClassPTIME
    43open Lax366625.CountingProblems Lax366625.CountingClasses Lax366625.WitnessCounting
    44open Lax366625.SecondOrderCounting
    45open Lax366625.QuantitativeLogic Lax366625.CountingSat Lax366625.MachineNumbers
    46open Lax366625.CountingRuns
    47open Lax366625.NumberedCircuits Lax366625.HornNumbers
    48
    49/-- Counting accepting runs is parsimoniously #P-complete. -/
    50axiom sharpNtmAccept_sharpP_parsimoniousComplete : SharpP.ParsimoniousComplete SharpNTMAccept
    51
    52/-- #P is reducibility to counting accepting runs. -/
    53axiom mem_sharpP_iff_le_sharpNtmAccept :
    54 ∀ {L : Language.{0, 0}} [L.IsRelational] (C : CountingProblem L),
    55 SharpP.Mem C ↔ Nonempty (OrderedParsimoniousReduction C SharpNTMAccept)
    56
    57end Lax366625.CountingRunsComplete
    58
    Show ProofShow Proof

    Discussion

    Ask a question or add context. Endorsements and structured flags are kept in the review panel above.

    Loading discussion…