Draft — mutable and not usable as a dependency; its citation marks the draft state.

Proof of `The acceptance problem reduces to the Post correspondence problem`

groundedproofs/Lax251941Proofs/Results.lean · lax-251941

What this proof establishes

no assumptions

Assuming the claims on the left, the claim on the right holds — checked by the archive's pipeline. Proof code is not displayed here.

Read the Lean proof on GitHub

Description

Sipser's Theorem 5.15 as a many-one reduction: a decision procedure for the Post correspondence problem over N decides the acceptance problem for Turing machines.

Proof strategy

The source builds Sipser's instance sipserPCPMwsipserPCP M w over the alphabet SymSym of configurations, proves that its matches are exactly the accepting computation histories (PCP.hasMatchsipserPCPiffPCP.hasMatch_sipserPCP_iff, through the modified problem and the trick, PCP/SRtoMPCP.leanPCP/SRtoMPCP.lean and PCP/StarTrick.leanPCP/StarTrick.lean), and that the construction is primitive recursive (PCP/Computable.leanPCP/Computable.lean); PCP.computablyDecidableacceptanceofpcpPCP.computablyDecidable_acceptance_of_pcp is the reduction. The concept states both problems over N: the bridge moves the given decision procedure from N to SymSym along the injective encoding of SymSym, which preserves and reflects matches (computablyDecidablehasMatchsymcomputablyDecidable_hasMatch_sym), and the resulting procedure for the source's machines to the concept's (computablePredacceptsiffcomputablePred_accepts_iff).

Attribution

Sipser, Theorem 5.15 (Section 5.2); Lean proof by Aristotle (RequestProject/PCP/RequestProject/PCP/).