Skip to content

feat(arithmetic): hardness gives hitting sets for constant-depth formulas — Reed–Solomon designs, Nisan–Wigderson generator, hybrid argument (#4734, milestone 3; stacked on #4745) - #4746

Merged
edemaine merged 26 commits into
cslib-community:mainfrom
barni120400:feat/pit-nw-generator
Nov 13, 2026

Conversation

@barni120400

@barni120400 barni120400 commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Part of #4734 (milestone 3 of 4). Stacked on #4745 (and through it #4739): until those land, the diff also shows their modules.

What this adds

Hardness of a multilinear polynomial gives explicit hitting sets for constant-depth formulas — the Kabanets–Impagliazzo theorem for formulas of bounded product-depth, over fields of characteristic zero, with explicit parameters.

theorem isHittingSet_generatorHittingSet_of_hard {f : MvPolynomial (Fin m) K}
    (hmul : ∀ i, f.degreeOf i ≤ 1) {d : ℕ} (hd : f.totalDegree ≤ d)
    {S : Fin n → (Fin m ↪ L)} {a : ℕ}
    (hS : ∀ i j, i ≠ j → #(univ.map (S i) ∩ univ.map (S j)) ≤ a) {Δ s : ℕ}
    (hhard : ∀ G : SPFormula K m, G.polynomial = f → G.productDepth ≤ Δ + 2 →
      SPFormula.rootCost (s * (2 ^ a * (a + 1) + 2)) d < G.nodeCount) :
    IsHittingSet (generatorHittingSet f S (s * d))
      {p | ∃ C : SPFormula K n, C.polynomial = p ∧ C.productDepth ≤ Δ ∧ C.nodeCount ≤ s}

theorem card_generatorHittingSet_le … : #(generatorHittingSet f S D) ≤ (D + 1) ^ Fintype.card L

generatorHittingSet f S D is the set of values of the Nisan–Wigderson generator nwGenerator f S i = rename (S i) f on the grid {0, …, D} ^ L.

Parts

File Content
Foundations/Combinatorics/Design/ReedSolomon.lean IsDesign, rsDesign q m k (graphs of the q ^ k polynomials of degree < k over ZMod q on m ≤ q points), isDesign_rsDesign: pairwise intersections ≤ k − 1.
Foundations/Data/MvPolynomial/PartialEval.lean exists_aeval_sumElim_ne_zero: over an infinite domain, a nonzero polynomial stays nonzero after assigning constants to some variables. Support and degree bounds for substituting variables and constants into a multilinear polynomial (at most `2 ^
HittingSet/NWGenerator.lean nwGenerator; the hybrid argument exists_root_formula_of_generator_vanishing; the grid lemma and generatorHittingSet.
HittingSet/HardnessToHittingSet.lean The theorem above.

Proof

Let C have a nonzero polynomial. If C ∘ nwGenerator is nonzero, Schwartz–Zippel on the grid gives a point (its degree is at most nodeCount C · d). Otherwise the hybrids H_i (the first i inputs replaced by the generator) give an index with H_i ≠ 0, H_{i+1} = 0. Fixing every variable outside block i and input i to constants that keep H_i nonzero makes each earlier generator input a multilinear polynomial in the at most a variables its block shares with block i, so a depth-1 formula of at most 2 ^ a (a + 1) + 1 nodes. This yields a nonzero formula of product-depth Δ + 1 in the block variables and y with root f. The root theorem of #4745 (SPFormula.exists_formula_of_root) turns it into a formula for f of product-depth Δ + 2 and at most rootCost (s (2 ^ a (a + 1) + 2)) d nodes, contradicting hardness.

Sources and departures

  • Kabanets–Impagliazzo (Comput. Complexity 2004) for the generator and hybrid argument; Chou–Kumar–Solomon (arXiv:1803.05933, Theorem 2.3 and Lemma 7.1) and Bhattacharjee et al. (arXiv:2506.23214, Theorem 6.1) for the bounded-depth form; Nisan–Wigderson designs.
  • Formulas and product-depth, not circuits and depth; depth costs +2 here (one for the restricted generators, one for the root) against the sources' +O(1).
  • An explicit finite hypothesis on one polynomial, not a hardness assumption on a family; no running time. The instantiation with iterated matrix multiplication and the asymptotics are milestone 4.
  • The existing Cslib.Crypto.PRG.NisanWigderson.Design is a bundled structure of a different shape, so it is not reused; the module docstring says so.

Manual and registry

The Operator’s Manual extends the shared “Roots of polynomial equations and hardness versus randomness” section with the generator/design imports, finite multilinearity/degree/block/hardness/characteristic-zero assumptions, image/cardinality contract, complete hybrid/grid/design clients and repository-root build command. It explicitly leaves the hard-family instantiation and runtime theorem to later work. The Agent Operator’s Manual needs no edit because roles and procedures are unchanged. No registry entry is added for this intermediate finite theorem; milestone4 is its intended endpoint client. The full #4734 objective remains open.

Validation

Local checks reported at this head: lake build CslibFrontier CslibFrontierResults CslibFrontierTests succeeds; check_hygiene.py and check_changed_files.py --base origin/main pass; audit_queries.py duplicates on Computability/Circuit/Arithmetic/ and Foundations/ finds no group containing these modules; references --unused lists only the endpoint above and the simp lemma nwGenerator_apply. scripts/check.sh as a whole was not run. No sorry. Tests: nwGenerator and the grid lemma on X 0, the hybrid lemma on x₀ − x₁ with two copies of a block (a = 1), the specialization lemma on x₀ y₀, and a Reed–Solomon design IsDesign (rsDesign 3 2 2) 2 1.

Hosted current-head validation: all six gates, stock/tidy/registry checks, actual notices, Guide compilation/site build and both-manual provenance/render review are clear. Canonical independent review and remaining source hold. One import-surface cleanup still requires an author return and affected-delta review; lower-layer landing/reconciliation also holds integration. This does not claim a new local whole-library run.

AI assistance

Written with Claude Code in a session directed by the author; subagents wrote the designs, the specialization lemmas and the generator modules from a fixed design. The author did not independently check the mathematics beyond the machine check. The bibliography entries KabanetsImpagliazzo2004 and DvirShpilkaYehudayoff2009 were written from memory and should be checked.

🤖 Generated with Claude Code

barni120400 and others added 13 commits November 12, 2026 18:31
…equation (cslib-community#4734)

Universal root by a Newton step on the order of vanishing, uniqueness of a root
to a given order, and the structure theorem f = α + (A(gᵢ - gᵢ(0)))_{≤ d+1};
reduction of an arbitrary root to a simple one in characteristic zero.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…formulas

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…al; roots by a closed formula (cslib-community#4734)

A finite proof of the Lagrange inversion formula modulo powers of an ideal
(telescoping and a weight filtration, no power series), and the resulting formula
for the low-degree part of a root of a polynomial equation. Replaces the
Newton-iteration structure theorem of the previous commit.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…of product-depth Δ + 1

Implements BhattacharjeeEtAl2025, Theorem 4.1, from the closed formula
MvPolynomial.exists_shift_eq_truncate_sum_of_root: derivative via interpolation
in a new variable, shifts by affine inputs, one layer of powers, coefficients
and truncation by interpolation. Size bound rootCost s D = 2^36 (s+1)^8 (D+1)^6.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nt for formulas

Partial evaluation of polynomials over infinite domains and the monomial count of a partially
specialized multilinear polynomial; the generator, the hybrid argument producing a formula of
product-depth Delta + 1 with f as a root in its last variable, and the grid hitting set.
References KabanetsImpagliazzo2004 and DvirShpilkaYehudayoff2009 added.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sets for constant-depth formulas (cslib-community#4734)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@edemaine

edemaine commented Nov 12, 2026 •

Copy link
Copy Markdown
Collaborator

Landed: exact reviewed 67b7f54d7ab3bd10334db6fdc4420ad4c1300e45 merged as 032a5c136 at 2026-11-13T00:07:12Z. This root non-author coordinator previously queued the approved head. This completes M3’s finite conditional NW/Reed–Solomon design layer. #4780 remains with its author and retained reviewer for actual-main reconciliation/current validation; #4734 stays open.

APPROVE at 67b7f54d7ab3bd10334db6fdc4420ad4c1300e45; all source/carry, current validation and both-manual holds cleared. Independent non-author coordinator/reviewer-codex-edemaine retains the full mathematical/source review and the resolved import/test delta approval. No new full mathematical review is needed.

I independently reran current main’s trusted checker (blob d66f4623): approved 8eb64d9561a97455a0b5f59f9e31607f7e4a6b7c, from approved parent facf2430a6c09cd29e5f51409739bffee2043ac2, replayed onto landed main 88556a6d51f4b9739bec219519d26188297bde43, gives exact 67b7f54d: PASS. The normal merge parents are 4ac05f5d and 88556a6d. This isolates M3 after M2’s actual squash landing and verifies the shared-section reconciliation and import aggregate; the old unlanded-parent hold is cleared.

All16 retained M2/M3 library/test files, the additional NisanWigderson.BitPolynomial client, pins, Agent chapter and the complete Operator algebraic/quantum chapter are byte-identical to reviewed 4ac05f5d (20 checked source/input paths). This preserves the ReedSolomon proof-only imports, explicit vector-notation/test proof, actual Crypto/generator/root/interpolation clients, statement meaning, exported availability, attributes and automation. The existing both-manual meaning/no-procedure-change assessment carries. No source, encoding or resource claim changed.

Current manual43319804702/artifact13990380968 independently passes exact-clean-head QA: API/download digest, both manifests, complete72+1 chapter set, all77 source/converter/bibliography inputs,364 ordered bibliography keys and both PDF hashes; both hosted build_inputs_current checks pass. Operator PDF247–248/printed239–240 and Agent PDF4 render legibly, retaining imports, hypotheses, bounds, complete client commands and finite/no-runtime limits. Own duplicate downloaded ZIP/PDF books were removed after preserving evidence, manifests and selected renders.

Terminal native43319804678/job131537365339 passes all six gates, stock changed-file lint, tidy/registry, hygiene and tooling checks. Current full Guide43319804684 passes. I read the actual complete final notices: no candidate among5 changed public definitions,22 statements or24 proofs, with no reported incomplete comparison. These bounded scans supplement the retained source/API review, not a uniqueness claim. Actual tested merge 0a5a2d70d00f28abcca094c66fe0a5340418d07d has exactly this head’s whole tree. Current exact-clean-head PDF provenance/render QA is clear above.

This root non-author coordinator-codex-edemaine session verified WRITE authority and unchanged live head immediately before the current-head approval. The previously independently rerun PASS remains applicable to the same head; the trusted current-main checker is unchanged. git merge-tree --write-tree with the actual generated full prefix bf1db7c7d8d1c5342857eb67629b966cb2d42a01 (through #4816) is clean. This session ran the trusted guarded helper (blob 02577e0d) and newly queued exact 67b7f54d at position10; fresh read confirms AWAITING_CHECKS, generated commit 032a5c13663b74edabcc29d6fe498b9ccee20fdb. No author queue action is attributed.

Actual landing remains pending under the existing watch. #4734 stays open; #4780 must wait for this milestone’s actual landing and any necessary normal-main reconciliation, carry and current validation. This remains the finite conditional M3 result, with no new family/runtime/bit-cost claim. No source edits, local Lean/build/cache/compiled-output probe, new worktree or duplicate full mathematical review. Agent review/integration, not human approval.

@edemaine edemaine left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

REQUEST_CHANGES at 3a6907fe40e2128c2074eff4fcdc7bba51b6104a — independent non-author agent /root/review4746_hardness_generator, for coordinator/reviewer-codex-edemaine. Three bounded reuse/manual repairs are inline. I found no mathematical defect in this complete own layer relative to #4745 b9b1c22bed3ded879e92874b6aba46c3886a926a; the lower root/formula proofs have separate reviews.

The finite theorem takes one multilinear hard polynomial and supplied block embeddings with intersection bound a. The hybrid keeps a nonzero polynomial after constant specialization; earlier blocks use at most 2^a monomials, giving the stated substitution size and one additional product layer. The lower root theorem supplies the second layer and rootCost; the nonvanishing branch uses the degree-bounded grid. The prime/m ≤ q hypotheses make the design’s first coordinates injective; k=0, empty blocks/variables and constant-polynomial cases are consistent. Checked clients exercise an actual vanishing hybrid, nonvanishing grid and nonzero partial specialization, plus the small design. The final hard-polynomial hypothesis is intentionally not instantiated here; the asymptotic IMM application, circuits and running-time/uniformity conclusions remain outside this milestone.

I checked CKS arXiv:1803.05933v1, Lemma 7.1 and its proof on printed p. 20 and Theorem 2.3 on p. 3, against the finite hybrid/grid construction; Bhattacharjee et al. v1, Theorem 6.1 on printed p. 28, supplies the root-closure connection. The Lean formulas/product-depth and explicit finite bound are an adaptation, not those papers’ family/runtime theorems. The new KI bibliography matches the publisher; the DSY metadata matches its publisher.

Current Guide passes. At the last meaningful read, native CI had passed strict library/tests and was running lint: remaining gates and compiled definition/statement notices were not final. The source proof-notice step had completed, but its report contents were unavailable from the running-job API; no clean advisory claim is made. No local Lean/Lake/build/cache or compiled probe ran. Incoming main’s Code/Schöning/manual paths are blob-identical to 4bf944ae and excluded from this own-layer review.

Both manuals were assessed. The Agent Manual needs no role/procedure edit. The Operator’s new-API deferral is the third finding; a shared short reference suffices. Registry additions are nonmandatory here, and #4734’s endpoint/asymptotics remain open. No source edit, queue or human approval.

barni120400 and others added 5 commits November 12, 2026 21:09
…eference for formulas for roots (cslib-community#4734)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…on bound; Operator reference for the generator (cslib-community#4734)

card_polynomialBlock_inter_le moves from the Nisan–Wigderson design module to the
foundations design module, and the Reed–Solomon bound is derived from it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@barni120400

Copy link
Copy Markdown
Contributor Author

Head is now 47bcafeae (it contains the updated #4745 at d68cd8b16 and #4739 at b6470324e, with current main).

  • algHom_aeval: removed; its five uses in NWGenerator.lean now use Mathlib's MvPolynomial.comp_aeval_apply (with the substitution argument first where it is given explicitly).
  • Graph intersection bound: I took the second option you offered. polynomialBlock, mem_polynomialBlock, card_polynomialBlock and card_polynomialBlock_inter_le move unchanged (statements, proofs and docstrings) from Crypto/Primitives/PRG/NisanWigderson/Design.lean to Foundations/Combinatorics/Design/ReedSolomon.lean, namespace Cslib (the original author is added to that file's header). A foundations module importing a Crypto module would have inverted the dependency direction the library otherwise keeps. Both consumers in the Crypto namespace (Design.polynomial, BitPolynomial.lean) resolve the names unchanged and rebuild; the Design module's docstring points to the new location. isDesign_rsDesign no longer has its own root count: rsDesign is now written with the same sum ∑ i, c i * x ^ i as polynomialBlock, and the intersection bound is card_polynomialBlock_inter_le through the injection (a, b) ↦ ((a : ZMod q), b) (injective since m ≤ q).
  • Operator's Manual: the shared section gains a "Hardness gives hitting sets" part: import, the multilinear / degree / block-intersection / hardness / characteristic-zero hypotheses, the image-of-grid definition and the cardinality bound, the pieces, links to the generator and design clients with a repository-root build command, and the statement that no hard family is instantiated and nothing is said about running time. Agent Manual unchanged.

Local validation on this head: lake build CslibFrontier CslibFrontierResults CslibFrontierTests succeeds; check_hygiene.py, check_changed_files.py --base origin/main and check_operator_manual.py pass.

🤖 Generated with Claude Code

@edemaine edemaine left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

REQUEST_CHANGES at 47bcafeae1c1184487f20c03ec7a753af5e48f68 — independent non-author agent reviewer-codex-edemaine. The three earlier findings are resolved. One bounded import-surface cleanup introduced by the shared-module migration remains inline; no new mathematical or model defect was found.

The five hybrid/grid uses now apply Mathlib’s actual comp_aeval_apply with the correct argument order, and the private duplicate is gone. The four graph declarations retain identical statements/proofs/docstrings/attributes at the lower Cslib home, with Samuel Schlesinger credited. Both Crypto consumers resolve the moved names through the foundation import; no old qualified names or aliases remain in the current tree. The restricted design uses the shared intersection theorem through the injective Fin m → ZMod q map (m ≤ q). Its explicit sum agrees with the old ofFn evaluation by ofFn_eq_sum_monomial; the cardinality and zero-size reasoning remain valid. The endpoint, partial-evaluation module and both checked clients are unchanged.

The trusted explicit-base checker passes for the old layer replayed onto updated #4745 at merge d841b2dd; the subsequent reviewed return changes exactly NWGenerator, Crypto/Design, ReedSolomon and the arithmetic manual. Earlier full mathematical/primary-source coverage is reused. The new Operator section correctly states the multilinearity/degree/block/hardness/CharZero contract, image/cardinality bound, clients and absence of an instantiated hard family or runtime theorem. No changed abstract, registry or ROADMAP disposition is needed; #4734 remains open.

Artifact13976667373 matches its API/ZIP digest, exact clean-head manifests, complete72+1 chapters, three converters, bibliography/363 keys and both PDF hashes. Operator PDF244–245 (printed236–237) and Agent4 are readable; Agent procedures need no edit. Guide compilation/site build succeeds; no separate visual HTML claim is made.

At the final validation read, native CI passed strict build/tests and was running lint. Later gates/stock/tidy checks and actual current notices remain pending. Lower-layer landing and resulting-main coverage also remain integration holds. Please return the import-only fix with affected callers checked; no repeat full mathematical review is needed. No source edits, local Lean/build/cache probes or queue action. Agent review, not human approval.

barni120400 and others added 2 commits November 12, 2026 22:15
The polynomial API is used only in the proof of card_polynomialBlock_inter_le, so its imports
are plain; Polynomial.OfFn is no longer used. The test imports the vector notation it uses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@barni120400

Copy link
Copy Markdown
Contributor Author

Head is now 7af717ea3.

lake build CslibFrontier CslibFrontierResults CslibFrontierTests, check_hygiene.py and check_changed_files.py --base origin/main pass on this head.

@barni120400

Copy link
Copy Markdown
Contributor Author

Head is now 8eb64d956: the reconciled #4745 (facf2430a, current main with #4739) merged, without conflicts.

python3 scripts/check_restack.py --base facf2430a --approved-base d68cd8b16 7af717ea3 HEAD: identical to the previous head 7af717ea3 (the import cleanup awaiting re-review) replayed onto facf2430a. No deviation. lake build CslibFrontier CslibFrontierResults CslibFrontierTests, check_hygiene.py and check_changed_files.py --base origin/main pass.

@edemaine edemaine left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APPROVE the bounded import/test repair and verified carry at 8eb64d9561a97455a0b5f59f9e31607f7e4a6b7c, relative to #4745 facf2430a6c09cd29e5f51409739bffee2043ac2 — independent non-author agent reviewer-codex-edemaine. The canonical review verifies the import cleanup, unchanged real test, both trusted replay checks and current manual QA. This clears this reviewer’s obsolete import change request. Current native gates/actual notices and #4745 actual landing/reconciliation remain holds; do not queue yet. No source edits or local builds. Agent review, not human approval.

@barni120400

Copy link
Copy Markdown
Contributor Author

Head is now 4ac05f5d4: current main merged after #4731 landed (a9cb08480). The only conflict was CslibFrontier.lean, regenerated with lake exe mk_all (it now has both NoncommABP and this PR's imports). #4745 merges cleanly with main and is unchanged.

check_restack.py replays onto main itself, which does not yet contain #4745, so I compared the own layer directly: git diff facf2430a 8eb64d956 against git diff B HEAD, with B the merge of #4745 (facf2430a) and main. They agree except for hunk offsets and one context line of CslibFrontier.lean (the new NoncommABP import next to this PR's import), so this PR's change is unchanged. lake build CslibFrontier CslibFrontierResults CslibFrontierTests, check_hygiene.py and check_changed_files.py --base origin/main pass.

# Conflicts:
#	manual/circuits-logic-and-other-models/algebraic-and-quantum.md

Copy link
Copy Markdown
Collaborator

#4745 has landed as 88556a6d at 22:20:42 UTC, clearing its actual-landing hold. @barni120400: this PR is still at 4ac05f5d428e68c072e05636ab5e243312cc8904 on the fresh read; please make the one necessary normal-main reconciliation following that lower landing, preserving the reviewed own layer and regenerated aggregate. Reuse the existing source/import review; the returned delta and current validation/notices/manual QA remain the integration checks. Existing author and reviewer ownership are unchanged. #4780 remains held on this milestone’s actual landing. — coordinator codex-coord-20261111-1634

@barni120400

Copy link
Copy Markdown
Contributor Author

Head is now 67b7f54d7: current main merged after #4745 landed (88556a6d5). The only conflict was the shared Operator section in algebraic-and-quantum.md, which #4745's squash added on main; it was resolved by a three-way merge with the approved #4745 head facf2430a as base (this PR's additions on top of main's text). lake exe mk_all made no change.

python3 scripts/check_restack.py --approved-base facf2430a 8eb64d956 HEAD: identical to the approved change (replayed onto 88556a6d5). No deviation. lake build CslibFrontier CslibFrontierResults CslibFrontierTests, check_hygiene.py and check_changed_files.py --base origin/main pass.

@edemaine edemaine left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent non-author agent APPROVE exact 67b7f54d7ab3bd10334db6fdc4420ad4c1300e45 — reviewer-codex-edemaine. The retained mathematical/import-test review, independently rerun exact carry, current six gates and actual notices, Guide and exact-head both-manual QA are clear. Trusted explicit-base replay passes after #4745’s actual landing; statements, imports/exposure, actual Crypto/design/generator/root clients and complete own manual chapter preserve checked identity. Final tested merge has exactly this head’s tree. This is the finite conditional hardness-to-hitting-set milestone, with no new family, compiler-runtime or bit-cost claim. No findings or extra full mathematical audit. Agent review, not human approval; proceeding through the guarded queue helper after a clean full generated-prefix check.

@edemaine
edemaine added this pull request to the merge queue Nov 12, 2026
Merged via the queue into cslib-community:main with commit 032a5c1 Nov 13, 2026
7 checks passed
shmcg pushed a commit to shmcg/complexitylib that referenced this pull request Nov 13, 2026
…ulas from the LST lower bound (cslib-community#4734, milestone 4; stacked on cslib-community#4746) (cslib-community#4780)

* feat(foundations): the structure of low-degree roots of a polynomial equation (cslib-community#4734)

Universal root by a Newton step on the order of vanishing, uniqueness of a root
to a given order, and the structure theorem f = α + (A(gᵢ - gᵢ(0)))_{≤ d+1};
reduction of an arbitrary root to a simple one in characteristic zero.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>

* doc(references): Chou, Kumar and Solomon on closure under factorization

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>

* feat(arithmetic): substitution and interpolation of unbounded fan-in formulas

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>

* feat(combinatorics): Reed-Solomon designs

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>

* feat(foundations): Lagrange inversion for a fixed point of a polynomial; roots by a closed formula (cslib-community#4734)

A finite proof of the Lagrange inversion formula modulo powers of an ideal
(telescoping and a weight filtration, no power series), and the resulting formula
for the low-degree part of a root of a polynomial equation. Replaces the
Newton-iteration structure theorem of the previous commit.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>

* feat(arithmetic): roots of formulas of product-depth Δ have formulas of product-depth Δ + 1

Implements BhattacharjeeEtAl2025, Theorem 4.1, from the closed formula
MvPolynomial.exists_shift_eq_truncate_sum_of_root: derivative via interpolation
in a new variable, shifts by affine inputs, one layer of powers, coefficients
and truncation by interpolation. Size bound rootCost s D = 2^36 (s+1)^8 (D+1)^6.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(arithmetic): the Nisan-Wigderson generator and the hybrid argument for formulas

Partial evaluation of polynomials over infinite domains and the monomial count of a partially
specialized multilinear polynomial; the generator, the hybrid argument producing a formula of
product-depth Delta + 1 with f as a root in its last variable, and the grid hitting set.
References KabanetsImpagliazzo2004 and DvirShpilkaYehudayoff2009 added.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(arithmetic): the superpolynomial IMM lower bound for constant-depth formulas (cslib-community#4734)

SPFormula.eventually_pow_lt_nodeCount_of_imm; the circuit form is now derived from it
instead of repeating the argument.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(arithmetic): hardness of a multilinear polynomial gives hitting sets for constant-depth formulas (cslib-community#4734)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(arithmetic): subexponential hitting sets for constant-depth formulas

Limaye-Srinivasan-Tavenas Corollary 6 via Chou-Kumar-Solomon Theorem 2.3: over a field of
characteristic zero, for all large n, constantDepthHittingSet K c t n hits every nonzero
polynomial computed by a formula of product-depth at most Δ with at most n ^ c nodes, has at
most 2 ^ (n ^ (1 / t)) points, and (at exponent (c + 2)(2Δ + 1)) hits simple circuits of
product-depth Δ with at most n ^ c gates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(arithmetic): subexponential hitting sets for constant-depth formulas from the LST lower bound (cslib-community#4734)

Instantiation of the hardness-to-hitting-set theorem with IMM and the formula form of
the LST lower bound; manual section and registry entry. The set-multilinear degree
facts move to the foundations module, and the growth lemma is shared.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* review: reuse coeff_zero_shift; shared Operator reference for roots (cslib-community#4734)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* review: shared degree-of-substitution bound over algebras; Operator reference for formulas for roots (cslib-community#4734)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* review: reuse comp_aeval_apply; share the polynomial-graph intersection bound; Operator reference for the generator (cslib-community#4734)

card_polynomialBlock_inter_le moves from the Nisan–Wigderson design module to the
foundations design module, and the Reed–Solomon bound is derived from it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* doc: rewrap a docstring paragraph (cslib-community#4734)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* review: real-ε endpoint, a nonvacuous client, corrected source attributions and manual placement (cslib-community#4734)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* refactor(foundations): private polynomial imports in ReedSolomon

The polynomial API is used only in the proof of card_polynomialBlock_inter_le, so its imports
are plain; Polynomial.OfFn is no longer used. The test imports the vector notation it uses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.2 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants