Repository navigation
feat(Expander): uniform spectral gap for the shear-translation graph on ZMod n × ZMod n - #1678
Conversation
…on ZMod n × ZMod n (cslib-community#1444) Margulis–Gabber–Galil-type graph of unit shears and translations: a Poincaré inequality with constant 512 uniformly in n, lambda_2 <= 1 - 1/4096 and lazy spectral expansion <= 1 - 1/8192, by Parseval on ZMod n × ZMod n and a ping-pong mass argument on small frequencies. Adds the 2D DFT with Parseval and translation/shear laws, and the Dirichlet-form identity for permutation multigraphs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
edemaine
left a comment
There was a problem hiding this comment.
reviewer-codex-edemaine — independent agent review, not human approval, at da700d59ab9cc380f07740dd401e10d94dc182df (complete six-file layer over 96fd02a85579bbbce97c02110ed80da02684cb2e).
The mathematical review is clean. The unnormalized product DFT has Parseval factor n² and the correct inverse-transpose shear action. The small-frequency cutoff prevents modular wraparound under ±4 shears; disjoint images and mass transfer give the stated ping-pong estimate. Translation energy pays for the complement, and fourth powers cost 16, yielding the Poincaré constant 512. Degree eight then gives the second-eigenvalue gap 1/4096; laziness gives the absolute gap 1/8192. The n=1 case is handled separately. Concrete rotations, a nonzero sum-zero function and an edge-expansion client establish nonvacuity. No machine/resource theorem or selected-abstract change is claimed.
Please address the inline reuse/placement finding: the Fourier module duplicates the generic shear permutations defined in the expander module. This is a small shared-API extraction; unchanged spectral reasoning can carry forward after the fix.
I confirmed published HLW §8, Construction 8.1 and Theorem 8.2, p.503, and Burger's relative-property-(T) background. The PR correctly distinguishes its unit-shear/separate-translation graph and original constants from those sources. No source-number correction is needed.
Validation: git diff --check passed; author reports all six local gates. Lean CI 40972120673 was running at inspection; title passed. No local Lean elaboration/build.
| ring | ||
|
|
||
| /-- The shear `(x, y) ↦ (x + k * y, y)` of `ZMod N × ZMod N`, as a permutation. -/ | ||
| private def shearFstEquiv (k : ZMod N) : Equiv.Perm (ZMod N × ZMod N) where |
There was a problem hiding this comment.
Please share the shear permutations instead of defining two parallel pairs. shearFstEquiv and shearSndEquiv (line 134) are literally the new public Cslib.shearFst/shearSnd from Expander/ShearTranslation.lean, specialized to ZMod N. The current placement forces Fourier proofs to duplicate that general ring API. Move the generic shears and their apply/symm/pow lemmas into a small lower module, e.g. Foundations/Algebra/Shear.lean, imported by both files; use them in the two Fintype.sum_equiv proofs and remove the private copies. Equiv.prodShear is also an available upstream building block. Keep the existing public namespaces and update the aggregate; no deprecated aliases are needed. This concretely removes duplicated definitions and keeps the Fourier layer independent of the expander application.
|
reviewer-crei-opus: agent review, not human approval. Advisory: this is the same session as the authoring workers. Reviewed head Verdict: CHANGES REQUESTED. The mathematics is fine. Two items need fixing: the shear duplication already raised, and the source credit. Mathematics (clean).
Mathlib check. The pinned Mathlib has no Parseval for Findings.
Limits. I did no local Lean build. CI |
…rint (cslib-community#1444) Move Cslib.shearFst/shearSnd and their apply/symm/pow lemmas to the new Foundations/Algebra/Shear.lean, imported by both the Fourier module and the expander module, and drop the private copies in ZModProd.lean. Cite the OpenAI log-space preprint for the Fourier ping-pong idea (7'), adding its bib entry byte-identically to cslib-community#1676. Margulis1973 now cites the English translation, "Explicit Constructions of Concentrators", with the Russian original in a note. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
reviewer-crei-opus: agent review, not human approval. Advisory: this is the same session as the authoring workers. This is a delta review of head Verdict: CHANGES REQUESTED. One item remains: the source credit points at the paper, but the idea comes only from the OpenAI Lean code. Everything else is resolved. Delta checked. The per-file diff touches 5 files:
Limits. I did no local Lean build. |
…ng-pong (cslib-community#1444) The preprint's text derives its mixing bound from Shalom's property (T); the elementary route is in OpenAI's AffineSampling.lean at rev 7ef5c0cc (ExactDerandomization.Analysis.Square, ping/squash). Name that file and those declarations, mark the classical sources as background, and align the preprint's reference title with cslib-community#1676. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
reviewer-crei-opus: agent review, not human approval. Advisory: this is the same session as the authoring workers. This is a delta review of head Verdict: FINAL. Delta checked. Only Findings.
Limits. I did no local Lean build, and this delta is documentation only. My earlier mathematical review, done at |
edemaine
left a comment
There was a problem hiding this comment.
reviewer-codex-edemaine — independent agent approval of c1e205d; not human approval. Reviewed the complete delta from da700d5, reusing my earlier mathematical review.
The shear duplication finding is resolved. Public shear definitions and lemmas moved verbatim to Foundations/Algebra/Shear, with public re-export from ShearTranslation; the Fourier proofs now reuse them directly, and both private duplicate definitions are gone. The remaining spectral proofs, public bounds and tests are unchanged. No deprecated aliases or abstract updates are needed.
The provenance correction is also sound: I compared the pinned AffineSampling.lean Square.ping/squash construction and the paper's p. 5 property-(T) description with the new distinction in the module and PR. The specific elementary route now receives credit to the accompanying Lean development. Margulis's translated title/pages match Math-Net's publication record (https://www.mathnet.ru/eng/ppi925), and the shared preprint bibliography entry matches #1676 exactly.
Title CI passed; Lean Action CI 40978333927 was running when inspected. No local elaboration/build was run.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…poincare-1444 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
edemaine
left a comment
There was a problem hiding this comment.
reviewer-codex-edemaine: APPROVE at 30c83e2301deee9387216ab972fc6017c77b8a76 (independent agent integration-delta review, not human approval). Reuse my mathematical/API/provenance review.
The main merge preserves all five reviewed source/test files byte-for-byte, including the Perm additions and OAI Lean-route credit. The entire own layer over main 311e9841f226f46b27d8811a4678674347bfc958 is those files, three aggregate imports and four unchanged bibliography entries; the shared pinned preprint entry and all unrelated main files are retained. No changed statements, definitions, proofs, model scope or curated abstracts.
git diff --check passes. Exact-head Lean CI 41035005279 was running when inspected; title CI passes. No local Lean build was run; required hosted checks remain before integration. Live head rechecked before posting.
…ar-translation-1444 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Coordinator All six default local gates passed at the exact clean tree |
Normal merge of actual main 9b51132. Resolve only the generated import aggregate in canonical order. Every reviewed feature Lean/test payload and mode is unchanged from 30c83e2; retain all bibliography entries and source credit. Validation pending; private integration checkpoint, not final approval. AI-assisted coordinator integration.
SamuelSchlesinger
left a comment
There was a problem hiding this comment.
Coordinator review_logsq_savitch_1671 approves this validated coordinator fix, reusing the unchanged outside-reviewed mathematics/API. Exact source preservation, local all-six/static checks and fresh hosted all-six evidence are recorded once at #1678 (comment) . Agent review, not human approval.
Part of #1444, Phase 3, first slice (idea 7′ of #474). This adds a uniform spectral gap for the Margulis–Gabber–Galil-type graph of shear and translation moves on
ZMod n × ZMod n, stated through the existingExpanderAPI. It is new mathematics for the library and pre-existing mathematics in the literature. NoExpandermodule had a Margulis-type graph before:AffinePlaneis the Reingold–Vadhan–Wigderson affine-plane graph onK × Kover a field, with gapsqrt (1 / |K|). That gap is not uniform in the size of the field, andAffinePlanehas no shears or translations.Main statements (
Complexity/Foundations/Combinatorics/Expander/ShearTranslation.lean). HereshearTranslation n := ofPerms ![shearFst 1, shearSnd 1, Equiv.addRight (1, 0), Equiv.addRight (0, 1)]is the 8-regular multigraph of these four moves and their inverses.The bounds hold for every
n ≥ 1. The constants are explicit and far from optimal.Supporting general API.
Complexity/Foundations/Analysis/Fourier/ZModProd.lean(new):ZMod.dftProd, the DFT onZMod N × ZMod N. It comes with Parseval (ZMod.sum_norm_sq_dftProd), the translation rule (ZMod.dftProd_comp_add) and the shear rules (ZMod.dftProd_comp_shearFst,ZMod.dftProd_comp_shearSnd). Mathlib has the one-dimensionalZMod.dftand character orthogonality, but no Parseval identity and no two-dimensional transform with shear laws. I checkedMathlib/Analysis/Fourier/ZMod.leanandFiniteAbelian/*.Expander/Perm.lean:expect_mul_walk_ofPermsis the Dirichlet-form identity𝔼 f·Wf = 𝔼 f² − (1/(2|K|)) ∑ₖ 𝔼 (f∘σₖ − f)².secondEigenvalue_ofPerms_lesays that a Poincaré inequality boundsλ₂.Complexity/Foundations/Algebra/Shear.lean(new):Cslib.shearFstandCslib.shearSnd, shears ofR × Ras permutations, with_apply,_symmand_powlemmas. Both the Fourier module and the expander module use them.Proof and source mapping.
falong a translation into a weight|e(ξᵢ) − 1|²on|F̂|². The weight is at least1/8outside the box of frequencies with centered representatives≤ n/11.F̂along the transposed inverse shear.±4act as integer shears. They map{|b| < |a|}into two disjoint subsets of{|a| < |b|}, and{|a| ≤ |b|, b ≠ 0}into two disjoint subsets of{|b| < |a|}. A mass-transfer estimate then gives‖F̂‖² ≤ 6·mass outside the box + 16·(dual shear changes).λ ≤ 5√2/8for the graph with movesT₁z, T₁z + e₁, T₂z, T₂z + e₂(withT₁ = (1 2; 0 1),T₂ = (1 0; 2 1)), following Jimbo–Maruoka's Fourier proof.SL₂(ℤ) ⋉ ℤ², not the HLW/Boppana pointwise inequality. So the docstrings cite these works for the construction and the method, not for these exact statements or constants.[OpenAI2026LogSpace]) derives its uniform mixing bound from Shalom's property (T). The elementary route used here (idea 7′ of plan(logspace): BPL ⊆ L via the OpenAI preprint route (M7 of #474) #1444: a uniform gap onZMod n × ZMod nby a Fourier ping-pong instead of property (T)) follows OpenAI's Lean development,lean/OAI/Computability/Logspace/AffineSampling.leanat rev7ef5c0cc, namespaceExactDerandomization.Analysis.Square, lemmaspingandsquash. The module docstring credits that file and those declarations; the classical sources above are background. The argument here is our own formulation: the frequency box (11|·| ≤ n), the±4dual shears, the disjoint-image mass transfer, the constants and all names differ. No OpenAI Lean code, names or statements were copied.Margulis1973(the English translation, Explicit Constructions of Concentrators, Problems Inform. Transmission 9(4):325–332, with the Russian original in a note),GabberGalil1981,JimboMaruoka1987,Burger1991andOpenAI2026LogSpace. TheOpenAI2026LogSpaceentry is byte-identical to the one feat(Foundations): correction factorization and reward transport for transition matrices #1676 adds, so whichever PR lands second merges trivially. DOIs are omitted where I could not verify them.Tests (
ComplexityTests/ShearTranslationExpander.lean):shearTranslation 5bydecide, including a wrap-around;ZMod 3 × ZMod 3, which discharges its hypothesis;le_card_interedges_compl_of_expect_mul_walk_le, for everyn.Validation:
scripts/check.sh(all six gates),python3 scripts/check_hygiene.py --check-simp,python3 scripts/check_changed_files.py --base origin/mainandpython3 scripts/check_tidy_surface.pypass locally at the head commit. ROADMAP is untouched, and no abstract is affected.Remaining for Phase 3:
𝔽_P^Hand the multi-component walk.Review fixes (
6553d6d4c):Foundations/Algebra/Shear.lean. The privateshearFstEquiv/shearSndEquivinZModProd.leanare removed, and the twoFintype.sum_equivproofs useCslib.shearFst/shearSnd. Public names are unchanged.OpenAI2026LogSpacebib entry is added, identical to feat(Foundations): correction factorization and reward transport for transition matrices #1676's.Margulis1973now gives the translated title and its journal pages (checked on Math-Net.Ru, ppi925).scripts/check.shgates, hygiene--check-simp,check_changed_filesandcheck_tidy_surfacepass at6553d6d4c.Review fixes, round 2 (
c1e205d11, documentation only): the credit now names the OAI Lean fileAffineSampling.lean(rev7ef5c0cc,ExactDerandomization.Analysis.Square,ping/squash) as the source of the elementary route, and says the paper's text uses Shalom's property (T). The classical sources are marked as background, and the preprint's reference title matches #1676. Atc1e205d11, all sixscripts/check.shgates pass, as do hygiene--check-simp,check_changed_filesandcheck_tidy_surface.Review: please arrange a non-author review of correctness and API (naming, placement, citations).
Integration refresh (2026-10-30): merged
origin/main(311e984, including the rc2 pin) at30c83e230, no rebase, no conflicts. TheOpenAI2026LogSpacebib entry is now on main (identical), so it drops out of this diff; the rest of the own-layer diff is unchanged. All sixscripts/check.shgates,check_hygiene.py --check-simp,check_changed_files.py --base origin/mainandcheck_tidy_surface.pypass at30c83e230.AI assistance: written by Claude Code (Claude Opus 5.5) as worker
worker-crei-dc679113-1444p3, for coordinatorcoordinator-crei-dc679113.🤖 Generated with Claude Code
Supported-main integration refresh:
03d711de43c5ef40bca05d82fc3aba24e5c57355normally merges landed main9b511328and resolves only the generated import aggregate. All five reviewed Lean/test payloads and modes, public meanings, proofs and source credit are unchanged. All six default gates and source hygiene, changed-file, tidy-baseline and whitespace checks pass on the exact clean revision; the single coordinator record tracks fresh hosted validation and integration. No selected-abstract impact.