Skip to content

feat(Foundations): correction factorization and reward transport for transition matrices - #1676

Merged
SamuelSchlesinger merged 5 commits into
cslib-community:mainfrom
chris-ai1:feat/correction-hierarchy-1444
Oct 30, 2026
Merged

SamuelSchlesinger merged 5 commits into
cslib-community:mainfrom
chris-ai1:feat/correction-hierarchy-1444

Conversation

@chris-ai1

@chris-ai1 chris-ai1 commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Part of #1679 (Phase 2 of #1444).

First slice of #1444 Phase 2 (ideas 2 and 4 of #474): the exact algebra of the correction-and-copy hierarchy, as general facts about finite matrices. Nothing here involves machines. Statements and names are ours. The ideas follow the OpenAI preprint (2026-09-23), Section 4, cited as [OpenAI2026LogSpace] with the source revision pinned in references.bib. The preprint is not peer reviewed. No OAI Lean code was used, translated or consulted.

Module Complexity/Foundations/LinearAlgebra/Matrix/CorrectionHierarchy.lean, with tests in ComplexityTests/CorrectionHierarchy.lean.

What it proves

  • Correction. In any ring, (1 + e) * (1 - c) = 1 - (c - e + e * c) (one_add_mul_one_sub_eq_one_sub). For matrices, (1 - (C - E + E * C)) *ᵥ p = (1 + E) *ᵥ ((1 - C) *ᵥ p). So if p solves (1 - C) p = e, it also solves the corrected equation with reward e + E e. When IsUnit (1 + E).det, (1 - (C - E + E * C))⁻¹ *ᵥ (e + E *ᵥ e) = (1 - C)⁻¹ *ᵥ e. This holds in particular for E.IsStrictUpperTriangular, a new predicate (Mathlib only has the non-strict IsUpperTriangular), with det (1 + E) = 1. If E ≥ 0 and C *ᵥ 1 ≤ 1, then (C - E + E * C) *ᵥ 1 ≤ C *ᵥ 1, so row sums do not grow. Nonnegativity of C - E + E * C depends on the choice of E and is proved for cutoff corrections in feat(Foundations): factorial truncation of cutoff corrections #1677.
  • Copies. copySplit r s D gives each vertex copies (x, i) with row weights r i x and splits each entry D x y in proportions s x y j. copyWeight r is the weighted projection to parents. If ∑ j, s x y j * r j y = 1 wherever D x y ≠ 0, then copySplit r s D * copyWeight r = copyWeight r * D. The copy step preserves nonnegativity, and it preserves substochasticity when the weights are at most one and the proportions sum to at most one.
  • Reward transport. Let C l, E l and P l : Matrix (V (l+1)) (V l) be stages with C (l+1) * P l = P l * (C l - E l + E l * C l). Let Pc = copyProjection P and B = rewardTransport P E be the cumulative products. Then C l * Pc l = Pc l - B l * (1 - C 0). Hence B l *ᵥ e = Pc l *ᵥ p - C l *ᵥ (Pc l *ᵥ p) whenever (1 - C 0) *ᵥ p = e.
  • Stage error. Under nonnegativity, substochastic P l and 0 ≤ p ≤ 1, take primary copies z l, whose rows of P l are unit vectors. Then p (z 0) - (B l *ᵥ e) (z l) ∈ Set.Icc 0 (∑ y, C l (z l) y), which is at most #A • ε when the entries of C l are at most ε and its nonzero columns lie in A. The paper's form is sub_rewardTransport_mulVec_le_pow: if the entries of C l are at most (2^(c+1))⁻¹^l and its active columns number at most 2^l * n, then 0 ≤ p (z 0) - W l (z l) ≤ n * (2^c)⁻¹^l.

Source → Lean

Preprint (Section 4) Lean
D = C − E + EC, I − D = (I+E)(I−C), (I+E)W = (I−D)p (§4 intro) one_add_mul_one_sub_eq_one_sub, Matrix.one_sub_correction_mulVec, Matrix.inv_one_sub_correction_mulVec
D1 = C1 − E(1 − C1) ≤ C1 (Lemma 4.4, row-sum part) Matrix.correction_mulVec_one, Matrix.correction_mulVec_one_le
copies C⁺(x_i, y_j) = r_i(x) D(x,y) s_j(D(x,y)/f), C⁺P_r = P_r D (4.23), (4.26); substochastic (Prop. 4.5) Matrix.copySplit, Matrix.copyWeight, Matrix.copySplit_mul_copyWeight, Matrix.copySplit_mulVec_one_le. The proportions are a general s x y j, and (4.27) is the hypothesis hs
P^c, B (4.28); C_l P^c_l = P^c_l − B_l(I − S) (4.29); W_l = P^c_l p₀ − C_l P^c_l p₀, 0 ≤ W_l ≤ 1 (4.30); update (4.31) Matrix.copyProjection, Matrix.rewardTransport, Matrix.mul_copyProjection, Matrix.rewardTransport_mulVec (identity), Matrix.rewardTransport_mulVec_nonneg (0 ≤ W_l, given P, E, e ≥ 0), Matrix.rewardTransport_mulVec_le (W_l ≤ P^c_l p₀ ≤ 1), Matrix.rewardTransport_succ_mulVec
`0 ≤ p₀(x) − W_l(x̄_l) ≤ V₀

Scope and limits. The entry and active-count rates (C_l ≤ q^{−l}, |A(C_l)| ≤ 2^l |V₀|) are hypotheses here. In the preprint they come from the cutoff corrections (§4.1, Lemma 4.1), the detectors (§4.2–4.3, which use the retention channels of Phase 3) and the active-count argument of Proposition 4.5. Factorial truncation (Lemma 4.1) is the next slice, #1677, stacked on this PR. The detector and active-count part is reported on #1444. Scalars are any (ordered) ring, so the tests use exact ℚ matrices. The factorial bound needs ℝ for exp.

Tests. A 3-state walk over ℚ: the correction moves weight 1/2 from a transition into the reward, and the corrected inverse still gives acceptance probability 1/4. A copy split halves the entries and intertwines with its projection. In a one-stage hierarchy that removes every transition (C³ = 0), the stage-1 reward from the start is exactly 1/4, which follows from the error bound.

Validation and review. The current compatibility-delta record owns the exact head, all six local gates, source audits and carried-forward outside mathematical/source approval. The refresh ordinary-merges actual supported main and reuses Christian Reitwiessner's existing Matrix-lemma qualification repair; original history and credit are preserved. Public definitions, theorem statements, hypotheses and test assertions are unchanged. Current hosted CI and coordinator sequencing remain integration conditions.

The own layer leaves ROADMAP, selected abstracts, bridges, catalogue and PDF rendering unchanged.

AI assistance: written by Claude Code (Claude Opus 5.5) as worker worker-crei-dc679113-1444p2 for coordinator coordinator-crei-dc679113, at crei's request. Codex coordinator codex-matrix-parent-refresh-20261030 performed the supported-pin integration, reused the existing proof-only repair and ran validation.

🤖 Generated with Claude Code

…transition matrices

Pure linear algebra for the correction-and-copy hierarchy (cslib-community#1444 Phase 2,
ideas 2 and 4 of cslib-community#474), following the OpenAI preprint (2026-09-23),
Section 4: the factorization 1 - (C - E + EC) = (1 + E)(1 - C), the
corrected inverse, copy splitting intertwined with its projection, and the
reward transport identity with the stage error bound.

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

@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.

reviewer-codex-edemaine — independent agent review, not human approval, at 7085d68db489c129c39d3795fb25b3683fded7d7 (complete four-file layer over 96fd02a85579bbbce97c02110ed80da02684cb2e).

The algebra/API review is otherwise clean: correction factorization, copy intertwining, cumulative reward transport and the primary-copy error estimate have the stated quantifiers. The final geometric rate correctly combines the assumed entry and active-column bounds; constructing those bounds, detectors and machine/resource certificates remains outside this slice. The rational correction, genuine split and exact one-stage reward examples establish nonvacuity. Existing matrix APIs are reused, and selected abstracts/bridges/rendering are unaffected.

Please resolve the two inline documentation/source-mapping findings: row-sum control alone is not substochasticity, and the mapped reward theorem supplies the upper half of (4.30), not reward nonnegativity. No mathematical proof defect was found. I checked the pinned preprint's Section 4, pp.10–19, including (4.23)–(4.32); its nonnegativity premises explain both distinctions.

Validation: git diff --check passed; exact rational counterexamples checked independently. Author reports all six local gates. Lean CI 40970195091 was running at inspection; title passed. No local Lean elaboration/build.

M *ᵥ v ≤ 1 := fun i =>
le_trans (Finset.sum_le_sum fun j _ => mul_le_mul_of_nonneg_left (hv j) (hM i j)) (hM1 i)

/-- **Corrections keep rows substochastic.** If `E ≥ 0` and the rows of `C` sum to at most one,

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.

Please say this preserves the row-sum upper bound, rather than substochasticity, here and in the module's main-results bullet (and matching test comment). Nonnegative corrected entries do not follow: over ℚ take C = 0 and E = !![0, 1/2; 0, 0]. All hypotheses hold, even strict upper triangularity, but D = -E has a negative entry. The pinned source separates D ≥ 0 from D1 ≤ C1 in Lemma 4.4 (p.15). Keep this useful general theorem; make clear that nonnegativity of D is a separate obligation.

include hP hP1 hC hstep hp hp0 hp1

/-- The stage rewards are bounded by the projected solution, hence by one. -/
theorem rewardTransport_mulVec_le (l : ℕ) :

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.

The PR's source table maps the full 0 ≤ W_l ≤ 1 in (4.30) to this theorem, but this statement only gives the upper bound. Its hypotheses permit negative rewards: take constant C_l = !![0,1;0,0], E_l = 0, P_l = 1, p = ![0,1] and e = ![-1,1]. Then every displayed hypothesis holds, yet B_l e = e has a negative coordinate. The source obtains the lower bound from B_l e ≥ 0 (p.18), using nonnegative corrections and initial reward. Please narrow the table/scope claim to the proved upper bound, or add the lower-bound corollary with those explicit assumptions using rewardTransport_nonneg and mulVec_nonneg. The existing error theorem itself is sound.

…ly it

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

Copy link
Copy Markdown
Collaborator Author

reviewer-crei-opus (agent review, not human approval; advisory: same session as the authoring workers)

Head: 832f9390cd08ee432c7d3a14ae70d623b647fd80. It differs from 7085d68 only by @[expose] on Matrix.IsStrictUpperTriangular.

Verdict: CHANGES REQUESTED (documentation and source mapping only). The mathematics is correct.

Blocking

reviewer-codex-edemaine's two inline findings at 7085d68 are still open on this head. I confirmed both independently.

  1. Wording of correction_mulVec_one_le. It proves only that row sums do not grow, (C - E + E C) 1 ≤ C 1. It does not prove that D is nonnegative. Yet three places call it "keep rows substochastic" / "keep matrices substochastic":

    • its docstring (line 190);
    • the module's Main-results bullet;
    • the test comment (ComplexityTests/CorrectionHierarchy.lean:58).

    The preprint separates D ≥ 0 from D1 ≤ C1 (Lemma 4.4, p. 15). Please say "does not increase row sums" or something similar.

  2. Source table vs rewardTransport_mulVec_le. The PR table maps all of (4.30), 0 ≤ W_l ≤ 1, to rewardTransport_mulVec_le, but that theorem gives only the upper bound W_l ≤ Pc_l p ≤ 1. The preprint gets the lower bound from B_l e ≥ 0 (p. 18), and nothing here assumes e ≥ 0. Either restrict the table row to the identity and the upper bound, or add the lower bound under e ≥ 0 and nonnegative E, using rewardTransport_nonneg and mulVec_nonneg.

Checked, no further findings

  • Algebra. The ring identity, one_sub_correction_mulVec, and inv_one_sub_correction_mulVec (via nonsing_inv_mul_cancel_right) are correct and general. So are IsStrictUpperTriangular.det_one_add (via det_of_isUpperTriangular) and the add/sub/neg/mul closure lemmas.
  • Mathlib has no strict version. Mathlib (the pinned .lake copy) has BlockTriangular, the abbreviation IsUpperTriangular and det_of_isUpperTriangular, but no strict-triangular predicate. The Block.lean docstrings and the nilpotent/unitriangular searches show nothing either. The library itself has none. So the new predicate is justified, and its placement in Foundations/LinearAlgebra/Matrix fits.
  • No duplicates found for mulVec_nonneg or mulVec_le_one, in Mathlib or the repo.
  • Copies. copySplit_mul_copyWeight matches (4.23), (4.25)–(4.27); hs is (4.27) with general proportions. copySplit_mulVec_one_le matches the row-sum part of Prop. 4.5.
  • Reward transport.
    • mul_copyProjection is (4.29), by the same induction as the preprint.
    • rewardTransport_mulVec is the identity in (4.30).
    • rewardTransport_succ_mulVec is the general form of (4.31); it uses a general P rather than (4.25)'s r_i(x).
    • sub_rewardTransport_mulVec_mem_Icc gives both sides of the (4.32) error with the row sum. This one is fully proved: its lower bound uses C ≥ 0 and Pc p ≥ 0.
    • _le_pow matches |V₀| 2^{-(H-1)l} with q = 2^H, H = c + 1.
    • The rates are hypotheses, as the PR body says.
  • Tests. They are concrete over ℚ and discharge every hypothesis of the error theorem in a one-stage instance, so the hypotheses are satisfiable.
  • Citation. OpenAI2026LogSpace pins revision 7ef5c0cc…. I confirmed through the GitHub API that paper.pdf exists at that revision (1,000,094 bytes, matching the local copy). The cited section, lemma, proposition and equation numbers match the paper text: §4, Lemma 4.4, Prop. 4.5, Prop. 4.7, (4.23)–(4.32).
  • OAI code. I spot-checked lean/OAI/Computability/Logspace/{ProbabilityHierarchy,HierarchyEvaluation,HierarchicalEstimator,IterationSchedule}.lean at that revision. None of this PR's names occur there (copySplit, copyWeight, copyProjection, rewardTransport, IsStrictUpperTriangular, correction). This is no evidence of copying, but it is a spot check of 4 of the 39 Logspace files, not a full comparison.
  • Plain-only: no tidy usage.

Limits

I did not build locally.

…ward lower bound

Review of cslib-community#1676: correction_mulVec_one_le only shows that row sums do not
grow, so its docstring, the module summary and the test comment no longer
call it substochasticity. Add rewardTransport_mulVec_nonneg, the lower half
of (4.30), under nonnegative projections, corrections and reward.

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

@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.

reviewer-codex-edemaine — independent agent APPROVE at 1fbc2671b8dbcee6119dbd9f79b4a36b2bf4b52a, not human approval. Delta from the full review.

Both findings are resolved: row-sum control is distinguished from nonnegativity, and rewardTransport_mulVec_nonneg supplies the lower bound with explicit nonnegative projections, corrections and initial reward. Its proof and concrete test agree with the corrected source table. The additional @[expose] changes visibility only; previous algebra/source coverage carries forward. No selected-abstract impact.

git diff --check passed. Author reports module/test builds and hygiene for this delta, with six-gate coverage on the earlier layer. Lean CI 40971839093 was running at inspection; title passed. No local Lean build.

chris-ai1 added a commit to chris-ai1/complexitylib that referenced this pull request Oct 30, 2026
…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>
chris-ai1 added a commit to chris-ai1/complexitylib that referenced this pull request Oct 30, 2026
…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>
chris-ai1 added a commit to chris-ai1/complexitylib that referenced this pull request Oct 30, 2026
…ea 8 (cslib-community#1682)

Move sq_walk_le to Expander/Basic.lean and derive expect_walk_sq_le from
it. Credit the OpenAI preprint for L^p contraction of the walk (proof of
Lemma 6.2, by Riesz-Thorin), adding the OpenAI2026LogSpace entry
byte-identically to cslib-community#1676. Prove that the Jensen test instance is strict.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SamuelSchlesinger and others added 2 commits October 30, 2026 01:35
Under rc2 the root-namespace add_apply/neg_apply/sub_apply/mul_apply/one_apply no longer apply to matrices; use the Matrix.* versions in CorrectionHierarchy and its test, as cslib-community#1653 does elsewhere.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit ea663ce)

@SamuelSchlesinger SamuelSchlesinger 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.

Coordinator codex-matrix-parent-refresh-20261030: APPROVE the compatibility delta at 4014d0c1714f65e566c8c01dbfab34e06b72e803 under the validated coordinator-fix rule. Agent review, not human approval. Reuse the outside full mathematical/source review and resolved delta approval.

An ordinary merge includes actual supported main 54edc940, preserving the original history. Christian Reitwiessner's existing ea663ced repair is cherry-picked with its Author/Claude credit and provenance; its patch and both target files are identical to that reviewed repair. It only qualifies Matrix apply lemmas in proofs/tests. Public definitions, statements, hypotheses and test assertions are unchanged. No unrelated #1710 payload is included.

At this exact head, the targeted module/test build, all six default scripts/check.sh gates, hygiene with the simp audit, changed-file lints and tidy-surface audit pass. The parallel-definition notice reports no candidates. The original rational correction/copy/reward fixtures pass on CSLib 254e30e6 / Mathlib 69552756; selected abstracts, bridges, catalogue and rendering have no impact.

Fresh hosted CI is running and remains an integration condition. Queue sequencing stays with root, after the assigned M1/native lanes; this refresh does not complete Phase 2.

@SamuelSchlesinger
SamuelSchlesinger added this pull request to the merge queue Oct 30, 2026
Merged via the queue into cslib-community:main with commit b49fe33 Oct 30, 2026
3 checks passed
SamuelSchlesinger added a commit to chris-ai1/complexitylib that referenced this pull request Oct 30, 2026
…community#1677)

* feat(Foundations): correction factorization and reward transport for transition matrices

Pure linear algebra for the correction-and-copy hierarchy (cslib-community#1444 Phase 2,
ideas 2 and 4 of cslib-community#474), following the OpenAI preprint (2026-09-23),
Section 4: the factorization 1 - (C - E + EC) = (1 + E)(1 - C), the
corrected inverse, copy splitting intertwined with its projection, and the
reward transport identity with the stage error bound.

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

* fix(Foundations): expose IsStrictUpperTriangular so importers can apply it

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

* fix(Foundations): separate row-sum control from nonnegativity; add reward lower bound

Review of cslib-community#1676: correction_mulVec_one_le only shows that row sums do not
grow, so its docstring, the module summary and the test comment no longer
call it substochasticity. Add rewardTransport_mulVec_nonneg, the lower half
of (4.30), under nonnegative projections, corrections and reward.

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

* feat(Foundations): factorial truncation of cutoff corrections

Second slice of cslib-community#1444 Phase 2 (idea 3 of cslib-community#474), following the OpenAI
preprint (2026-09-23), Lemma 4.1 and Lemma 4.4: the cutoff correction
recursion E = phi((C + EC)) on a strictly upper triangular C has a unique
fixed point, its iterates increase towards it, and after k iterations the
error is at most f e^(1/theta) (L/theta)^k / k!, independently of the size
of the matrix. The corrected matrix of a finite iterate is nonnegative and
small in fully corrected columns.

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

* refactor(Foundations): use Nat.sum_Icc_choose for the hockey-stick step

Review nit on cslib-community#1677: drop the private hockey-stick lemma.

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

* doc(Foundations): count chains with the integer support size

Review of cslib-community#1677: the module docstring now bounds the chain count by
m.choose k for the actual support size m, as the proof does.

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

* fix(Foundations): qualify Matrix apply lemmas for the rc2 Mathlib API

Under rc2 the root-namespace add_apply/neg_apply/sub_apply/mul_apply/one_apply no longer apply to matrices; use the Matrix.* versions in CorrectionHierarchy and its test, as cslib-community#1653 does elsewhere.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit ea663ce)

* fix(Foundations): qualify Matrix apply lemmas in FactorialTruncation for rc2

Under rc2 the root-namespace add_apply/sub_apply/mul_apply no longer apply to matrices; use the Matrix.* versions in FactorialTruncation and its test, rewrapping lines that crossed 100 columns.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 19cf8a8)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
orbitingflea pushed a commit to orbitingflea/complexitylib2 that referenced this pull request Oct 30, 2026
…lib-community#1683)

* feat(Foundations): correction factorization and reward transport for transition matrices

Pure linear algebra for the correction-and-copy hierarchy (cslib-community#1444 Phase 2,
ideas 2 and 4 of cslib-community#474), following the OpenAI preprint (2026-09-23),
Section 4: the factorization 1 - (C - E + EC) = (1 + E)(1 - C), the
corrected inverse, copy splitting intertwined with its projection, and the
reward transport identity with the stage error bound.

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

* fix(Foundations): expose IsStrictUpperTriangular so importers can apply it

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

* fix(Foundations): separate row-sum control from nonnegativity; add reward lower bound

Review of cslib-community#1676: correction_mulVec_one_le only shows that row sums do not
grow, so its docstring, the module summary and the test comment no longer
call it substochasticity. Add rewardTransport_mulVec_nonneg, the lower half
of (4.30), under nonnegative projections, corrections and reward.

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

* feat(Foundations): factorial truncation of cutoff corrections

Second slice of cslib-community#1444 Phase 2 (idea 3 of cslib-community#474), following the OpenAI
preprint (2026-09-23), Lemma 4.1 and Lemma 4.4: the cutoff correction
recursion E = phi((C + EC)) on a strictly upper triangular C has a unique
fixed point, its iterates increase towards it, and after k iterations the
error is at most f e^(1/theta) (L/theta)^k / k!, independently of the size
of the matrix. The corrected matrix of a finite iterate is nonnegative and
small in fully corrected columns.

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

* refactor(Foundations): use Nat.sum_Icc_choose for the hockey-stick step

Review nit on cslib-community#1677: drop the private hockey-stick lemma.

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

* doc(Foundations): count chains with the integer support size

Review of cslib-community#1677: the module docstring now bounds the chain count by
m.choose k for the actual support size m, as the proof does.

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

* feat(Foundations): one stage of the correction-and-copy hierarchy

Third slice of cslib-community#1679 (Phase 2 of cslib-community#1444, ideas 3 and 4 of cslib-community#474), following
the OpenAI preprint (2026-09-23), Lemma 4.2, Lemma 4.4 and Proposition 4.5:
row-sum, entry, domination and support bounds for cutoff corrections; the
copy step with explicit split fractions, its density and active-copy
bounds; incidence counting; and the one-stage rates that feed the stage
bound, given an abstract detector interface.

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

* feat(Foundations): copy stages preserve strict upper triangularity

Add cutoffCorrectionIter_isStrictUpperTriangular,
cutoffCorrection_residual_isStrictUpperTriangular and
copyStage_isStrictUpperTriangular (for the lexicographic order on
Lex (V × Fin (m + 1))), so a stage's output can feed the next stage.
Correct two descriptions: the pilot inputs have bounded row sums, not
necessarily at most one, and copyStage_mulVec_one_le preserves the
row-sum bound, with nonnegativity from copyStage_nonneg.

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

* refactor(Foundations): general copySplit_isStrictUpperTriangular beside copySplit

State the preservation lemma for arbitrary weights and proportions in
CorrectionHierarchy.lean, for the lexicographic order on Lex (V × ι),
and derive copyStage_isStrictUpperTriangular from it.

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

* fix(Foundations): qualify copy-stage matrix apply lemmas

Reuse the four shared CopyStage qualifications from Christian Reitwiessner and Claude Opus 5.5 in commit34406a084312428fd65108771467fbc7086f9c3f, and qualify the corresponding Matrix addition/multiplication in the older cutoffCorrectionIter_sum_le proof. No later detector/refactor payload is backported. Every statement, definition, attribute, test and original source credit is preserved.

Coordinator codex-copy-stage-1683-refresh-20261030, bounded supported-pin fix for cslib-community#1683. Source audits pass; hosted exact-head validation follows before any author-branch update.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
orbitingflea pushed a commit to orbitingflea/complexitylib2 that referenced this pull request Oct 30, 2026
…ierarchy stage (cslib-community#1696)

* feat(Foundations): correction factorization and reward transport for transition matrices

Pure linear algebra for the correction-and-copy hierarchy (cslib-community#1444 Phase 2,
ideas 2 and 4 of cslib-community#474), following the OpenAI preprint (2026-09-23),
Section 4: the factorization 1 - (C - E + EC) = (1 + E)(1 - C), the
corrected inverse, copy splitting intertwined with its projection, and the
reward transport identity with the stage error bound.

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

* fix(Foundations): expose IsStrictUpperTriangular so importers can apply it

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

* fix(Foundations): separate row-sum control from nonnegativity; add reward lower bound

Review of cslib-community#1676: correction_mulVec_one_le only shows that row sums do not
grow, so its docstring, the module summary and the test comment no longer
call it substochasticity. Add rewardTransport_mulVec_nonneg, the lower half
of (4.30), under nonnegative projections, corrections and reward.

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

* feat(Foundations): factorial truncation of cutoff corrections

Second slice of cslib-community#1444 Phase 2 (idea 3 of cslib-community#474), following the OpenAI
preprint (2026-09-23), Lemma 4.1 and Lemma 4.4: the cutoff correction
recursion E = phi((C + EC)) on a strictly upper triangular C has a unique
fixed point, its iterates increase towards it, and after k iterations the
error is at most f e^(1/theta) (L/theta)^k / k!, independently of the size
of the matrix. The corrected matrix of a finite iterate is nonnegative and
small in fully corrected columns.

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

* refactor(Foundations): use Nat.sum_Icc_choose for the hockey-stick step

Review nit on cslib-community#1677: drop the private hockey-stick lemma.

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

* doc(Foundations): count chains with the integer support size

Review of cslib-community#1677: the module docstring now bounds the chain count by
m.choose k for the actual support size m, as the proof does.

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

* feat(Foundations): one stage of the correction-and-copy hierarchy

Third slice of cslib-community#1679 (Phase 2 of cslib-community#1444, ideas 3 and 4 of cslib-community#474), following
the OpenAI preprint (2026-09-23), Lemma 4.2, Lemma 4.4 and Proposition 4.5:
row-sum, entry, domination and support bounds for cutoff corrections; the
copy step with explicit split fractions, its density and active-copy
bounds; incidence counting; and the one-stage rates that feed the stage
bound, given an abstract detector interface.

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

* feat(Foundations): copy stages preserve strict upper triangularity

Add cutoffCorrectionIter_isStrictUpperTriangular,
cutoffCorrection_residual_isStrictUpperTriangular and
copyStage_isStrictUpperTriangular (for the lexicographic order on
Lex (V × Fin (m + 1))), so a stage's output can feed the next stage.
Correct two descriptions: the pilot inputs have bounded row sums, not
necessarily at most one, and copyStage_mulVec_one_le preserves the
row-sum bound, with nonnegativity from copyStage_nonneg.

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

* refactor(Foundations): general copySplit_isStrictUpperTriangular beside copySplit

State the preservation lemma for arbitrary weights and proportions in
CorrectionHierarchy.lean, for the lexicographic order on Lex (V × ι),
and derive copyStage_isStrictUpperTriangular from it.

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

* feat(Foundations): pilot with step-dependent multipliers and probabilistic column detectors

Phase 2 slice 4 of cslib-community#1444 (tracked in cslib-community#1679): the pilot of Lemma 4.2 with
step-dependent multipliers, the column detector of Lemma 4.3 over an abstract
retention-channel interface, and one stage of the hierarchy whose multipliers,
copy weights and overloaded set come from the detector, discharging the
detector interface of copyStage_rates.

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

* refactor(Foundations): derive fixed-multiplier iterate bounds from IsCorrectionSeq

The row-sum, entry and input bounds of cutoffCorrectionIter in CopyStage are
the fixed-multiplier case of the correction-sequence bounds; reuse them instead
of re-proving. Statements are unchanged.

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

* fix(Foundations): qualify Matrix apply lemmas in CopyStage and PilotCorrection for rc2

Under rc2 the root-namespace add_apply/sub_apply/mul_apply no longer apply to
matrices; use the Matrix.* versions, as rc2-refresh/1676 and /1677 do for the
lower modules of this stack. Proof-only; no statement changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 34406a0)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
orbitingflea pushed a commit to orbitingflea/complexitylib2 that referenced this pull request Oct 30, 2026
…erface (cslib-community#1698)

* feat(Foundations): correction factorization and reward transport for transition matrices

Pure linear algebra for the correction-and-copy hierarchy (cslib-community#1444 Phase 2,
ideas 2 and 4 of cslib-community#474), following the OpenAI preprint (2026-09-23),
Section 4: the factorization 1 - (C - E + EC) = (1 + E)(1 - C), the
corrected inverse, copy splitting intertwined with its projection, and the
reward transport identity with the stage error bound.

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

* fix(Foundations): expose IsStrictUpperTriangular so importers can apply it

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

* fix(Foundations): separate row-sum control from nonnegativity; add reward lower bound

Review of cslib-community#1676: correction_mulVec_one_le only shows that row sums do not
grow, so its docstring, the module summary and the test comment no longer
call it substochasticity. Add rewardTransport_mulVec_nonneg, the lower half
of (4.30), under nonnegative projections, corrections and reward.

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

* feat(Foundations): factorial truncation of cutoff corrections

Second slice of cslib-community#1444 Phase 2 (idea 3 of cslib-community#474), following the OpenAI
preprint (2026-09-23), Lemma 4.1 and Lemma 4.4: the cutoff correction
recursion E = phi((C + EC)) on a strictly upper triangular C has a unique
fixed point, its iterates increase towards it, and after k iterations the
error is at most f e^(1/theta) (L/theta)^k / k!, independently of the size
of the matrix. The corrected matrix of a finite iterate is nonnegative and
small in fully corrected columns.

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

* refactor(Foundations): use Nat.sum_Icc_choose for the hockey-stick step

Review nit on cslib-community#1677: drop the private hockey-stick lemma.

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

* doc(Foundations): count chains with the integer support size

Review of cslib-community#1677: the module docstring now bounds the chain count by
m.choose k for the actual support size m, as the proof does.

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

* feat(Probability): retention by pairwise independent hashing (cslib-community#1444)

A point is retained when its hash lies in a target set B. Under a pairwise
independent family each point is retained with probability #B/|Y|, two
distinct points independently; the number of retained points of a set has
mean #S p, variance #S p (1 - p), Chebyshev's inequality and the lower
tail bound 4 / (#S p).

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

* feat(Foundations): one stage of the correction-and-copy hierarchy

Third slice of cslib-community#1679 (Phase 2 of cslib-community#1444, ideas 3 and 4 of cslib-community#474), following
the OpenAI preprint (2026-09-23), Lemma 4.2, Lemma 4.4 and Proposition 4.5:
row-sum, entry, domination and support bounds for cutoff corrections; the
copy step with explicit split fractions, its density and active-copy
bounds; incidence counting; and the one-stage rates that feed the stage
bound, given an abstract detector interface.

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

* feat(Probability): affine retention channels over a prime field (cslib-community#1682)

Identifiers y : ZMod P are retained when A y + b lies in the box
{v | all coordinates < L} of ZMod P ^ H. Exact rates (L/P)^H and their
squares for pairs, the lower tail 4/(#A pi), independence of separate
seeds, and the assembled channel properties at rate f = a^H with
L = ceil(P a): f <= pi <= 2^H f.

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

* feat(Foundations): copy stages preserve strict upper triangularity

Add cutoffCorrectionIter_isStrictUpperTriangular,
cutoffCorrection_residual_isStrictUpperTriangular and
copyStage_isStrictUpperTriangular (for the lexicographic order on
Lex (V × Fin (m + 1))), so a stage's output can feed the next stage.
Correct two descriptions: the pilot inputs have bounded row sums, not
necessarily at most one, and copyStage_mulVec_one_le preserves the
row-sum bound, with nonnegativity from copyStage_nonneg.

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

* refactor(Foundations): general copySplit_isStrictUpperTriangular beside copySplit

State the preservation lemma for arbitrary weights and proportions in
CorrectionHierarchy.lean, for the lexicographic order on Lex (V × ι),
and derive copyStage_isStrictUpperTriangular from it.

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

* feat(Foundations): pilot with step-dependent multipliers and probabilistic column detectors

Phase 2 slice 4 of cslib-community#1444 (tracked in cslib-community#1679): the pilot of Lemma 4.2 with
step-dependent multipliers, the column detector of Lemma 4.3 over an abstract
retention-channel interface, and one stage of the hierarchy whose multipliers,
copy weights and overloaded set come from the detector, discharging the
detector interface of copyStage_rates.

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

* refactor(Foundations): derive fixed-multiplier iterate bounds from IsCorrectionSeq

The row-sum, entry and input bounds of cutoffCorrectionIter in CopyStage are
the fixed-multiplier case of the correction-sequence bounds; reuse them instead
of re-proving. Statements are unchanged.

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

* feat(Probability): affine retention channels satisfy the detector interface

Instantiate RetentionChannels (cslib-community#1696) with the affine channels of cslib-community#1688 at
rate a^H, with c_pi = 1, C_pi = C_pair = 2^H and C_var = 4.

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

* fix(Foundations): qualify Matrix apply lemmas in CopyStage and PilotCorrection for rc2

Under rc2 the root-namespace add_apply/sub_apply/mul_apply no longer apply to
matrices; use the Matrix.* versions, as rc2-refresh/1676 and /1677 do for the
lower modules of this stack. Proof-only; no statement changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 34406a0)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
orbitingflea pushed a commit to orbitingflea/complexitylib2 that referenced this pull request Oct 30, 2026
…rarchy with its stage bound (cslib-community#1702)

* feat(Foundations): correction factorization and reward transport for transition matrices

Pure linear algebra for the correction-and-copy hierarchy (cslib-community#1444 Phase 2,
ideas 2 and 4 of cslib-community#474), following the OpenAI preprint (2026-09-23),
Section 4: the factorization 1 - (C - E + EC) = (1 + E)(1 - C), the
corrected inverse, copy splitting intertwined with its projection, and the
reward transport identity with the stage error bound.

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

* fix(Foundations): expose IsStrictUpperTriangular so importers can apply it

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

* fix(Foundations): separate row-sum control from nonnegativity; add reward lower bound

Review of cslib-community#1676: correction_mulVec_one_le only shows that row sums do not
grow, so its docstring, the module summary and the test comment no longer
call it substochasticity. Add rewardTransport_mulVec_nonneg, the lower half
of (4.30), under nonnegative projections, corrections and reward.

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

* feat(Foundations): factorial truncation of cutoff corrections

Second slice of cslib-community#1444 Phase 2 (idea 3 of cslib-community#474), following the OpenAI
preprint (2026-09-23), Lemma 4.1 and Lemma 4.4: the cutoff correction
recursion E = phi((C + EC)) on a strictly upper triangular C has a unique
fixed point, its iterates increase towards it, and after k iterations the
error is at most f e^(1/theta) (L/theta)^k / k!, independently of the size
of the matrix. The corrected matrix of a finite iterate is nonnegative and
small in fully corrected columns.

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

* refactor(Foundations): use Nat.sum_Icc_choose for the hockey-stick step

Review nit on cslib-community#1677: drop the private hockey-stick lemma.

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

* doc(Foundations): count chains with the integer support size

Review of cslib-community#1677: the module docstring now bounds the chain count by
m.choose k for the actual support size m, as the proof does.

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

* feat(Foundations): one stage of the correction-and-copy hierarchy

Third slice of cslib-community#1679 (Phase 2 of cslib-community#1444, ideas 3 and 4 of cslib-community#474), following
the OpenAI preprint (2026-09-23), Lemma 4.2, Lemma 4.4 and Proposition 4.5:
row-sum, entry, domination and support bounds for cutoff corrections; the
copy step with explicit split fractions, its density and active-copy
bounds; incidence counting; and the one-stage rates that feed the stage
bound, given an abstract detector interface.

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

* feat(Foundations): copy stages preserve strict upper triangularity

Add cutoffCorrectionIter_isStrictUpperTriangular,
cutoffCorrection_residual_isStrictUpperTriangular and
copyStage_isStrictUpperTriangular (for the lexicographic order on
Lex (V × Fin (m + 1))), so a stage's output can feed the next stage.
Correct two descriptions: the pilot inputs have bounded row sums, not
necessarily at most one, and copyStage_mulVec_one_le preserves the
row-sum bound, with nonnegativity from copyStage_nonneg.

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

* refactor(Foundations): general copySplit_isStrictUpperTriangular beside copySplit

State the preservation lemma for arbitrary weights and proportions in
CorrectionHierarchy.lean, for the lexicographic order on Lex (V × ι),
and derive copyStage_isStrictUpperTriangular from it.

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

* feat(Foundations): pilot with step-dependent multipliers and probabilistic column detectors

Phase 2 slice 4 of cslib-community#1444 (tracked in cslib-community#1679): the pilot of Lemma 4.2 with
step-dependent multipliers, the column detector of Lemma 4.3 over an abstract
retention-channel interface, and one stage of the hierarchy whose multipliers,
copy weights and overloaded set come from the detector, discharging the
detector interface of copyStage_rates.

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

* refactor(Foundations): derive fixed-multiplier iterate bounds from IsCorrectionSeq

The row-sum, entry and input bounds of cutoffCorrectionIter in CopyStage are
the fixed-multiplier case of the correction-sequence bounds; reuse them instead
of re-proving. Statements are unchanged.

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

* feat(Foundations): constants of the correction-and-copy hierarchy

Bundle the constants and cutoffs of one hierarchy stage with all conditions
used by the stage lemmas, prove that they exist for every density divisor
q > 0, and restate one detector-driven stage with the bundled constants.

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

* feat(Foundations): the iterated correction-and-copy hierarchy and its stage bound

Iterate the detector-driven stages on V (l+1) ≃ Lex (V l × Fin D₀) at rates
q⁻¹ ^ l and prove 0 ≤ p x - W_l(x̄_l) ≤ |V 0| (2^c)⁻¹^l from the construction.

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

* doc(Foundations): document every HierarchyParams field

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

* doc(Foundations): clarify reduced hierarchy parameter scope

Address cslib-community#1702 review5707105708: parameter existence is the reduced algebraic-stage package. Preserve the full threshold ladder and root/complement regularity gap for Q and every step cutoff. Correct m=ceilNat(q)*(k+1) and D0=m+1. No Lean declaration or proof body changes.

Codex worker codex-hierarchy-fixes-1702-1704-20261030. Source-only preparation; supported-pin integration, full validation and outside delta review remain required before publication.

* fix(Foundations): qualify Matrix apply lemmas for the rc2 Mathlib API

Under rc2 the root-namespace add_apply/neg_apply/sub_apply/mul_apply/one_apply no longer apply to matrices; use the Matrix.* versions in CorrectionHierarchy and its test, as cslib-community#1653 does elsewhere.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit ea663ce)

* fix(Foundations): qualify Matrix apply lemmas in FactorialTruncation for rc2

Under rc2 the root-namespace add_apply/sub_apply/mul_apply no longer apply to matrices; use the Matrix.* versions in FactorialTruncation and its test, rewrapping lines that crossed 100 columns.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 19cf8a8)

* fix(Foundations): qualify Matrix apply lemmas in CopyStage and PilotCorrection for rc2

Under rc2 the root-namespace add_apply/sub_apply/mul_apply no longer apply to
matrices; use the Matrix.* versions, as rc2-refresh/1676 and /1677 do for the
lower modules of this stack. Proof-only; no statement changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 34406a0)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
orbitingflea pushed a commit to orbitingflea/complexitylib2 that referenced this pull request Oct 30, 2026
…crete stage bound (cslib-community#1704)

* feat(Foundations): correction factorization and reward transport for transition matrices

Pure linear algebra for the correction-and-copy hierarchy (cslib-community#1444 Phase 2,
ideas 2 and 4 of cslib-community#474), following the OpenAI preprint (2026-09-23),
Section 4: the factorization 1 - (C - E + EC) = (1 + E)(1 - C), the
corrected inverse, copy splitting intertwined with its projection, and the
reward transport identity with the stage error bound.

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

* fix(Foundations): expose IsStrictUpperTriangular so importers can apply it

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

* fix(Foundations): separate row-sum control from nonnegativity; add reward lower bound

Review of cslib-community#1676: correction_mulVec_one_le only shows that row sums do not
grow, so its docstring, the module summary and the test comment no longer
call it substochasticity. Add rewardTransport_mulVec_nonneg, the lower half
of (4.30), under nonnegative projections, corrections and reward.

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

* feat(Foundations): factorial truncation of cutoff corrections

Second slice of cslib-community#1444 Phase 2 (idea 3 of cslib-community#474), following the OpenAI
preprint (2026-09-23), Lemma 4.1 and Lemma 4.4: the cutoff correction
recursion E = phi((C + EC)) on a strictly upper triangular C has a unique
fixed point, its iterates increase towards it, and after k iterations the
error is at most f e^(1/theta) (L/theta)^k / k!, independently of the size
of the matrix. The corrected matrix of a finite iterate is nonnegative and
small in fully corrected columns.

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

* refactor(Foundations): use Nat.sum_Icc_choose for the hockey-stick step

Review nit on cslib-community#1677: drop the private hockey-stick lemma.

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

* doc(Foundations): count chains with the integer support size

Review of cslib-community#1677: the module docstring now bounds the chain count by
m.choose k for the actual support size m, as the proof does.

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

* feat(Probability): retention by pairwise independent hashing (cslib-community#1444)

A point is retained when its hash lies in a target set B. Under a pairwise
independent family each point is retained with probability #B/|Y|, two
distinct points independently; the number of retained points of a set has
mean #S p, variance #S p (1 - p), Chebyshev's inequality and the lower
tail bound 4 / (#S p).

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

* feat(Foundations): one stage of the correction-and-copy hierarchy

Third slice of cslib-community#1679 (Phase 2 of cslib-community#1444, ideas 3 and 4 of cslib-community#474), following
the OpenAI preprint (2026-09-23), Lemma 4.2, Lemma 4.4 and Proposition 4.5:
row-sum, entry, domination and support bounds for cutoff corrections; the
copy step with explicit split fractions, its density and active-copy
bounds; incidence counting; and the one-stage rates that feed the stage
bound, given an abstract detector interface.

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

* feat(Probability): affine retention channels over a prime field (cslib-community#1682)

Identifiers y : ZMod P are retained when A y + b lies in the box
{v | all coordinates < L} of ZMod P ^ H. Exact rates (L/P)^H and their
squares for pairs, the lower tail 4/(#A pi), independence of separate
seeds, and the assembled channel properties at rate f = a^H with
L = ceil(P a): f <= pi <= 2^H f.

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

* feat(Foundations): copy stages preserve strict upper triangularity

Add cutoffCorrectionIter_isStrictUpperTriangular,
cutoffCorrection_residual_isStrictUpperTriangular and
copyStage_isStrictUpperTriangular (for the lexicographic order on
Lex (V × Fin (m + 1))), so a stage's output can feed the next stage.
Correct two descriptions: the pilot inputs have bounded row sums, not
necessarily at most one, and copyStage_mulVec_one_le preserves the
row-sum bound, with nonnegativity from copyStage_nonneg.

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

* refactor(Foundations): general copySplit_isStrictUpperTriangular beside copySplit

State the preservation lemma for arbitrary weights and proportions in
CorrectionHierarchy.lean, for the lexicographic order on Lex (V × ι),
and derive copyStage_isStrictUpperTriangular from it.

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

* feat(Foundations): pilot with step-dependent multipliers and probabilistic column detectors

Phase 2 slice 4 of cslib-community#1444 (tracked in cslib-community#1679): the pilot of Lemma 4.2 with
step-dependent multipliers, the column detector of Lemma 4.3 over an abstract
retention-channel interface, and one stage of the hierarchy whose multipliers,
copy weights and overloaded set come from the detector, discharging the
detector interface of copyStage_rates.

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

* refactor(Foundations): derive fixed-multiplier iterate bounds from IsCorrectionSeq

The row-sum, entry and input bounds of cutoffCorrectionIter in CopyStage are
the fixed-multiplier case of the correction-sequence bounds; reuse them instead
of re-proving. Statements are unchanged.

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

* feat(Probability): affine retention channels satisfy the detector interface

Instantiate RetentionChannels (cslib-community#1696) with the affine channels of cslib-community#1688 at
rate a^H, with c_pi = 1, C_pi = C_pair = 2^H and C_var = 4.

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

* feat(Foundations): constants of the correction-and-copy hierarchy

Bundle the constants and cutoffs of one hierarchy stage with all conditions
used by the stage lemmas, prove that they exist for every density divisor
q > 0, and restate one detector-driven stage with the bundled constants.

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

* feat(Foundations): the iterated correction-and-copy hierarchy and its stage bound

Iterate the detector-driven stages on V (l+1) ≃ Lex (V l × Fin D₀) at rates
q⁻¹ ^ l and prove 0 ≤ p x - W_l(x̄_l) ≤ |V 0| (2^c)⁻¹^l from the construction.

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

* doc(Foundations): document every HierarchyParams field

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

* feat(Probability): affine channels at every stage of the hierarchy

Stage l hashes identifiers into a prime field P_l >= max(2^l, M l) at rate
(2^H)^-l with uniform constants, discharging the channel hypotheses of
sub_hierarchyReward_le; radix identifiers give a fully concrete instance.

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

* doc(Foundations): clarify reduced hierarchy parameter scope

Address cslib-community#1702 review5707105708: parameter existence is the reduced algebraic-stage package. Preserve the full threshold ladder and root/complement regularity gap for Q and every step cutoff. Correct m=ceilNat(q)*(k+1) and D0=m+1. No Lean declaration or proof body changes.

Codex worker codex-hierarchy-fixes-1702-1704-20261030. Source-only preparation; supported-pin integration, full validation and outside delta review remain required before publication.

* refactor(Probability): share hierarchy radix identification

Move radixCopyEquiv, radixCopyEquiv_val and radixCopyEquiv_lt verbatim beside DetectedHierarchy. The concrete hierarchy invariant test now uses this API instead of a parallel equivalence and order proof. Keep finProdFinEquiv reuse and original authorship.

Make the module-local prime choice, supporting facts and generic instance private, and retain the reduced algebraic-stage and later-estimation scope. Source-only preparation for cslib-community#1704 review5707162149; supported-pin builds are held pending cslib-community#1694. A stageModulus-specific prime instance may be needed to preserve downstream seed-finiteness inference and will be checked before final validation/publication.

* fix(Foundations): qualify Matrix apply lemmas for the rc2 Mathlib API

Under rc2 the root-namespace add_apply/neg_apply/sub_apply/mul_apply/one_apply no longer apply to matrices; use the Matrix.* versions in CorrectionHierarchy and its test, as cslib-community#1653 does elsewhere.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit ea663ce)

* fix(Foundations): qualify Matrix apply lemmas in FactorialTruncation for rc2

Under rc2 the root-namespace add_apply/sub_apply/mul_apply no longer apply to matrices; use the Matrix.* versions in FactorialTruncation and its test, rewrapping lines that crossed 100 columns.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 19cf8a8)

* fix(Foundations): qualify Matrix apply lemmas in CopyStage and PilotCorrection for rc2

Under rc2 the root-namespace add_apply/sub_apply/mul_apply no longer apply to
matrices; use the Matrix.* versions, as rc2-refresh/1676 and /1677 do for the
lower modules of this stack. Proof-only; no statement changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 34406a0)

* fix(Probability): retain prime stage-modulus inference

Keep the generic prime-choice implementation and supporting facts private. Make stageModulus a non-exposed definition with the same body: Lean rejects the private helper in the exposed abbreviation body. Export only Fact (stageModulus M l).Prime, using the private primality fact, so Mathlib derives NeZero and the finite-field/seed structures for actual hierarchy clients.

Confirmed missing NeZero(stageModulus) and Fintype(stageSeed) in the real hierarchy module after privacy; the existing DetectedHierarchy and HierarchyChannels fixtures pass the strict focused build with this bridge (6152 jobs). No new prime-size, encoding, channel or resource guarantee. Full final validation and outside exact-head API delta review follow.

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
orbitingflea pushed a commit to orbitingflea/complexitylib2 that referenced this pull request Oct 30, 2026
…ral gap (cslib-community#1685)

* feat(Expander): fourth-moment decay of the random walk from the spectral gap (cslib-community#1682)

Pointwise Jensen for walks, L4 contraction, and for mean-zero f
E (W^(s+t) f)^4 <= (lambda^(4s) + lambda^(2t)) E f^4, hence a 2 lambda^(2t)
factor over 2t steps, without interpolation.

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

* refactor(Expander): derive expect_walk_sq_le from sq_walk_le; cite idea 8 (cslib-community#1682)

Move sq_walk_le to Expander/Basic.lean and derive expect_walk_sq_le from
it. Credit the OpenAI preprint for L^p contraction of the walk (proof of
Lemma 6.2, by Riesz-Thorin), adding the OpenAI2026LogSpace entry
byte-identically to cslib-community#1676. Prove that the Jensen test instance is strict.

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
orbitingflea pushed a commit to orbitingflea/complexitylib2 that referenced this pull request Oct 30, 2026
…on ZMod n × ZMod n (cslib-community#1678)

* feat(Expander): uniform spectral gap for the shear-translation graph 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>

* refactor(Expander): share the shears of R × R; credit the OpenAI preprint (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>

* docs(Expander): credit the OpenAI Lean development for the Fourier ping-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>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
orbitingflea pushed a commit to orbitingflea/complexitylib2 that referenced this pull request Oct 31, 2026
…hs (cslib-community#1693)

* feat(Expander): uniform spectral gap for the shear-translation graph 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>

* refactor(Expander): share the shears of R × R; credit the OpenAI preprint (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>

* docs(Expander): credit the OpenAI Lean development for the Fourier ping-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>

* feat(Expander): Poincaré inequalities and spectral gaps of box products of permutation multigraphs (cslib-community#1682)

Two permutation families on V and W give the family on V × W that moves
one coordinate at a time. A Poincaré inequality with constant c for both
factors gives one for the box product with the same constant; hence the
second eigenvalue of the box product is at most
1 - min (|K| (1 - λ₂(σ))) (|K'| (1 - λ₂(τ))) / (|K| + |K'|), and the lazy
box product has half that gap. This is the product walk over components
of Lemma 6.2 of the OpenAI preprint (gap γ/J for J components).

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
orbitingflea pushed a commit to orbitingflea/complexitylib2 that referenced this pull request Oct 31, 2026
…ons with a spectator (cslib-community#1695)

* feat(Expander): uniform spectral gap for the shear-translation graph 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>

* refactor(Expander): share the shears of R × R; credit the OpenAI preprint (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>

* docs(Expander): credit the OpenAI Lean development for the Fourier ping-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>

* feat(Expander): relative Poincaré inequality for shears and translations with a spectator (cslib-community#1682)

From the uniform Poincaré inequality of the shear-translation graph:
- on the frequencies: for Φ vanishing at 0, its mass is at most 512 times
  its changes along the dual unit shears plus its mass weighted by the
  translation weights ‖e(ξᵢ) - 1‖² (via the bijectivity of dftProd);
- with a spectator: when the shears also permute a finite set X and the
  translations fix it, every function on X × (ZMod n × ZMod n) is within
  512 times its total squared change of its fiber averages over
  ZMod n × ZMod n (complex sums and real averages).

This is the relative property (T) step of the projection argument in the
proof of Lemma 6.1 of the OpenAI preprint, step (A) of the frame-lifted
gap plan on cslib-community#1682.

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

* refactor(Expander): move the dftProd lemmas to ZModProd and drop import all; credit AffineSampling.lean (cslib-community#1682)

Review fixes for cslib-community#1695:
- the linearity, bijectivity and constant lemmas for ZMod.dftProd, and the
  Parseval identities for translations and sheared differences, now live
  in Foundations/Analysis/Fourier/ZModProd.lean;
- ShearTranslation.lean's private Parseval helpers are replaced by these
  public lemmas (the shear ones are the case f = g);
- RelativeShearTranslation.lean no longer uses import all;
- the module docstring credits OpenAI's AffineSampling.lean at 7ef5c0cc
  (square_gap with the external permutations u in changeF; the frame lift
  slice_frame, frame_gap, slice_gap); our proof is independent.

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
SamuelSchlesinger added a commit to chris-ai1/complexitylib that referenced this pull request Oct 31, 2026
…and translations (cslib-community#1699)

* feat(Expander): uniform spectral gap for the shear-translation graph 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>

* refactor(Expander): share the shears of R × R; credit the OpenAI preprint (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>

* docs(Expander): credit the OpenAI Lean development for the Fourier ping-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>

* feat(Expander): relative Poincaré inequality for shears and translations with a spectator (cslib-community#1682)

From the uniform Poincaré inequality of the shear-translation graph:
- on the frequencies: for Φ vanishing at 0, its mass is at most 512 times
  its changes along the dual unit shears plus its mass weighted by the
  translation weights ‖e(ξᵢ) - 1‖² (via the bijectivity of dftProd);
- with a spectator: when the shears also permute a finite set X and the
  translations fix it, every function on X × (ZMod n × ZMod n) is within
  512 times its total squared change of its fiber averages over
  ZMod n × ZMod n (complex sums and real averages).

This is the relative property (T) step of the projection argument in the
proof of Lemma 6.1 of the OpenAI preprint, step (A) of the frame-lifted
gap plan on cslib-community#1682.

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

* refactor(Expander): move the dftProd lemmas to ZModProd and drop import all; credit AffineSampling.lean (cslib-community#1682)

Review fixes for cslib-community#1695:
- the linearity, bijectivity and constant lemmas for ZMod.dftProd, and the
  Parseval identities for translations and sheared differences, now live
  in Foundations/Analysis/Fourier/ZModProd.lean;
- ShearTranslation.lean's private Parseval helpers are replaced by these
  public lemmas (the shear ones are the case f = g);
- RelativeShearTranslation.lean no longer uses import all;
- the module docstring credits OpenAI's AffineSampling.lean at 7ef5c0cc
  (square_gap with the external permutations u in changeF; the frame lift
  slice_frame, frame_gap, slice_gap); our proof is independent.

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

* feat(Expander): Efron–Stein and the pair-move bound on Y × (Fin H → ZMod L) (cslib-community#1682)

Step (B) of the frame-lifted gap plan on cslib-community#1682:
- Fintype.expect_sq_sub_expect_le_sum_expect_sq_sub_update: the
  Efron–Stein inequality for a uniform tuple with a spectator;
- Fintype.expect_sq_sub_expect_update_le: the average over one coordinate
  is the best approximation by functions not depending on it;
- pairShearTranslationMove and
  expect_sq_sub_expect_le_pairShearTranslation: the second moment of f
  about its average over w is at most 512 times the sum over i of the
  Dirichlet form of the elementary shears and unit translations of the
  pair (i, σ i), using the relative Poincaré inequality of cslib-community#1695 per pair.

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

* doc(Probability): cite Efron–Stein and Steele; numeric Efron–Stein test (cslib-community#1682)

Review fixes for cslib-community#1699:
- references.bib: EfronStein1981 (Ann. Statist. 9(3):586–596) and
  Steele1986 (Ann. Statist. 14(2):753–758), with DOIs;
- EfronStein.lean cites both and gains a References section;
- PairShearTranslation.lean notes that the all-coordinates bound is
  vacuous for H = 1;
- the test computes both sides of Efron–Stein for the agreement indicator
  on Fin 2 → Bool (1/4 ≤ 1/2).

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
SamuelSchlesinger added a commit to chris-ai1/complexitylib that referenced this pull request Oct 31, 2026
…ro vectors of (ZMod P)^H (cslib-community#1703)

* feat(Expander): uniform spectral gap for the shear-translation graph 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>

* refactor(Expander): share the shears of R × R; credit the OpenAI preprint (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>

* docs(Expander): credit the OpenAI Lean development for the Fourier ping-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>

* feat(Expander): relative Poincaré inequality for shears and translations with a spectator (cslib-community#1682)

From the uniform Poincaré inequality of the shear-translation graph:
- on the frequencies: for Φ vanishing at 0, its mass is at most 512 times
  its changes along the dual unit shears plus its mass weighted by the
  translation weights ‖e(ξᵢ) - 1‖² (via the bijectivity of dftProd);
- with a spectator: when the shears also permute a finite set X and the
  translations fix it, every function on X × (ZMod n × ZMod n) is within
  512 times its total squared change of its fiber averages over
  ZMod n × ZMod n (complex sums and real averages).

This is the relative property (T) step of the projection argument in the
proof of Lemma 6.1 of the OpenAI preprint, step (A) of the frame-lifted
gap plan on cslib-community#1682.

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

* refactor(Expander): move the dftProd lemmas to ZModProd and drop import all; credit AffineSampling.lean (cslib-community#1682)

Review fixes for cslib-community#1695:
- the linearity, bijectivity and constant lemmas for ZMod.dftProd, and the
  Parseval identities for translations and sheared differences, now live
  in Foundations/Analysis/Fourier/ZModProd.lean;
- ShearTranslation.lean's private Parseval helpers are replaced by these
  public lemmas (the shear ones are the case f = g);
- RelativeShearTranslation.lean no longer uses import all;
- the module docstring credits OpenAI's AffineSampling.lean at 7ef5c0cc
  (square_gap with the external permutations u in changeF; the frame lift
  slice_frame, frame_gap, slice_gap); our proof is independent.

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

* feat(Expander): Efron–Stein and the pair-move bound on Y × (Fin H → ZMod L) (cslib-community#1682)

Step (B) of the frame-lifted gap plan on cslib-community#1682:
- Fintype.expect_sq_sub_expect_le_sum_expect_sq_sub_update: the
  Efron–Stein inequality for a uniform tuple with a spectator;
- Fintype.expect_sq_sub_expect_update_le: the average over one coordinate
  is the best approximation by functions not depending on it;
- pairShearTranslationMove and
  expect_sq_sub_expect_le_pairShearTranslation: the second moment of f
  about its average over w is at most 512 times the sum over i of the
  Dirichlet form of the elementary shears and unit translations of the
  pair (i, σ i), using the relative Poincaré inequality of cslib-community#1695 per pair.

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

* doc(Probability): cite Efron–Stein and Steele; numeric Efron–Stein test (cslib-community#1682)

Review fixes for cslib-community#1699:
- references.bib: EfronStein1981 (Ann. Statist. 9(3):586–596) and
  Steele1986 (Ann. Statist. 14(2):753–758), with DOIs;
- EfronStein.lean cites both and gains a References section;
- PairShearTranslation.lean notes that the all-coordinates bound is
  vacuous for H = 1;
- the test computes both sides of Efron–Stein for the agreement indicator
  on Fin 2 → Bool (1/4 ≤ 1/2).

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

* feat(Expander): Poincaré inequality for elementary moves on nonzero vectors of (ZMod P)^H (cslib-community#1682)

Step (C) of the frame-lifted gap plan on cslib-community#1682: for a prime P and H ≥ 3,
every real function on (ZMod P)^H is, on the nonzero vectors, within
36864 H² times its total squared change along the elementary moves
F ↦ F + F b • e a (a ≠ b) of some constant, uniformly in P.

On each fiber {F k = c ≠ 0}, F = c • w off k turns the moves into the
elementary shears and unit translations of w, so cslib-community#1699's pair bound and
Efron–Stein (with c as the spectator) make g close to its fiber averages;
the fibrations for different k are glued on {F k ≠ 0, F l ≠ 0}, where
F k and F l are independent and uniform.

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
orbitingflea pushed a commit to orbitingflea/complexitylib2 that referenced this pull request Oct 31, 2026
…oordinates (cslib-community#1705)

* feat(Expander): uniform spectral gap for the shear-translation graph 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>

* feat(Probability): retention by pairwise independent hashing (cslib-community#1444)

A point is retained when its hash lies in a target set B. Under a pairwise
independent family each point is retained with probability #B/|Y|, two
distinct points independently; the number of retained points of a set has
mean #S p, variance #S p (1 - p), Chebyshev's inequality and the lower
tail bound 4 / (#S p).

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

* feat(Probability): affine retention channels over a prime field (cslib-community#1682)

Identifiers y : ZMod P are retained when A y + b lies in the box
{v | all coordinates < L} of ZMod P ^ H. Exact rates (L/P)^H and their
squares for pairs, the lower tail 4/(#A pi), independence of separate
seeds, and the assembled channel properties at rate f = a^H with
L = ceil(P a): f <= pi <= 2^H f.

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

* refactor(Expander): share the shears of R × R; credit the OpenAI preprint (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>

* docs(Expander): credit the OpenAI Lean development for the Fourier ping-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>

* feat(Probability): frame-conditioned channels, validated variants and conditional averaging (cslib-community#1682)

Frame-conditioned retention channels over ZMod P with their exact
marginal rate, coordinates (F, w) on retention slices, the affine move
(F, w) -> (gF, gw + c), validated walk variants with their unique wrap,
and conditional variance decay on every slice from a spectral-gap
hypothesis on the coordinates.

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

* feat(Expander): Poincaré inequalities and spectral gaps of box products of permutation multigraphs (cslib-community#1682)

Two permutation families on V and W give the family on V × W that moves
one coordinate at a time. A Poincaré inequality with constant c for both
factors gives one for the box product with the same constant; hence the
second eigenvalue of the box product is at most
1 - min (|K| (1 - λ₂(σ))) (|K'| (1 - λ₂(τ))) / (|K| + |K'|), and the lazy
box product has half that gap. This is the product walk over components
of Lemma 6.2 of the OpenAI preprint (gap γ/J for J components).

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

* feat(Expander): relative Poincaré inequality for shears and translations with a spectator (cslib-community#1682)

From the uniform Poincaré inequality of the shear-translation graph:
- on the frequencies: for Φ vanishing at 0, its mass is at most 512 times
  its changes along the dual unit shears plus its mass weighted by the
  translation weights ‖e(ξᵢ) - 1‖² (via the bijectivity of dftProd);
- with a spectator: when the shears also permute a finite set X and the
  translations fix it, every function on X × (ZMod n × ZMod n) is within
  512 times its total squared change of its fiber averages over
  ZMod n × ZMod n (complex sums and real averages).

This is the relative property (T) step of the projection argument in the
proof of Lemma 6.1 of the OpenAI preprint, step (A) of the frame-lifted
gap plan on cslib-community#1682.

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

* refactor(Expander): move the dftProd lemmas to ZModProd and drop import all; credit AffineSampling.lean (cslib-community#1682)

Review fixes for cslib-community#1695:
- the linearity, bijectivity and constant lemmas for ZMod.dftProd, and the
  Parseval identities for translations and sheared differences, now live
  in Foundations/Analysis/Fourier/ZModProd.lean;
- ShearTranslation.lean's private Parseval helpers are replaced by these
  public lemmas (the shear ones are the case f = g);
- RelativeShearTranslation.lean no longer uses import all;
- the module docstring credits OpenAI's AffineSampling.lean at 7ef5c0cc
  (square_gap with the external permutations u in changeF; the frame lift
  slice_frame, frame_gap, slice_gap); our proof is independent.

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

* feat(Expander): Efron–Stein and the pair-move bound on Y × (Fin H → ZMod L) (cslib-community#1682)

Step (B) of the frame-lifted gap plan on cslib-community#1682:
- Fintype.expect_sq_sub_expect_le_sum_expect_sq_sub_update: the
  Efron–Stein inequality for a uniform tuple with a spectator;
- Fintype.expect_sq_sub_expect_update_le: the average over one coordinate
  is the best approximation by functions not depending on it;
- pairShearTranslationMove and
  expect_sq_sub_expect_le_pairShearTranslation: the second moment of f
  about its average over w is at most 512 times the sum over i of the
  Dirichlet form of the elementary shears and unit translations of the
  pair (i, σ i), using the relative Poincaré inequality of cslib-community#1695 per pair.

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

* doc(Probability): cite Efron–Stein and Steele; numeric Efron–Stein test (cslib-community#1682)

Review fixes for cslib-community#1699:
- references.bib: EfronStein1981 (Ann. Statist. 9(3):586–596) and
  Steele1986 (Ann. Statist. 14(2):753–758), with DOIs;
- EfronStein.lean cites both and gains a References section;
- PairShearTranslation.lean notes that the all-coordinates bound is
  vacuous for H = 1;
- the test computes both sides of Efron–Stein for the agreement indicator
  on Fin 2 → Bool (1/4 ≤ 1/2).

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

* feat(Expander): Poincaré inequality for elementary moves on nonzero vectors of (ZMod P)^H (cslib-community#1682)

Step (C) of the frame-lifted gap plan on cslib-community#1682: for a prime P and H ≥ 3,
every real function on (ZMod P)^H is, on the nonzero vectors, within
36864 H² times its total squared change along the elementary moves
F ↦ F + F b • e a (a ≠ b) of some constant, uniformly in P.

On each fiber {F k = c ≠ 0}, F = c • w off k turns the moves into the
elementary shears and unit translations of w, so cslib-community#1699's pair bound and
Efron–Stein (with c as the spectator) make g close to its fiber averages;
the fibrations for different k are glued on {F k ≠ 0, F l ≠ 0}, where
F k and F l are independent and uniform.

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

* feat(Probability): uniform spectral gap of the affine walk on slice coordinates (cslib-community#1682)

Step (D) of the frame-lifted gap plan on cslib-community#1682. Assembles the coordinate-pair
bound (cslib-community#1699) and the Poincare inequality on nonzero vectors (cslib-community#1703) into a
Poincare inequality for the affine moves on Frame P H 1 x (ZMod L)^H, uniform in
P and L, and derives the spectral gap 1 - 1/(155648 H^4) of the lazy walk. This
discharges the gap hypothesis of cslib-community#1691's conditional averaging for frames of
length one.

Adds Matrix.SpecialLinearGroup.map_transvection and transvection_mulVec in
Foundations, reusing Mathlib's SpecialLinearGroup.transvection.

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
orbitingflea pushed a commit to orbitingflea/complexitylib2 that referenced this pull request Oct 31, 2026
…ntion channels (cslib-community#1710)

* chore(deps): track CSLib main and Lean rc2

Advance CSLib to 8a8ad748 and synchronize Mathlib, the documentation generator, Verso, and all three lockfiles with Lean v4.36.0-rc2. Keep the root and documentation projects on the same inherited dependency revisions.

* refactor(probability): use generic infinite-sum lemmas

Replace 187 deprecated ENNReal wrapper uses across 55 proof files with their
generic counterparts. The exact mapping is:
- ENNReal.tsum_le_tsum -> tsum_le_tsum (94)
- ENNReal.tsum_add -> tsum_add (54)
- ENNReal.tsum_eq_zero -> tsum_eq_zero_iff (14)
- ENNReal.summable -> CompleteLattice.summable (6)
- ENNReal.tsum_comm -> tsum_comm (6)
- ENNReal.tsum_prod' -> tsum_prod' (5)
- ENNReal.le_tsum -> le_tsum (5)
- ENNReal.tsum_eq_add_tsum_ite -> tsum_eq_add_tsum_ite (2)
- ENNReal.tsum_sigma -> tsum_sigma (1)

The old wrappers invoke these same theorems specialized to ENNReal. All five
le_tsum calls already pass the function by name. No statements or definitions
change.

* fix(build): adapt proofs to the rc2 Mathlib API

Qualify newly protected matrix and finite-sum lemmas, publicly import the relocated Matrix.Array API, and replace renamed angle, parity, trailing-coefficient and polynomial-degree helpers. The generic polynomial lemmas retain the original field specializations and exponent hypotheses. No theorem statement or definition body changes.

Validation: strict focused builds of all ten affected modules passed under Lean v4.36.0-rc2. Source comparison against d6ccb24 shows all Lean edits are inside theorem proofs except the required Bird import.

* test(quantum): qualify the protected matrix lemma

Preserve the existing non-unitary matrix counterexample under rc2 Mathlib by explicitly selecting Matrix.mul_apply, as in the library proof repairs.

* fix(build): normalize goals before proof automation

Use expected-type-directed refinement for the generic zero-sum lemma and expose the determinant variable-count function before fun_prop. Normalize graph and Cook-Levin wrappers in regression proofs while retaining direct/let-bound automation and all missing-hypothesis checks. Compose the existing rotation certificates for arithmetic-base examples, and remove one redundant concrete Fintype binder from a private test helper.

Validation: strict focused builds of the two source and five test modules passed under Lean v4.36.0-rc2. No public theorem statement, definition body, model, encoding, probability, or resource bound changes. No heartbeat or fun_prop compatibility option was introduced.

* feat(Foundations): correction factorization and reward transport for transition matrices

Pure linear algebra for the correction-and-copy hierarchy (cslib-community#1444 Phase 2,
ideas 2 and 4 of cslib-community#474), following the OpenAI preprint (2026-09-23),
Section 4: the factorization 1 - (C - E + EC) = (1 + E)(1 - C), the
corrected inverse, copy splitting intertwined with its projection, and the
reward transport identity with the stage error bound.

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

* fix(Foundations): expose IsStrictUpperTriangular so importers can apply it

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

* fix(Foundations): separate row-sum control from nonnegativity; add reward lower bound

Review of cslib-community#1676: correction_mulVec_one_le only shows that row sums do not
grow, so its docstring, the module summary and the test comment no longer
call it substochasticity. Add rewardTransport_mulVec_nonneg, the lower half
of (4.30), under nonnegative projections, corrections and reward.

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

* feat(Foundations): factorial truncation of cutoff corrections

Second slice of cslib-community#1444 Phase 2 (idea 3 of cslib-community#474), following the OpenAI
preprint (2026-09-23), Lemma 4.1 and Lemma 4.4: the cutoff correction
recursion E = phi((C + EC)) on a strictly upper triangular C has a unique
fixed point, its iterates increase towards it, and after k iterations the
error is at most f e^(1/theta) (L/theta)^k / k!, independently of the size
of the matrix. The corrected matrix of a finite iterate is nonnegative and
small in fully corrected columns.

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

* refactor(Foundations): use Nat.sum_Icc_choose for the hockey-stick step

Review nit on cslib-community#1677: drop the private hockey-stick lemma.

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

* doc(Foundations): count chains with the integer support size

Review of cslib-community#1677: the module docstring now bounds the chain count by
m.choose k for the actual support size m, as the proof does.

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

* feat(Probability): retention by pairwise independent hashing (cslib-community#1444)

A point is retained when its hash lies in a target set B. Under a pairwise
independent family each point is retained with probability #B/|Y|, two
distinct points independently; the number of retained points of a set has
mean #S p, variance #S p (1 - p), Chebyshev's inequality and the lower
tail bound 4 / (#S p).

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

* feat(Foundations): one stage of the correction-and-copy hierarchy

Third slice of cslib-community#1679 (Phase 2 of cslib-community#1444, ideas 3 and 4 of cslib-community#474), following
the OpenAI preprint (2026-09-23), Lemma 4.2, Lemma 4.4 and Proposition 4.5:
row-sum, entry, domination and support bounds for cutoff corrections; the
copy step with explicit split fractions, its density and active-copy
bounds; incidence counting; and the one-stage rates that feed the stage
bound, given an abstract detector interface.

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

* feat(Probability): affine retention channels over a prime field (cslib-community#1682)

Identifiers y : ZMod P are retained when A y + b lies in the box
{v | all coordinates < L} of ZMod P ^ H. Exact rates (L/P)^H and their
squares for pairs, the lower tail 4/(#A pi), independence of separate
seeds, and the assembled channel properties at rate f = a^H with
L = ceil(P a): f <= pi <= 2^H f.

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

* fix(Foundations): qualify Matrix apply lemmas for the rc2 Mathlib API

Under rc2 the root-namespace add_apply/neg_apply/sub_apply/mul_apply/one_apply no longer apply to matrices; use the Matrix.* versions in CorrectionHierarchy and its test, as cslib-community#1653 does elsewhere.

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

* feat(Foundations): copy stages preserve strict upper triangularity

Add cutoffCorrectionIter_isStrictUpperTriangular,
cutoffCorrection_residual_isStrictUpperTriangular and
copyStage_isStrictUpperTriangular (for the lexicographic order on
Lex (V × Fin (m + 1))), so a stage's output can feed the next stage.
Correct two descriptions: the pilot inputs have bounded row sums, not
necessarily at most one, and copyStage_mulVec_one_le preserves the
row-sum bound, with nonnegativity from copyStage_nonneg.

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

* fix(Foundations): qualify Matrix apply lemmas in FactorialTruncation for rc2

Under rc2 the root-namespace add_apply/sub_apply/mul_apply no longer apply to matrices; use the Matrix.* versions in FactorialTruncation and its test, rewrapping lines that crossed 100 columns.

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

* refactor(Foundations): general copySplit_isStrictUpperTriangular beside copySplit

State the preservation lemma for arbitrary weights and proportions in
CorrectionHierarchy.lean, for the lexicographic order on Lex (V × ι),
and derive copyStage_isStrictUpperTriangular from it.

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

* feat(Probability): frame-conditioned channels, validated variants and conditional averaging (cslib-community#1682)

Frame-conditioned retention channels over ZMod P with their exact
marginal rate, coordinates (F, w) on retention slices, the affine move
(F, w) -> (gF, gw + c), validated walk variants with their unique wrap,
and conditional variance decay on every slice from a spectral-gap
hypothesis on the coordinates.

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

* feat(Foundations): pilot with step-dependent multipliers and probabilistic column detectors

Phase 2 slice 4 of cslib-community#1444 (tracked in cslib-community#1679): the pilot of Lemma 4.2 with
step-dependent multipliers, the column detector of Lemma 4.3 over an abstract
retention-channel interface, and one stage of the hierarchy whose multipliers,
copy weights and overloaded set come from the detector, discharging the
detector interface of copyStage_rates.

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

* refactor(Foundations): derive fixed-multiplier iterate bounds from IsCorrectionSeq

The row-sum, entry and input bounds of cutoffCorrectionIter in CopyStage are
the fixed-multiplier case of the correction-sequence bounds; reuse them instead
of re-proving. Statements are unchanged.

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

* feat(Probability): affine retention channels satisfy the detector interface

Instantiate RetentionChannels (cslib-community#1696) with the affine channels of cslib-community#1688 at
rate a^H, with c_pi = 1, C_pi = C_pair = 2^H and C_var = 4.

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

* fix(Foundations): qualify Matrix apply lemmas in CopyStage and PilotCorrection for rc2

Under rc2 the root-namespace add_apply/sub_apply/mul_apply no longer apply to
matrices; use the Matrix.* versions, as rc2-refresh/1676 and /1677 do for the
lower modules of this stack. Proof-only; no statement changes.

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

* feat(Probability): pair and tail estimates for frame-conditioned retention channels

Lemma 3.1, items 2-3, of the OpenAI preprint for frame-conditioned channels:
the frame density q_fr (with 1/2 <= q_fr for r < H, via Mathlib's
card_linearIndependent), pairwise independence of the unrestricted polynomial
channel, the transfer bound dens_frame <= dens / q_fr, the pair bound and the
Chebyshev lower tail, and the detector-interface instance
retentionChannels_frameRetains (constants 2^H / q_fr and 4 / q_fr, or
2^(H+1) and 8 for r < H).

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

* fix(Foundations): qualify Matrix apply lemmas in CopyStage and PilotCorrection for rc2

Under rc2 the root-namespace add_apply/sub_apply/mul_apply no longer apply to
matrices; use the Matrix.* versions, as rc2-refresh/1676 and /1677 do for the
lower modules of this stack. Proof-only; no statement changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
(cherry picked from commit 34406a0)

---------

Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
SamuelSchlesinger added a commit to chris-ai1/complexitylib that referenced this pull request Oct 31, 2026
…γ/(J+1) (cslib-community#1706)

* feat(Expander): uniform spectral gap for the shear-translation graph 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>

* feat(Probability): retention by pairwise independent hashing (cslib-community#1444)

A point is retained when its hash lies in a target set B. Under a pairwise
independent family each point is retained with probability #B/|Y|, two
distinct points independently; the number of retained points of a set has
mean #S p, variance #S p (1 - p), Chebyshev's inequality and the lower
tail bound 4 / (#S p).

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

* feat(Probability): affine retention channels over a prime field (cslib-community#1682)

Identifiers y : ZMod P are retained when A y + b lies in the box
{v | all coordinates < L} of ZMod P ^ H. Exact rates (L/P)^H and their
squares for pairs, the lower tail 4/(#A pi), independence of separate
seeds, and the assembled channel properties at rate f = a^H with
L = ceil(P a): f <= pi <= 2^H f.

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

* refactor(Expander): share the shears of R × R; credit the OpenAI preprint (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>

* docs(Expander): credit the OpenAI Lean development for the Fourier ping-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>

* feat(Probability): frame-conditioned channels, validated variants and conditional averaging (cslib-community#1682)

Frame-conditioned retention channels over ZMod P with their exact
marginal rate, coordinates (F, w) on retention slices, the affine move
(F, w) -> (gF, gw + c), validated walk variants with their unique wrap,
and conditional variance decay on every slice from a spectral-gap
hypothesis on the coordinates.

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

* feat(Expander): Poincaré inequalities and spectral gaps of box products of permutation multigraphs (cslib-community#1682)

Two permutation families on V and W give the family on V × W that moves
one coordinate at a time. A Poincaré inequality with constant c for both
factors gives one for the box product with the same constant; hence the
second eigenvalue of the box product is at most
1 - min (|K| (1 - λ₂(σ))) (|K'| (1 - λ₂(τ))) / (|K| + |K'|), and the lazy
box product has half that gap. This is the product walk over components
of Lemma 6.2 of the OpenAI preprint (gap γ/J for J components).

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

* feat(Expander): relative Poincaré inequality for shears and translations with a spectator (cslib-community#1682)

From the uniform Poincaré inequality of the shear-translation graph:
- on the frequencies: for Φ vanishing at 0, its mass is at most 512 times
  its changes along the dual unit shears plus its mass weighted by the
  translation weights ‖e(ξᵢ) - 1‖² (via the bijectivity of dftProd);
- with a spectator: when the shears also permute a finite set X and the
  translations fix it, every function on X × (ZMod n × ZMod n) is within
  512 times its total squared change of its fiber averages over
  ZMod n × ZMod n (complex sums and real averages).

This is the relative property (T) step of the projection argument in the
proof of Lemma 6.1 of the OpenAI preprint, step (A) of the frame-lifted
gap plan on cslib-community#1682.

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

* refactor(Expander): move the dftProd lemmas to ZModProd and drop import all; credit AffineSampling.lean (cslib-community#1682)

Review fixes for cslib-community#1695:
- the linearity, bijectivity and constant lemmas for ZMod.dftProd, and the
  Parseval identities for translations and sheared differences, now live
  in Foundations/Analysis/Fourier/ZModProd.lean;
- ShearTranslation.lean's private Parseval helpers are replaced by these
  public lemmas (the shear ones are the case f = g);
- RelativeShearTranslation.lean no longer uses import all;
- the module docstring credits OpenAI's AffineSampling.lean at 7ef5c0cc
  (square_gap with the external permutations u in changeF; the frame lift
  slice_frame, frame_gap, slice_gap); our proof is independent.

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

* feat(Expander): Efron–Stein and the pair-move bound on Y × (Fin H → ZMod L) (cslib-community#1682)

Step (B) of the frame-lifted gap plan on cslib-community#1682:
- Fintype.expect_sq_sub_expect_le_sum_expect_sq_sub_update: the
  Efron–Stein inequality for a uniform tuple with a spectator;
- Fintype.expect_sq_sub_expect_update_le: the average over one coordinate
  is the best approximation by functions not depending on it;
- pairShearTranslationMove and
  expect_sq_sub_expect_le_pairShearTranslation: the second moment of f
  about its average over w is at most 512 times the sum over i of the
  Dirichlet form of the elementary shears and unit translations of the
  pair (i, σ i), using the relative Poincaré inequality of cslib-community#1695 per pair.

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

* doc(Probability): cite Efron–Stein and Steele; numeric Efron–Stein test (cslib-community#1682)

Review fixes for cslib-community#1699:
- references.bib: EfronStein1981 (Ann. Statist. 9(3):586–596) and
  Steele1986 (Ann. Statist. 14(2):753–758), with DOIs;
- EfronStein.lean cites both and gains a References section;
- PairShearTranslation.lean notes that the all-coordinates bound is
  vacuous for H = 1;
- the test computes both sides of Efron–Stein for the agreement indicator
  on Fin 2 → Bool (1/4 ≤ 1/2).

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

* feat(Expander): Poincaré inequality for elementary moves on nonzero vectors of (ZMod P)^H (cslib-community#1682)

Step (C) of the frame-lifted gap plan on cslib-community#1682: for a prime P and H ≥ 3,
every real function on (ZMod P)^H is, on the nonzero vectors, within
36864 H² times its total squared change along the elementary moves
F ↦ F + F b • e a (a ≠ b) of some constant, uniformly in P.

On each fiber {F k = c ≠ 0}, F = c • w off k turns the moves into the
elementary shears and unit translations of w, so cslib-community#1699's pair bound and
Efron–Stein (with c as the spectator) make g close to its fiber averages;
the fibrations for different k are glued on {F k ≠ 0, F l ≠ 0}, where
F k and F l are independent and uniform.

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

* feat(Probability): uniform spectral gap of the affine walk on slice coordinates (cslib-community#1682)

Step (D) of the frame-lifted gap plan on cslib-community#1682. Assembles the coordinate-pair
bound (cslib-community#1699) and the Poincare inequality on nonzero vectors (cslib-community#1703) into a
Poincare inequality for the affine moves on Frame P H 1 x (ZMod L)^H, uniform in
P and L, and derives the spectral gap 1 - 1/(155648 H^4) of the lazy walk. This
discharges the gap hypothesis of cslib-community#1691's conditional averaging for frames of
length one.

Adds Matrix.SpecialLinearGroup.map_transvection and transvection_mulVec in
Foundations, reusing Mathlib's SpecialLinearGroup.transvection.

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

* feat(Probability): product walk over channels and free bits with gap gamma/(J+1) (cslib-community#1682)

Poincare inequalities tensorize over finitely many components (piPerms,
iterating the binary box product along Fin.consEquiv). The free-bit torus
(ZMod M)^H satisfies the Poincare inequality via the coordinate-pair bound with
a trivial spectator. Together with the slice-coordinate gap, the lazy product
walk over J channels and the torus has spectral expansion at most
1 - 1/(155648 (J+1) H^4), uniformly in the primes, sides, identifiers and M, and
conditional averaging holds on every product of retention slices.

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.com>
orbitingflea pushed a commit to orbitingflea/complexitylib2 that referenced this pull request Oct 31, 2026
…words of every length (cslib-community#1707)

* feat(Expander): uniform spectral gap for the shear-translation graph 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>

* feat(Probability): retention by pairwise independent hashing (cslib-community#1444)

A point is retained when its hash lies in a target set B. Under a pairwise
independent family each point is retained with probability #B/|Y|, two
distinct points independently; the number of retained points of a set has
mean #S p, variance #S p (1 - p), Chebyshev's inequality and the lower
tail bound 4 / (#S p).

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

* feat(Expander): fourth-moment decay of the random walk from the spectral gap (cslib-community#1682)

Pointwise Jensen for walks, L4 contraction, and for mean-zero f
E (W^(s+t) f)^4 <= (lambda^(4s) + lambda^(2t)) E f^4, hence a 2 lambda^(2t)
factor over 2t steps, without interpolation.

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

* feat(Probability): affine retention channels over a prime field (cslib-community#1682)

Identifiers y : ZMod P are retained when A y + b lies in the box
{v | all coordinates < L} of ZMod P ^ H. Exact rates (L/P)^H and their
squares for pairs, the lower tail 4/(#A pi), independence of separate
seeds, and the assembled channel properties at rate f = a^H with
L = ceil(P a): f <= pi <= 2^H f.

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

* refactor(Expander): share the shears of R × R; credit the OpenAI preprint (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>

* docs(Expander): credit the OpenAI Lean development for the Fourier ping-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>

* refactor(Expander): derive expect_walk_sq_le from sq_walk_le; cite idea 8 (cslib-community#1682)

Move sq_walk_le to Expander/Basic.lean and derive expect_walk_sq_le from
it. Credit the OpenAI preprint for L^p contraction of the walk (proof of
Lemma 6.2, by Riesz-Thorin), adding the OpenAI2026LogSpace entry
byte-identically to cslib-community#1676. Prove that the Jensen test instance is strict.

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

* feat(Probability): frame-conditioned channels, validated variants and conditional averaging (cslib-community#1682)

Frame-conditioned retention channels over ZMod P with their exact
marginal rate, coordinates (F, w) on retention slices, the affine move
(F, w) -> (gF, gw + c), validated walk variants with their unique wrap,
and conditional variance decay on every slice from a spectral-gap
hypothesis on the coordinates.

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

* feat(Expander): Poincaré inequalities and spectral gaps of box products of permutation multigraphs (cslib-community#1682)

Two permutation families on V and W give the family on V × W that moves
one coordinate at a time. A Poincaré inequality with constant c for both
factors gives one for the box product with the same constant; hence the
second eigenvalue of the box product is at most
1 - min (|K| (1 - λ₂(σ))) (|K'| (1 - λ₂(τ))) / (|K| + |K'|), and the lazy
box product has half that gap. This is the product walk over components
of Lemma 6.2 of the OpenAI preprint (gap γ/J for J components).

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

* feat(Expander): relative Poincaré inequality for shears and translations with a spectator (cslib-community#1682)

From the uniform Poincaré inequality of the shear-translation graph:
- on the frequencies: for Φ vanishing at 0, its mass is at most 512 times
  its changes along the dual unit shears plus its mass weighted by the
  translation weights ‖e(ξᵢ) - 1‖² (via the bijectivity of dftProd);
- with a spectator: when the shears also permute a finite set X and the
  translations fix it, every function on X × (ZMod n × ZMod n) is within
  512 times its total squared change of its fiber averages over
  ZMod n × ZMod n (complex sums and real averages).

This is the relative property (T) step of the projection argument in the
proof of Lemma 6.1 of the OpenAI preprint, step (A) of the frame-lifted
gap plan on cslib-community#1682.

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

* refactor(Expander): move the dftProd lemmas to ZModProd and drop import all; credit AffineSampling.lean (cslib-community#1682)

Review fixes for cslib-community#1695:
- the linearity, bijectivity and constant lemmas for ZMod.dftProd, and the
  Parseval identities for translations and sheared differences, now live
  in Foundations/Analysis/Fourier/ZModProd.lean;
- ShearTranslation.lean's private Parseval helpers are replaced by these
  public lemmas (the shear ones are the case f = g);
- RelativeShearTranslation.lean no longer uses import all;
- the module docstring credits OpenAI's AffineSampling.lean at 7ef5c0cc
  (square_gap with the external permutations u in changeF; the frame lift
  slice_frame, frame_gap, slice_gap); our proof is independent.

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

* feat(Expander): Efron–Stein and the pair-move bound on Y × (Fin H → ZMod L) (cslib-community#1682)

Step (B) of the frame-lifted gap plan on cslib-community#1682:
- Fintype.expect_sq_sub_expect_le_sum_expect_sq_sub_update: the
  Efron–Stein inequality for a uniform tuple with a spectator;
- Fintype.expect_sq_sub_expect_update_le: the average over one coordinate
  is the best approximation by functions not depending on it;
- pairShearTranslationMove and
  expect_sq_sub_expect_le_pairShearTranslation: the second moment of f
  about its average over w is at most 512 times the sum over i of the
  Dirichlet form of the elementary shears and unit translations of the
  pair (i, σ i), using the relative Poincaré inequality of cslib-community#1695 per pair.

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

* doc(Probability): cite Efron–Stein and Steele; numeric Efron–Stein test (cslib-community#1682)

Review fixes for cslib-community#1699:
- references.bib: EfronStein1981 (Ann. Statist. 9(3):586–596) and
  Steele1986 (Ann. Statist. 14(2):753–758), with DOIs;
- EfronStein.lean cites both and gains a References section;
- PairShearTranslation.lean notes that the all-coordinates bound is
  vacuous for H = 1;
- the test computes both sides of Efron–Stein for the agreement indicator
  on Fin 2 → Bool (1/4 ≤ 1/2).

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

* feat(Expander): Poincaré inequality for elementary moves on nonzero vectors of (ZMod P)^H (cslib-community#1682)

Step (C) of the frame-lifted gap plan on cslib-community#1682: for a prime P and H ≥ 3,
every real function on (ZMod P)^H is, on the nonzero vectors, within
36864 H² times its total squared change along the elementary moves
F ↦ F + F b • e a (a ≠ b) of some constant, uniformly in P.

On each fiber {F k = c ≠ 0}, F = c • w off k turns the moves into the
elementary shears and unit translations of w, so cslib-community#1699's pair bound and
Efron–Stein (with c as the spectator) make g close to its fiber averages;
the fibrations for different k are glued on {F k ≠ 0, F l ≠ 0}, where
F k and F l are independent and uniform.

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

* feat(Probability): uniform spectral gap of the affine walk on slice coordinates (cslib-community#1682)

Step (D) of the frame-lifted gap plan on cslib-community#1682. Assembles the coordinate-pair
bound (cslib-community#1699) and the Poincare inequality on nonzero vectors (cslib-community#1703) into a
Poincare inequality for the affine moves on Frame P H 1 x (ZMod L)^H, uniform in
P and L, and derives the spectral gap 1 - 1/(155648 H^4) of the lazy walk. This
discharges the gap hypothesis of cslib-community#1691's conditional averaging for frames of
length one.

Adds Matrix.SpecialLinearGroup.map_transvection and transvection_mulVec in
Foundations, reusing Mathlib's SpecialLinearGroup.transvection.

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

* feat(Probability): product walk over channels and free bits with gap gamma/(J+1) (cslib-community#1682)

Poincare inequalities tensorize over finitely many components (piPerms,
iterating the binary box product along Fin.consEquiv). The free-bit torus
(ZMod M)^H satisfies the Poincare inequality via the coordinate-pair bound with
a trivial spectator. Together with the slice-coordinate gap, the lazy product
walk over J channels and the torus has spectral expansion at most
1 - 1/(155648 (J+1) H^4), uniformly in the primes, sides, identifiers and M, and
conditional averaging holds on every product of retention slices.

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

* feat(Probability): fourth-moment conditional averaging and validated words of every length (cslib-community#1682)

Combines the fourth-moment decay of a walk from its spectral gap (cslib-community#1685) with the
uniform slice and component gaps: on a retention slice, and on a product of
retention slices with free bits, 2t steps of the lazy affine walk multiply the
fourth central moment by at most 2 (1 - 1/(155648 (J+1) H^4))^(2t), uniformly in
the moduli and identifiers.

Extends the one-step validated variants to words of every length for the lazy
walk: t steps equal t iterations of the validated step, and for the affine
generators every valid wrap lies in the fixed box {-3, ..., 3}^H.

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Samuel Giuseppe Schlesinger <sgschlesinger@gmail.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