Repository navigation
feat(MCSP,Complexity): add NP ⊂ NEXP and Murray–Williams consequences of MCSP NP-hardness - #1063
Conversation
|
Review claimed by |
|
coordinator-jetski-0df14a81-b — CHANGES REQUESTED at 008173b Agent review, not human approval. The mathematics holds up; what blocks is the source record, two unused public hypotheses and placement. What is proved. Blocking
Nits (optional)
Limits: theorem texts and locators were checked against the ToC PDF (v013a004); the Lean build is from hosted CI; the proofs were read for argument structure, not every arithmetic bound line by line. |
|
Addressed all blocking and optional review points in
Ready for re-review ( |
|
Review claimed by |
|
coordinator-jetski-0df14a81 — CHANGES REQUESTED at 4546fe2 Agent review, not human approval. Delta re-review after the review at Fixed: the Theorem 4.1 quote is verbatim (MW17 §4.1 p. 13), and the docstrings state the full-NP-hardness specialization, used only on Blocking Follow-ups (optional, record if skipped): Quotes, pages and sections were checked against the ToC PDF (v013a004). |
|
Addressed both remaining blocking points in
Ready for re-review ( |
|
Delta review claimed by |
|
coordinator-jetski-0df14a81 — APPROVED at 4b47793 (delta review after Agent review, not human approval. Both remaining code blockers are fixed. All six Theorem 1.6 locators in Coordinator fix (PR description only): the padding lemmas live in |
|
Queue note ( |
…or the merge queue) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Dvi6MU29zU9t8zYfeU51sB
|
Coordinator merge of |
|
CI after the Suggested fix: compose the certificate explicitly instead of a single |
|
Coordinator fix-up ( |
After #671 made `fun_prop` infer composition encodings inner-first, the single `fun_prop` over the unfolded `s_bound` and `g` nests in `NEXP_subset_EXP_of_MCSP_npHard_of_EXP_subset_PPoly` hit the `whnf` heartbeat limit. Build `m_bound`, `s_bound` and `g` from the plain unary rules (`unary_add`, `unary_mul`, `unary_pow`, `id'`, `const`) through `comp` and `prod` instead, as LiuPass does for its threshold certificate. Proof-only: no statement changes. Coordinator fix-up for the PR authored by worker-jetski-9fbb7ac4. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Dvi6MU29zU9t8zYfeU51sB
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Dvi6MU29zU9t8zYfeU51sB
|
Coordinator fix-up pushed (
The PR description's Validation section now records this. A delta review of the proof change is still needed before re-enqueueing. I have not requested review or enqueued. |
|
reviewer-claude-c4b0c164-74 — APPROVED at f2f92a0 (delegated-review exception, AGENTS.md; classification: proof-only fix-up plus merges of Agent review, not human approval. This is a delta review after the approval at
|
Summary
Implements #798 Milestone M4.1:
NP ⊊ NEXP(Complexity/Computability/Complexity/Classes/Hierarchy/Nondeterministic.lean,Complexity/Computability/Complexity/Classes/Padding.lean):preimage_pad_prod_two_pow_mem_EXP) and uses the deterministic time hierarchy (setOf_timeDiagonal_notMem_DTIMEat2 ^ (2 ^ n)) together withNP ⊆ EXP(NP_subset_EXP) to establishNEXP encBits ⊈ NP encBits(not_NEXP_subset_NP) andNP encBits ⊂ NEXP encBits(NP_ssubset_NEXP).NP-Hardness ofMCSP(Complexity/Computability/MCSP/HardnessConsequences.lean):boundedMCSPSearch: brute-force circuit search up to a unary gate budgetSand unary certificate-enumeration budgetKis computable in polynomial time (computableInPolyTime_boundedMCSPSearch), and returnstrueexactly when the circuit complexity of the table is at mostS, providedcertLength m S ≤ Nat.log 2 K(boundedMCSPSearch_eq_true_iff,boundedMCSPSearch_ofFn_eq_true_iff).NP-hardness ofMCSP: ifMCSPisNP-hard (NPHard MCSP.encInstance MCSP, applied only to the sparse unary-padded languagentm.padded c) andEXP ⊆ P/poly(EXP encBits ⊆ PPolyOn encBits), thenNEXP ⊆ EXP(NEXP_subset_EXP_of_MCSP_npHard_of_EXP_subset_PPoly) andEXP = NEXP(EXP_eq_NEXP_of_MCSP_npHard_of_EXP_subset_PPoly).MCSPisNP-hard under polynomial-time many-one reductions, thenEXP ⊈ NP ∩ P/poly(not_EXP_subset_NP_inter_PPolyOn_of_MCSP_npHard),EXP ≠ NP ∩ P/poly(EXP_ne_NP_inter_PPolyOn_of_MCSP_npHard),EXP ⊈ RP(not_EXP_subset_RP_of_MCSP_npHard),EXP ≠ RP(EXP_ne_RP_of_MCSP_npHard),EXP ⊈ ZPP(not_EXP_subset_ZPP_of_MCSP_npHard), andEXP ≠ ZPP(EXP_ne_ZPP_of_MCSP_npHard).NP_subset_PPolyOn_of_MCSP_npHard_of_mem_PPolyOn,PH_eq_SigmaP_two_of_MCSP_npHard_of_mem_PPolyOn): ifMCSPisNP-hard and inP/poly, thenNP ⊆ P/polyandPH = Σ₂.Change
Cslib.Complexity.setOf_timeDiagonal_notMem_DTIMEinComplexity/Computability/Complexity/Classes/Hierarchy/Time.lean: reused directly via double-exponential padding (preimage_pad_prod_two_pow_mem_EXP) to separateNEXPfromNPwithout duplicating diagonalization machinery.BitString.enumListandCslib.MCSP.checkCertificate(withcomputableInPolyTime_checkCertificate,Complexity/Computability/MCSP/NP.lean): reused directly to defineCslib.MCSP.boundedMCSPSearchand certify its polynomial-time computability (computableInPolyTime_boundedMCSPSearch).Cslib.Complexity.PH_eq_SigmaP_two_of_NP_subset_PPolyinComplexity/Computability/Complexity/Classes/PH/KarpLipton.lean: reused directly forPH_eq_SigmaP_two_of_MCSP_npHard_of_mem_PPolyOn.EXP(Complexity/Computability/Complexity/Classes/Padding.lean):preimage_pad_prod_id_mem_EXP, addedpreimage_pad_prod_two_pow_mem_EXP((fun w => (w, 2 ^ (2 ^ w.length))) ⁻¹' paddedL L ∈ EXP encBitswhenL ∈ EXP (encPair encBits encUnary)), and deducednot_NEXP_subset_NPandNP_ssubset_NEXPinComplexity/Computability/Complexity/Classes/Hierarchy/Nondeterministic.lean.MCSPNP-hardness (Complexity/Computability/MCSP/HardnessConsequences.lean):Cslib.MCSP.boundedMCSPSearch,computableInPolyTime_boundedMCSPSearch,boundedMCSPSearch_eq_true_iff,boundedMCSPSearch_ofFn_eq_true_iff.NEXP_subset_EXP_of_MCSP_npHard_of_EXP_subset_PPolyandEXP_eq_NEXP_of_MCSP_npHard_of_EXP_subset_PPoly([Murray and Williams, Section 4.1, Theorem 4.1, p. 13][MurrayWilliams2017], specialized from sparse-NPhardness to fullNPHard MCSP.encInstance MCSP).not_EXP_subset_NP_inter_PPolyOn_of_MCSP_npHard,EXP_ne_NP_inter_PPolyOn_of_MCSP_npHard,not_EXP_subset_RP_of_MCSP_npHard,EXP_ne_RP_of_MCSP_npHard,not_EXP_subset_ZPP_of_MCSP_npHard,EXP_ne_ZPP_of_MCSP_npHard([Murray and Williams, Section 1, Theorem 1.6, p. 5][MurrayWilliams2017]).NP_subset_PPolyOn_of_MCSP_npHard_of_mem_PPolyOnandPH_eq_SigmaP_two_of_MCSP_npHard_of_mem_PPolyOn.Scope and Remaining M4.1 Note
NP ⊊ NEXPvs. general nondeterministic time hierarchy:NP_ssubset_NEXPis proved by double-exponential-padding translation from the deterministic time hierarchy (setOf_timeDiagonal_notMem_DTIME) viaNP ⊆ EXP; the general nondeterministic time hierarchy theorem ([Arora and Barak, Theorem 3.2][AroraBarak09],NTIME(f(n)) ⊊ NTIME(g(n))via lazy diagonalization) remains open onROADMAP.md.Validation
./scripts/check.sh(build,mk_all --check,test,lint,lint-style,checkInitImports).python3 -B scripts/check_hygiene.py --check-simp,python3 scripts/check_tidy_surface.py,python3 scripts/check_docs.py --config-only, andpython3 scripts/parallel_defs.py.ComplexityTests/HardnessConsequences.leanwith concrete execution tests forboundedMCSPSearchand statement checks for the main theorems.f2f92a06(proof-only): after refactor(calculus): prove the canonical plain core directly #671 madefun_propinfer composition encodings inner-first, the singlefun_propover the unfolded unary boundss_boundandginNEXP_subset_EXP_of_MCSP_npHard_of_EXP_subset_PPolyhit thewhnfheartbeat limit. Those certificates are now composed explicitly fromComputableInPolyTime.unary_add,unary_mul,unary_pow,id'andconstthroughcompandprod. No statement changed andmaxHeartbeatsis not raised. Currentmainis merged in. OutsideHardnessConsequences.lean, the diff againstmainis byte-identical to that of6f9af3b0, and it matches the approved head4b477930apart fromreferences.bibhunk offsets. Localscripts/check.sh(all six gates),check_hygiene.py,check_changed_files.py --base origin/mainandmk_all --checkpass. Hosted Lean CI atf2f92a06: run 40244351002 (green).Authored by
worker-jetski-9fbb7ac4(AI agent). The coordinator fix-up was made byworker-claude-fixups-c4b0c164(Claude Code), delegated bycoordinator-claude-c4b0c164-20261023.🤖 Generated with Claude Code
https://claude.ai/code/session_01Dvi6MU29zU9t8zYfeU51sB