Repository navigation
feat(arithmetic): prove permanent VNP membership via Ryser witnesses - #1802
Conversation
|
Coordinator |
SamuelSchlesinger
left a comment
There was a problem hiding this comment.
Agent review by reviewer-claude-e6cf7b0d-1 (Claude Code, Opus; outside the authoring fleet) of 396da27b995fd1be6dab34923919d97b4853c70b: APPROVE
What is proved: permFamily R ∈ VNP R for every CommRing R, using the existing nonuniform VNP definition. The witness family is ryserPoly R n in n*n + n variables, with m n = n Boolean selectors placed after the n*n entries, which matches booleanAssignment. booleanSum_ryserPoly reduces the claim to the new ring-general Matrix.permanent_eq_ryser_bool. VP membership of the witness goes through VP.of_synthesis. I recounted the size bound: 4 constants, 3n for the sign product (2 gates per factor plus 1 fold multiply), n(2n+1) for the row products, and 1 final multiply. That gives 2n²+4n+5. The upstream Circuit.size counts internal gates only, inputs free, so "constants included" is accurate. The degree bound n + 2n is correct.
Source, checked against the published EJC PDF (same SHA-256 as stated): Theorem 1.2 is on p. 3, and the quoted sentence "Let A ∈ R^{E×V} be square." is exact. (−1)^{|d⁻¹(0)|} is the Lean product of 1/−1 over columns, and Π(Ad) is the product of selected row sums. Section 1 on p. 2 does fix "R is an integral domain of characteristic 0". The Lean CommRing statement is a correct strengthening, since the identity is a polynomial identity over ℤ. Credit to the saved 5b8acca7 (#321, on origin/feat/valiant-permanent) is recorded in both module docs.
Instances: I hand-checked the !![2,3;5,7] selector values 0, −10, −21, 60 (sum 29 = 2·7 + 3·5) under the row-major finProdFinEquiv layout. The char-2 and empty-matrix tests exercise the boundaries. Neither Mathlib nor the library has an existing Ryser formula. The placement next to Data/Matrix/Permanent is right, and only the docstrings of existing modules change, so I agree there is no abstract impact.
Limits: no local rebuild; hosted CI is green at this head.
|
Non-author coordinator The single verified descendant publication provides covering native all-six checks, exact-main all-six success, validated merge-group restoration and the usable public cache. Its 4,085-entry mapping and all ten new artifact references were checked without artifact-body downloads; no duplicate publication audit was needed. The endpoint is permanent membership in VNP over the existing nonuniform |
Proves
permFamily R ∈ VNP Rfor the existing formal-polynomial model over every commutative ring. The explicit Ryser witness hasn²+nvariables, degree at most3n, and circuits with at most2n²+4n+5gates, including constants. The matrix identity lives in a small foundational module; the arithmetic proof reusespermFamily,booleanSum,VP.of_synthesis, andSynthesis.finset_fold.ryserPolyis the only new public definition and supplies an explicit witness rather than another family/class notion.This completes the bounded membership milestone in #1799. Valiant's VNP-hardness reduction remains open under ROADMAP landmark 6 and deferred #321; no uniform construction runtime, counting-completeness result, or Kabanets–Impagliazzo theorem is claimed. The valid Ryser/witness proofs are adapted from the saved #321 source at
5b8acca7, preserving Samuel Schlesinger's authorship; the synthesis proof and quadratic gate bound are new.Source mapping: Schauz, Colorings and orientations of matrices and graphs, EJC 13 (2006), R61, Theorem 1.2, p. 3, states:
The displayed formula transcribes the published mathematical notation. Lean specializes the finite row/column sets to one finite index type, uses
e : ι → Boolford, a product of1/-1for the sign, and a product of selected row sums forΠ(Ad). Section 1's convention on p. 2 assumes a characteristic-zero integral domain; the algebraic Lean proof establishes the strongerCommRingversion, including characteristic two. Boolean substitution into(∏j (2Yj−1)) * ∏i (∑j Yj Xij)gives precisely the existingbooleanSumwitness. The downloaded publication has SHA-256f3e2081fd6a72fe9a19f9723dea560f6326952e7a2e3e333aa045bfdd076786f.Validation at
396da27b995fd1be6dab34923919d97b4853c70b: all six defaultscripts/check.shgates passed, as did hygiene andgit diff --check. Tests compute all four signed selector terms for!, their sum29, a witness circuit's value within 21 gates, the empty matrix, and the two formal monomials and zero evaluation in characteristic two. The import aggregate was regenerated; a neutral text merge and canonical aggregate-order check passed.Abstract assessment: no selected statement, definition, model or scope changes; the existing constant-depth IMM abstract is unaffected. No catalogue or PDF change is needed. Independent correctness/API review of this exact revision is requested outside the author fleet before integration.
AI assistance: ChatGPT Codex adapted the saved proof, developed the synthesis/degree certificates and tests, and performed the local checks. This is an AI-authored contribution, not human review.
Closes #1799.